欢迎来到天天文库
浏览记录
ID:9319477
大小:108.24 KB
页数:13页
时间:2018-04-27
《航空订票系统最好的程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、需求分析1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);2.全部数据可以只放在内存中;3.系统能实现的操作和功能如下:a)查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;b)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补;c)退票业务
2、:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。4.测试数据:1.输入1按下回车2.输入4回车,5回车,5回车,1回车,1回车3.输入4回车,5回车,6回车,y回车,2回车4.输入4回车,输入5回车,输入3回车,输入3回车,输入1回车5.输入5回车,输入5回车,输入1回车6.输入3回车,输入haerbin回车后7.输入2回车,输入5回车后8.输入3回车,输入shanghai回车详细测试数据见调试分析。二、概要设计1.本程序含有订票客户
3、结构体,候补队列,航线结构体等3个主要模块。Main和菜单menu也是重要模块。客户结构采用链表存储,主要操作有插入insert;队列采用链队列存储,主要操作有插入add,航线结构采用顺序存储。2.功能模块说明(1)显示已初始化的全部航线信息利用airlinelist()函数。(2)浏览已订票客户信息利用Viewlink()函数。(3)根据客户提出的终点站名,调用search()函数输出航线信息。(4)order()办理订票业务:根据客户提供的航班号进行查询航线信息,若客户订票额超过乘员定票总额,退出,若客户订票额末超过余票量,订票成功并登记信息,在订票乘员名单域中添加客户
4、信息;如果暂时没有票,询问客户是否要排队等侯,如果是,则在等候队列增加该客户的订票信息。(5)refund()办理退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询。退票成功后,重新将航线名单域指向订票单链表的头指针。根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息插入到乘客信息链表中。(6)退出本系统三、详细设计1.主程序中需要的全程量#defineFLIGHT_NUMBER5/*给定5条航线*/#defineMAX200/*给定座位号最大为200*/intseat[MAX]={0,0};/*初始化每条航线20
5、0个座位号为0,即未被预定*/intseat_num[MAX];/*暂时存放已发给客户的座位号,为存放到客户名单域的媒介*/2.链队列类型(1)结点类型typedefstructQNode{charname[10];/*等候替补客户姓名*/intWnumber;/*订票量*/structQNode*next;}QNode,*Queueptr;(2)队列类型typedefstructWaitQueue{Queueptrfront;/*等候替补客户名单域的头指针*/Queueptrrear;/*等候替补客户名单域的属指针*/}LinkQueue;/*等候替补客户用链队列存储*/
6、LinkQueueAddQueue(LinkQueueq,charname[],intamount)returnq;返回等候替补的客户名单域为分别指向队头和队尾的指针3.链表类型typedefstructLNode/*定义已定票客户的线性链表结构*/{charname[10];/*客户姓名*/intBook_num;/*订票量*/intgrade;/*舱位等级*/intnum[MAX];/*订票客户的座位号*/structLNode*next;}LinkList;LinkList*InsertLink(LinkList*head,intamount,charname[],i
7、ntgrade,int*seat_num)returnhead返回链表头指针4.线性表类型typedefstructairline/*定义航线的结构*/{charterminus[10];/*终点站名*/charflight_num[10];/*航班号*/charplane_num[10];/*飞机号*/charday[7];/*飞行周日(星期几)*/inttotal_num;/*乘员定额数量*/intremain_num;/*余票量*/intseat[MAX];/*每条航线的座位数额为MAX设定大于乘员定额数量*
此文档下载收益归作者所有