数据结构课程设计报告航空订票系统

上传人:mg****2 文档编号:330911672 上传时间:2022-08-15 格式:DOC 页数:124 大小:388KB
返回 下载 相关 举报
数据结构课程设计报告航空订票系统_第1页
第1页 / 共124页
数据结构课程设计报告航空订票系统_第2页
第2页 / 共124页
数据结构课程设计报告航空订票系统_第3页
第3页 / 共124页
数据结构课程设计报告航空订票系统_第4页
第4页 / 共124页
数据结构课程设计报告航空订票系统_第5页
第5页 / 共124页
点击查看更多>>
资源描述

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

1、. -目录总体设计2概要设计2详细设计3调试分析11测试数据及截图11时间复杂度分析15问题思考15算法的改良设想15课设总结体会15附录17程序说明17源代码17主要参考文献27总体设计通过此系统可以实现如下功能:1录入:可以录入航班情况数据存储在一个数据文件中2查询:可以查询*个航线的情况如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓;可以输入起飞抵达城市,查询飞机航班情况;3订票:订票情况存在一个数据文件中可以订票,如果该航班已经无票,可以提供相关可选择航班;4退票: 可退票,退票后修改相关数据文件;客户资料有,证件号,订票数量及航班情况,订单要有编号。

2、5修改航班信息:当航班信息改变可以修改航班数据文件概要设计主函数录入航线信息浏览航线信息修改航线信息查询航线信息办理订票业务办理退票业务退出系统将航线信息和乘客信息写入文件每个模块的算法设计说明如下:1录入模块: 查找单链表的链尾,在链头插入一个航班信息的新结点。2浏览模块:顺着单链表输出航班信息。3修改模块:输入密码,确认是否有权限对航班信息进展修改,有则进展修改,否则不能修改。提供两种修改方式:添加航班和对已有的航班信息进展改动修改和删除,1添加航线,0对已有的航班信息进展改动修改和删除。对已有的航班信息进展改动修改和删除:顺着单链表查找,假设找到则进展相关操作。4查询模块:提供两种查方式

3、:按航号和起飞抵达城市查询,0代表按航号查询,1代表按起飞抵达城市查询。顺着单链表查找,如果与航班号起飞抵达城市一致,输出相关信息并询问乘客是否要订票,假设订进入订票模块;否则,查询不成功。5订票模块:查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功;否则查找这个月此乘客起飞城市和降落城市的有空位航班,供乘客选择,假设有则订票,假设无则订票不成功并把此乘客的信息录入此航班等候订票队列中,退出订票。6退票模块:输入要退票的乘客以及所退票的编号,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并判断是否有等候订票的乘客有则通知等候订票乘客订票,无则余票加乘客所退票数;

4、无则退票失败。7文件模块:顺着单链表把链表的信息写入文件。详细设计NYYNNY开场p=H-ne*tp!=NULL P所指向的航班信息写入文件p=p-ne*t完毕将航线信息写入文件开场p=H-ne*tp!=NULLq=p-order-ne*tq!=NULL将q所指向的乘客信息写入文件q=q-ne*tp=p-ne*t完毕将乘客信息写入文件开场设置管理员密码am=0,t=1输入cc=1进入录入航线m=1文件操作c=2进入浏览航线c=3m=1进入修改航线*ian文件操作c=4m=1进入查询航线航班线*ian文件操作c=5m=1进入订票*ian文件操作c=6进入退票*ian文件操作c=0t=1t=0提示

5、没有您选择的操作完毕YYYYYYYYYYYYNNNNNNNNNNN主函数输入要插入的信息p参数H传入入p-ne*t=H-ne*tYYN开场H-ne*t=p完毕插入操作开场传入参数H输入要查找的信息sp=H-ne*tp!=NULLp=s完毕q=pp=p-ne*tN查找操作开场传入参数H输入要修改的信息p查找p输入p修改后信息完毕修改操作开场传入参数H输入要删除的信息p查找p并记住p的前一个点qq-ne*t=p-ne*t释放p的空间完毕删除操作开场初始化ine*t浏览操作NYp=H-ne*t是否找到此航班Y开场输入订单编号查找此编号所在航班删除此编号此航班是否有等候订票乘客通知等候订票乘客进入订票

6、余票量加退票乘客的退票量完毕NNY退票操作说明:此流程图中的查找编号所在的航班为上面已画出的查找操作的流程完毕修改航班信息说明:c为选择添加航线操作还是改动航班信息,c=1为添加航班信息,c=0时为改动航班信息。d为选择修改航班信息操作还是删除航班信息,d=0为修改航班信息,d=1为删除航班信息NYNNNNNNYYYYY开场参数H传入并输入密码S输入cc!=0&c!=1c=0Y输入添加的航线条数ni=0in输入航班信息将其插入链表中i+输入dd!=0&d!=1d=0输入要修改的航班条数ni=0in输入要修改的航班信息查找此航班i+输入要修改的航班条数ni=0in修改此航班信息输入要删除的航班信

