- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实习报告 航空订票系统
题目:
航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
需求分析
在测试程序中要求可以在用户端录入航班情况,包括:终点站点、航班号、飞机日期、航班票价、票价折扣、成员定额、余票量。
要求程序能执行的命令:
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票;
退票:可退票,退票后修改相关数据文件;
客户资料:有姓名,证件号,航班情况,订单要有编号;
修改航班信息:当航班信息改变可以修改航班数据文件。
作为示意系统,全部数据只放在内存中,不存入硬盘。
测试数据:、
概要设计
为实现上述程序功能,需要定义以下抽象数据类型。
航班链表的抽象数据类型定义为
ADTFlight{
数据对象:D={to,FlightNumber,FlightDay,leave,arrive,prize,
discount,capacity,booknum,*next|*next∈Flight}
数据关系:R1={fi-1,fi|fi-1,fi?D,i=2,3,...,N}
基本操作:
InitList(f)
操作结果:构造一个带头结点的空链表。
AddToList(f)
初始条件:链表f已存在。
操作结果:构造一个空的单元加到链表中。
LocateFlight(f,a[])
初始条件:链表f已存在,a[]为要寻找的航班的航班号。
操作结果:返回找到航班的位序。
若所寻航班不存在,则返回值为0。
DestroyFlight(f,f0)
初始条件:航班结点f已存在,f0为航班链表的头结点。
操作结果:销毁航班结点f。
}ADTFlight
顾客链表的抽象数据类型定义为
ADTCustomer{
数据对象:D={name,ID,BookNumber,*fi,*next|*fi∈Flight,*next∈Customer}
数据关系:R1={ci-1,ci|ci-1,ci?D,i=2,3,...,N}
基本操作:
InitCList(c)
操作结果:构造一个带头结点的空链表。
AddCToList(c1)
操作结果:构造一个空的单元加到链表中。
LocateCustomer(c,a[])
初始条件:链表f已存在,a[]为要寻找的订单号。
操作结果:返回找到订单的位序。
若所寻订单不存在,则返回值为0。
DestroyCustomer(c,c0)
{ //初始条件:顾客结点c已存在,c0为顾客链表的头结点。
//操作结果:销毁顾客结点c。
本程序包含三个模块:
主程序模块:
voidmain(){
航班链表初始化;
顾客链表初始化;
进入mainmenu;
}
mainmenu模块——进入主页面进行选择;
子程序模块——包括InputFlight模块、ModifyFlight模块、look模块、book模块、cancel模块
各模块之间的调用关系如下:
主程序模块
mainmenu模块
子程序模块
(InputFlight模块、ModifyFlight模块、look模块、book模块、cancel模块)
三.详细设计
航班链表
structFlight //航班链表(带头结点)
{
charto[N];//目的地
charFlightNumber[N];//航班号
DateFlightDay;//飞行日期
Timeleave;//起飞时间
Timearrive;//降落时间
intprize;//票价
intdiscount;//票价折扣
intcapacity;//成员定额
intbooknum;//订票数
Flight*next;
};
typedefFlight*flight;
StatusInitList(flightf)
{//操作结果:构造一个带头结点的空链表
f=(flight)malloc(sizeof(Flight));
f-booknum=0;f-next=NULL;
}
StatusAddToList(flightf1)
{ //初始条件:链表f1已存在
//操作结果:构造一个空的单元加到链表中
flightf2;InitList(f2);f1-next=f2;f1=f2;
}
intLocateFlight(flightf,chara[])
{ //初始条件:链表f已存在,a[]为要寻找的航班的航班号
//操作结果:返回找到航班的位序
//若
文档评论(0)