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

7 下载量 51 浏览量 更新于2024-01-28 4 收藏 293KB DOC 举报
航空客运订票系统是一种应用数据结构知识的软件系统,由计算机科学与技术专业的学生在软件工程实验室和教室进行设计和开发。该系统的设计时间为2010年12月19日至2010年12月30日。 课程设计旨在训练学生独立完成问题分析,并结合数据结构理论知识编写程序解决指定问题。通过这个项目,学生将初步掌握软件开发过程中的问题分析、系统设计、程序编码和测试等基本方法和技巧。 设计的目标之一是提高学生综合运用所学理论知识和方法,以独立分析和解决问题的能力。学生将通过这个课程设计项目,训练自己用系统的观点和软件的思维方式来解决问题。 在航空客运订票系统的设计过程中,学生将会运用所学的数据结构知识,设计出适合解决该问题的数据结构。数据结构是一种组织数据的方式,它能够高效地存储和访问数据,从而更快地解决复杂的问题。 航空客运订票系统的目标是让用户能够方便地查询航班信息并进行订票操作。系统将包括以下功能:查询航班信息、订票、退票、改签等。通过这些功能,用户可以灵活地选择航班,进行订票并根据需要进行后续操作。 在系统设计阶段,学生将根据问题需求,设计系统的整体架构,并确定各个模块的功能和相互关系。同时,学生还需要设计出合适的数据结构来存储和管理航班信息、用户信息等数据。 在程序编码和测试阶段,学生将使用所选取的编程语言和开发工具,按照系统设计的要求编写代码,并进行相应的测试。测试的目的是验证系统的功能是否正确,并确保系统的稳定性和可靠性。 在课程设计的最后阶段,学生需要撰写课程设计报告,详细介绍系统的设计过程、功能实现和测试结果。报告中还需包括系统使用说明和对项目的总结和展望。 通过完成这个航空客运订票系统的课程设计,学生将获得灵活运用数据结构知识解决实际问题的能力,同时也提高了软件开发过程中的问题分析、系统设计、程序编码和测试等方面的技能。这将为他们将来的学习和工作打下坚实的基础。
2012-01-06 上传
问题描述:航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 (1) 每条航线所设计的信息有:终点站名、航班、航班号、飞机号、飞行周日(星期几)、成员定额、余票量。已订票的客户名单(包括姓名、订票量、舱位等级1.2.3)以及等候替补的客户名单(包括姓名,所需票量); (2) 作为示意系统,全部数据可以只放在内存中; (3) 系统能实现的操作和功能如下: ① 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额。 ② 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求,若需要,可登记排队候补 ③ 承办退票业务:根据客户提供的情况(日期。航班)为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则,依次询问其他排队候补的客户。 (4) 测试数据 (5) 选做内容,当客户所要订的航班票额不足的时候,系统会根据目的地,输出目的地相同的航线,询问客户是否要订票。 完美代码+完美课设报告+可执行文件(编译软件wintc)
2023-05-31 上传
目录 总体设计 2 概要设计 2 详细设计 3 调试分析 11 测试数据及截图 11 时间复杂度分析 15 问题思考 15 算法的改进设想 15 课设总结体会 15 附录 17 程序说明 17 源代码 17 主要参考文献 30 总体设计 通过此系统可以实现如下功能:   1).录入:可以录入航班情况(数据存储在一个数据文件中)   2).查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞 抵达城市,航班票价,票价折扣,确定航班是否满仓);   可以输入起飞抵达城市,查询飞机航班情况;   3).订票:(订票情况存在一个数据文件中)   可以订票,如果该航班已经无票,可以提供相关可选择航班;   4).退票: 可退票,退票后修改相关数据文件;   客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。   5).修改航班信息:   当航班信息改变可以修改航班数据文件 概要设计 每个模块的算法设计说明如下: (1)录入模块: 查找单链表的链尾,在链头插入一个"航班信息"的新结点。 (2)浏览模块: 顺着单链表输出航班信息。 (3)修改模块: 输入密码,确认是否有权限对航班信息进行修改,有则进行修改,否则不能修改。 提供两种修改方式:添加航班和对已有的航班信息进行改动(修改和删除),1添加航线 ,0对已有的航班信息进行改动(修改和删除)。 对已有的航班信息进行改动(修改和删除):顺着单链表查找,若找到则进行相关操 作。 (4)查询模块: 提供两种查方式:按航号和起飞抵达城市查询,0代表按航号查询,1代表按起飞抵达 城市查询。 顺着单链表查找,如果与航班号(起飞抵达城市)一致,输出相关信息并询问乘客是 否要订票,若订进入订票模块;否则,查询不成功。 (5)订票模块: 查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成 功;否则查找这个月此乘客起飞城市和降落城市的有空位航班,供乘客选择,若有则订 票,若无则订票不成功并把此乘客的信息录入此航班等候订票队列中,退出订票。 (6)退票模块: 输入要退票的乘客姓名以及所退票的编号,查找乘客资料的链表中是否有这位乘客, 有则删去此结点,并判断是否有等候订票的乘客(有则通知等候订票乘客订票,无则余 票加乘客所退票数);无则退票失败。 (7)文件模块: 顺着单链表把链表的信息写入文件。 详细设计 由于此系统流程图太多,流程图所对应的源代码较长,所占篇幅也较大,并且流程图 所对应的源程序在订票系统源程序中都有,这里就不再赘述。需要说明的是插入、查找 、修改和删除这些线性表的基本操作的流程图在订票系统源程序中没有单独函数,是因 为此系统主要是运用线性表的基本操作解决实际问题,具体问题所对应的基本操作代码 有所不同,但思维是相同的,所以这几个操作的源代码已经对应写入了其他具体操作的 函数中,这里也不再给出。 根据订票系统功能的需要定义了如下的结构体: typedef struct wat_ros /*等候订票乘客的信息*/ { char name[20];/*姓名*/ char phone[15];/*等候订票乘客的联系方式*/ struct wat_ros *next; }qnode,*qptr; typedef struct pqueue { qptr front;/*等候替补客户名单域的头指针*/ qptr rear;/*等候替补客户名单域的属指针*/ }linkqueue; typedef struct ord_ros { char name[20];/*客户姓名*/ char IDnum[20];/*客户有效证件的编号*/ char airnum[7];/*航班号*/ int dpl;/*订票量*/ char piaohaio[20];//票的编号,由航班号起飞日期此航班订票前的余票量 struct ord_ros *next; }Lnode ,*linklist; typedef struct airline { char qdname[20];/*起点站名*/ char zhname[20];/*终点站名 */ char air_num[7];/*航班号*/ char plane_num[10];/*飞机型号*/ char year[5]; char month[3]; char day[3];/*飞行日期*/ char qhour[3]; char qminute[3];/*起飞时间*/ char jhour[3]; char jminute[3];/*降落时间*/ float zhekou;/*没有折扣为十折*/ float price;/*票价*/ int tkt_amt;/*乘员定额*/ int tkt_sur;/*余票量*/ Lnode *o