7、息查找此航班删除此航班i+s=cNY开场c=0|c=1c=0输入查询的航班号q输入起飞和抵达的城市输出航班号的详细信息k=0输出航班信息k=0K=0进入Dinpiao(H)进入完毕YNNYNY查询操作查找航班查找航班选择查询方式c说明:此流程图中的查找航班为上面已画出的查找操作的流程开场是否找到 NY查找此日期和航班记为pY是否重输信息是否有余票是否有想订票的航班查找与p航班到达一样目的地并且在这个月的航班ca输出这些航班信息将此乘客的信息填入p航班等候乘客队列中N修改此航班的相关数据完毕N订票操作YNYDinpiao(H)NY输入订票日期和航班号输出余票量a输入订票量c输出此订单的编号说明:

8、 此流程图找的查找航班和修改航班的相关数据分别为上面已画出的查找操作和修改操作的流程。NNYY开场参数H 、t、j传入t=11将航线信息写入文件J=1将乘客信息写入文件完毕文件操作由于此系统流程图太多,流程图所对应的源代码较长,所占篇幅也较大,并且流程图所对应的源程序在订票系统源程序中都有,这里就不再赘述。需要说明的是插入、查找、修改和删除这些线性表的根本操作的流程图在订票系统源程序中没有单独函数,是因为此系统主要是运用线性表的根本操作解决实际问题,具体问题所对应的根本操作代码有所不同,但思维是一样的,所以这几个操作的源代码已经对应写入了其他具体操作的函数中,这里也不再给出。根据订票系统功能的

9、需要定义了如下的构造体:typedef struct wat_ros /*等候订票乘客的信息*/ char name20;/*/ char phone15;/*等候订票乘客的联系方式*/ struct wat_ros *ne*t;qnode,*qptr;typedef struct pqueue qptr front;/*等候替补客户域的头指针*/ qptr rear;/*等候替补客户域的属指针*/linkqueue;typedef struct ord_ros char name20;/*客户*/ char IDnum20;/*客户有效证件的编号*/ char airnum7;/*航班号*/

10、 int dpl;/*订票量*/ char piaohaio20;/票的编号,由航班号起飞日期此航班订票前的余票量 struct ord_ros *ne*t;Lnode ,*linklist;typedef struct airline char qdname20;/*起点站名*/char zhname20;/*终点站名 */ char air_num7;/*航班号*/ char plane_num10;/*飞机型号*/ char year5; char month3; char day3;/*飞行日期*/char qhour3;char qminute3;/*起飞时间*/char jhour

11、3;char jminute3;/*降落时间*/float zhekou;/*没有折扣为十折*/float price;/*票价*/ int tkt_amt;/*乘员定额*/ int tkt_sur;/*余票量*/ Lnode *order;/*本航班乘客域,指向乘客链表的头指针*/ linkqueue *wait;/*本航班等候替补的客户域,分别指向排队等候队头队尾的指针*/ struct airline *ne*t;/*指向下一个结点*/lineinfo,*lineair;调试分析测试数据及截图时间复杂度分析录入为线性表的初始化,所以时间复杂度:O1;浏览遍历整线性表所以时间复杂度:O1;

12、修改航班信息为线性表的查找、线性表的插入和线性表的删除操作,其平均移动元素个数分别为n+1/2、n/2、(n-1)/2,所以时间复杂度:On;查询为线性表的查找,所以时间复杂度:On;订票为线性表的查找所以时间复杂度:On;退票是查找两线性表,所以时间复杂度:On*e;其中的n为航班总数,e为对应航班已定票人数。问题思考(1) 在事先就把航班信息写入文件,从文件中获取信息,但取数时怎样控制文件指针,也就是怎样取数的问题。(2) 输入密码时像平时在上网登录*一账号时输入密码一样显示*。(3) 管理员能够在系统上浏览乘客信息。解决第一个问题需要在读取文件信息时与灵活运用文件的指针的定位,在写入文件信息需严格按照一定的格式,不然文件指针不好定位;解决第二个问题用不回显接收函数getch(),然后调用printf()函数打印出一个*号;第三个问题只需在浏览操作时,设立一个管理员入口,输入管理员密码就对每条航线的乘客信息进展遍历,并把每条航班和对应的乘客信息输出。算法的改良设想 1在算法效率,由于此课程设计所用到的是线性表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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