数据结构课程设计报告(航班管理系统)分解(DOC 29页)

上传人:桔**** 文档编号:489336333 上传时间:2022-07-26 格式:DOC 页数:34 大小:362KB
返回 下载 相关 举报
数据结构课程设计报告(航班管理系统)分解(DOC 29页)_第1页
第1页 / 共34页
数据结构课程设计报告(航班管理系统)分解(DOC 29页)_第2页
第2页 / 共34页
数据结构课程设计报告(航班管理系统)分解(DOC 29页)_第3页
第3页 / 共34页
数据结构课程设计报告(航班管理系统)分解(DOC 29页)_第4页
第4页 / 共34页
数据结构课程设计报告(航班管理系统)分解(DOC 29页)_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《数据结构课程设计报告(航班管理系统)分解(DOC 29页)》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(航班管理系统)分解(DOC 29页)(34页珍藏版)》请在金锄头文库上搜索。

1、 数据结构课程设计报告 班级: 指导老师 日期:2014年12月【需求分析】2.航空订票系统试设计一个航空订票系统,基本要求如下:每条航班所涉及的信息有:航班号,航班机型,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,价格,乘员定额,余票量,订定票的客户名单(包括姓名,订票量,舱位等级(头等舱、公务舱、经济仓)以及等候替补的客户名单(包括姓名、所需数量)。采用链式存储结构。要求:系统能实现的操作和功能如下:(1)航班信息管理。(2)查询航线,按以下几种方式查询: 按航班号查询; 按起点站查询; 按终点站查询; 按日期查询;每种查询方式中,查询后输出如下信息:航班号,航班机型

2、,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,价格,余票量。(3) 承办订票业务:根据客户提出的要求(航班号,订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问客户要求。若需要,可登记排队候补。(4)承办退票业务:根据客户提出的情况(日期,航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。【设计】2.1 设计思想(1)数据结构设计.航班信息数据结构采用链式储存结构,并且设置链接订票乘客名单域和排队等

3、候名单域的借口。设计如下:/*航班信息数据结构 */typedef struct Airp char airnum10;/航班号 char planenum10;/机型 char departure10;/起飞机场 char terminal10;/降落机场 char weekday5;/日期 struct time uptim;/起飞时间 time downtim;/ 降落时间 time flytim;/ 飞行时间 int price;/价格 int tkt_ful;/乘员定额 int tkt_sur;/余票量 Book_list *book;/订票客户名单 Wait_list wait;/

4、等待候补客户名单 Airp *next; lineinfo;/订票乘客名单域采用链式存储结构,以单链表形成名单列表。设计如下: /*订票乘客名单域 */ typedef struct book char name10; /乘客姓名 int ord_num; /数量 int ord_grd; /舱位等级 struct book *next; /指向下一名乘客 Book_list;排队等候队列名单域采用链式储存,以单链表形成名单列表。设计如下:/*排队等候队列名单域*/ typedef struct wait char name10; /乘客姓名 int ord_num; /欲订票数量 struc

5、t wait *next; /指向下一名乘客 wat_queue;排队队列指针设计如下:/ 排队等候队列头尾指针 typedef struct qwait wat_queue *front; /队头指针 wat_queue *rear; /队尾指针 Wait_list;时间数据结构。程序定义了一个(*:*)型的时间数据结构,使时间更加精确易读。设计如下:/(*:*)型时间数据结构 typedef struct time int hour; /时 int mint; /分 time; (1) 算法设计主要算法包括:航线信息显示函数:void print(Airp *head)航线录入函数:voi

6、d enter()航线删除函数:void Delete()航线查询函数:/a.按航班号查询:Airp* search_1()设计如下:Airp* search_1() 输入航班号airnum; while(航班信息数据结构next节点不为空) 已存航班号是否有与airnum相同的航班号; 若没有相同航班号(对不起,未能找到您所要查找的航班!); getchar(); return NULL; /b.按起飞站查询:void search_2(),与a.函数相似,只改变查询变量为起飞站s-departure;/c.按终点站查询:void search_3(),与a.函数相似,只改变查询变量为终点站

7、s-terminal/d.按日期查询:void search_4(),与a.函数相似,只改变查询变量为日期s-weekday订票业务办理:/a.订票模块 :void or_tkt()设计如下:void or_tkt() If(没有查询航班) 函数结束; 输入订票量amount; if(amount余票量s-tkt_ful) 输出(n对不起,没有足够的余票!); 函数结束; if(amounttkt_sur) for(i=0;iamount;i+) 输入订票人姓名和舱位等级; for(i=0;itkt_ful-s-tkt_sur+i+1); s-tkt_sur-=amount; printf(订

8、票成功!); 输出费用; else 询问是否要排队等候; if(r=Y|r=y) 输入乘客姓名; 在排队等候乘员名单域中添加客户信息; printf(n排队成功!n); /b.订票信息名单域扩充 :Book_list *add_1(Book_list *head1,int amount,char name,int grade)办理退票业务:/a.退票模块 :void re_tkt()、/退票模块 void re_tkt() 输入退票客户姓名; 从名单中查询客户姓名; if(名单中没有该客户) printf(对不起,你没有订过票!n); 返回主菜单; else 进行退票操作; printf(%s

9、先生退票成功!n,p1-name); while(t) 在排队等候队列中查询是否有相同需求的乘客; If(有) 进行订票操作; 插入到订票客户名单链表中; 将乘客信息从队列中消除; 依次打印出订票成功乘客的座位号; /b.排队等候名单域扩充:Wait_list add_2(Wait_list q,char name,int amount)2.2【设计表示】(1) 模块关系图 航空订票系统按日期查询按终点站查询按起点站查询按航班号查询删除航线录入新航线浏览航班信息 办理退票业务 航班查询 办理订票业务 航班信息管理(1) 函数接口规格说明公共函数模块:/初始化头指针:void AirInitia

10、te(Airp *head)/航线信息显示:void print(Airp *head)航班信息管理模块:/航班信息录入模块:void enter()/航班信息删除模块:void Delete()/航班信息打印:int display()航班信息查询模块:/按照航班号查找:Airp* search_1()/按照起飞地查找:void search_2()/按照降落地查找:void search_3()/按照日期查找:void search_4()定票模块:/订票模块:void or_tkt()/订票信息名单域扩充:Book_list *add_1(Book_list *head1,int amo

11、unt,char name,int grade)退票模块/退票模块:void re_tkt()/排队等候名单域扩充:Wait_list add_2(Wait_list q,char name,int amount)菜单模块:/主菜单栏:int menu_1()/航班信息管理系统菜单:void menu_2()/航班查询系统菜单:void menu_3()2.3 详细设计/航线信息显示:void print(Airp *head)void print(Airp *head) printf(%-6s %-8s %-8s %-9s %-4s %d:%d %d:%d %d:%d %-4d %-6dn, head-airnum, head-planenum, head-departure, head-terminal, head-weekday, h

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号