- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实习报告
题目:设计一个包括查询航线、客票预订和办理退票等业务的航空客运订票系统
班级:姓名:学号:完成日期:
一、需求分析
1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日〔星期几〕、乘员定额、余票量、已订票的客户名单〔包括姓名、订票量、舱位等级1,2或3〕以及等候替补的客户名单〔包括姓名、所需票量〕;
2.全部数据可以只放在内存中;
3.系统能实现的操作和功能如下:
a)查询航线:
根据旅客提出的终点站名输出以下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
b)承办订票业务:
根据客户提出的要求〔航班号、订票数额〕查询该航班票额情况,假设尚有余票,那么为客户办理订票手续,
输出座位号;假设已满员或余票额少于定票额,那么需重新询问客户要求。假设需要,可登记排队候补;
c)退票业务:
根据客户提供的情况〔日期、航班〕,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询
问排在第一的客户,假设所退票额能满足他的要求,那么为他办理订票手续,否那么依次询问其他排队候补的客户。
4.测试数据:
1.查看航线信息
2.办理订票业务:航班号:5订票数量:5姓名:1舱位等级:1
3.办理订票业务:航班号:5订票数量:6是否候票:y姓名:2
4.办理订票业务:航班号:5订票数量:3是否候票:y姓名:3
5.办理退票业务:航班号:5姓名:1
6.查询航线:终点站名:haerbin
7.查看已定票客户信息:航班号:5
8.查询航线:终点站名:shanghai
详细测试数据见调试分析。
二、概要设计
1.本程序含有订票客户结构体,候补队列,航线结构体等3个主要模块。Main和菜单menu也是重要模块。
客户结构采用链表存储,主要操作有插入insert;队列采用链队列存储,主要操作有插入add,航线结构采用顺序存储。
2.功能模块说明
〔1〕显示已初始化的全部航线信息利用airlinelist()函数。
〔2〕浏览已订票客户信息利用Viewlink()函数。
〔3〕根据客户提出的终点站名,调用search〔〕函数输出航线信息。
〔4〕order()办理订票业务:根据客户提供的航班号进行查询航线信息,假设客户订票额超过乘员定票总额,退出,假设客户订票额末超过余票量,订票成功并登记信息,在订票乘员名单域中添加客户信息;如果暂时没有票,询问客户是否要排队等侯,如果是,那么在等候队列增加该客户的订票信息。
〔5〕refund()办理退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询。退票成功后,重新将航线名单域指向订票单链表的头指针。根据队列中从出的客户信息判断是否满足要求,如果满足,那么将该客户的信息插入到乘客信息链表中。
〔6〕退出本系统
三、详细设计
1.主程序中需要的全程量
#defineFLIGHT_NUMBER5/*给定5条航线*/
#defineMAX200/*给定座位号最大为200*/
intseat[MAX]={0,0};/*初始化每条航线200个座位号为0,即未被预定*/
intseat_num[MAX];/*暂时存放已发给客户的座位号,为存放到客户名单域的媒介*/
2.链队列类型
(1)结点类型
typedefstructQNode
{charname[10];/*等候替补客户姓名*/
intWnumber;/*订票量*/
structQNode*next;
}QNode,*Queueptr;
〔2〕队列类型
typedefstructWaitQueue
{Queueptrfront;/*等候替补客户名单域的头指针*/
Queueptrrear;/*等候替补客户名单域的属指针*/
}LinkQueue;/*等候替补客户用链队列存储*/
LinkQueueAddQueue(LinkQueueq,charname[],intamount)
returnq;返回等候替补的客户名单域为分别指向队头和队尾的指针
3.链表类型
typedefstructLNode/*定义已定票客户的线性链表结构*/
{charname[10];/*客户姓名*/
intBook_num;/*订票量*/
intgrade;/*舱位等级*/
文档评论(0)