
数据结构课程设计航空客运订票系统.doc
28页课程设计(论文)任务书 学院 专业 班 一、课程设计(论文)题目 航空客运订票系统 二、课程设计(论文)工作自 2010 年 12 月 27 日至 2010 年 12 月 31 日三、课程设计(论文) 地点: 创新大楼实训中心3楼 四、课程设计(论文)内容要求:1.本课程设计的目的1) 使学生增进对数据结构各理论知识的熟练程度, 2) 加强算法设计的能力,为以后的数据库原理等课程的学习打下良好基础 2.课程设计的任务及要求□ 题目一:运动会分数统计□ 要求:(要求参考《数据结构题集》P79)□ 题目二:停车场管理要求:(要求参考《数据结构题集》P96)□ 题目三:车厢调度要求: (要求参考《数据结构题集》P98)□ 题目四:算术表达式求值演示要求: (要求参考《数据结构题集》P99)□ 题目五:银行业务模拟要求: (要求参考《数据结构题集》P100)□ 题目六:航空客运订票系统要求:(要求参考《数据结构题集》P101)□ 题目七:电梯模拟要求:(要求参考《数据结构题集》P102)□ 题目八:迷宫问题要求:(要求参考《数据结构题集》P105)□ 题目九:火车订票系统要求:功能实现订票子系统、售票子系统、退票子系统、统计子系统、查询子系统、生成数据子系统□ 题目十:教学计划编制问题要求:(要求参考《数据结构题集》P150)□ 题目十一:校园导游咨询要求:(要求参考《数据结构题集》P151)□ 题目十二:表达式类型的实现要求:(要求参考《数据结构题集》P152)□ 题目十三:全国交通咨询模拟要求:(要求参考《数据结构题集》P153)□ 题目十四:超市管理系统要求:实现对超市的各业务的管理(例如:货物的管理、价目的管理等)□ 题目十五:职工工资管理系统要求: 实现对职工工资的管理编辑。
3)课程设计论文编写要求1)详细清晰地描述个人的课程设计工作;2)要按照本模板的规格打印誊写课程报告;3)课设报告包括目录、内容提要、正文、课程设计体会、参考文献、附录等;4)课程报告装订按学校的统一要求完成4)评分标准: 1)完成原理分析:20分; 2)完成设计过程:40分; 3)完成代码分析:20分 4)个人创新工作:20分学生签名: 2010年12月 27 日- 2 - 课程设计(论文)评审意见(1)原理分析 (20分):优( )、良( )、中( )、一般( )、差( ); (2)设计分析 (20分):优( )、良( )、中( )、一般( )、差( ); (3)程序流程 (20分):优( )、良( )、中( )、一般( )、差( );(4)代码分析 (20分):优( )、良( )、中( )、一般( )、差( );(5)个人创新 (20分):优( )、良( )、中( )、一般( )、差( );(6)格式规范性及考勤是否降等级:是( )、否( )评阅人: 职称: 讲师 2010年 12月 31 日- 2 - 目 录目 录 - 1 -正 文 - 1 -一、 需求分析 - 1 -1. 课设题目 - 1 -2. 题目要求 - 1 -3. 课题背景 - 1 -4. 系统分析 - 1 -二、 个人工作 - 2 -1. 基本实现 - 2 -2. 创新功能 - 2 -三、 概要设计 - 3 -1. 主程序流程图及其说明 - 3 -2. 子程序流程图及其说明 - 3 -四、 源程序 - 5 -1. 头文件代码 - 5 -2. 源文件代码 - 15 -五、 程序结果 - 17 -1. 调试分析 - 17 -2. 截图分析与相关说明 - 17 -3. 时间复杂程度分析 - 22 -4. 算法的改进设想 - 22 -课程设计体会 - 23 -正 文一、 需求分析1. 课设题目航空客运订票系统2. 题目要求主要功能包括:1) 查询航线:根据客户提出终点站名输出下列信息:航班号,飞机号,星期几飞行,最近一天的航班日期和余票额。
2) 承办订票业务:根据客户提出的要求(航班号,订票数额)查询该航班票额情况,若上有余票,则为客户办理订票手续,输出座位号;若以满员余票额少于定票额,则需要重新询问客户要求,若需要,可预约登记排队等候3) 承办退票业务:根据客户提供的情况(日期,航班),为客户办理退票手续,然后查询航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则一次询问其他排队预约的客户3. 课题背景随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率因此,我选这个航空订票系统来研究,加强对其的了解,并进一步加深对数据结构各种算法的理解4. 系统分析从课程设计的题目要求可以知道,我们需要建立的是具有能对数据的插入,删除,检索功能的软件由于乘客的数量较大且不固定,因此选择用链表来保存乘客的基本信息:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量等等,由于预约人数无法预计,队列也应以链表作存储结构所以我们建立一个可以插入和删除节点的链表,并能检索这个链表,在必要的时候将链表的内容保存到文件中。
系统主要实现的操作和功能是:查询航线、订票功能、退票功能要实现这些功能,首先要使程序能实现查找功能,在查找出到有效信息的前提之下,通过链表的赋值,更新信息和删除退票人信息,满足客户的要求二、 个人工作拿到课设题目之后,经过仔细的研究,还是决定做航空客运订票系统,它可以使自己很好的巩固在数据结构当中所学到的知识以及各种算法,做到学以致用,并在运用的基础之上,进一步去创新1. 基本实现1) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,价格和剩余票额等业务2) 承办订票业务:根据客户提出的要求(终点站)查询该航班票额情况,若尚有余票,则为客户办理订票手续.输出座位号;若已满员,则需重新询问客户要求若需要,可购买下一次航班或者等待看有没有人退票;3) 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所剩票额能满足他的要求.则为他办理订票手续,否则依次询问其它排队候补的客户2. 创新功能1) 在用户实现查询、订票、退票之后,本系统另增加了一个询问的功能,询问用户是否继续操作还是返回菜单页这样就给用户继续进行些操作时节省了很多时间,也使系统的运行时间缩短了许多。
2) 本系统增加了一个增加航线的功能,这样就可以不用固定在仅有的几个航线的操作,机场可以根据自己的需求,增加或删除航线,达到了数据的方便快捷的效果3) 此系统增加了清空系统的功能,这样可以避免若输入的信息存在很多错误的情况之下,实行清空系统时,可以达到更加理想的效果4) 系统在菜单页面和各个操作当中都加了退出功能退出之后可以进行其他的操作,不就必在关掉程序之后再去运行程序,若是这样的话,就不符合平常的操作习惯了为了与实际接轨,退出功能还是很有必要去增加的5) 对程序在运行时输入错误操作的修改,提供了一定方便条件基本上能安全的运行,具备的功能符合题目的要求程序写的还算简练,结构清晰,各个模块的分工和功能明确三、 概要设计1. 主程序流程图及其说明主程序的流程图如下图3-1所示:航空客运订票系统1、增加航线7、清空系统8、退出系统6、退订机票5、预订机票4、删除航线3、修改航线2、查询航线 图3-1 利用switch语句,用户只需根据自己的需要,输入相应的命令即可达到效果例如:若需要查询航线时,则输入2;需要清空系统时,则输入7;若需要退出系统,则输入8。
若用户输入1到8其他的数据时,则弹出信息:您输入的信息有误,请重新输入!2. 子程序流程图及其说明1) 增加航线的流程图及其说明:主要功能是把新航班信息写入新建的链表中,然后把新链表与储存航班的链表合并,得到新的航班信息,实现对新航线的增加 增加航线的流程图如图3-2所示: 1.返回菜单 2.继续操作1.增加航线开始建立新的链表新增航班信息建立新链表对新链表置空,订票表头初始化返回图3-22) 查询、修改、删除航线流程图及其说明:先输入所要查找、删除或修改的航班,然后判断此航班是否存在,如果存在,则输出相关的航班信息或者进行修改或删除航班信息,如果不存在,则退出查询、修改、删除航线流程图如图3-3所示:1.返回菜单 2.继续操作输入航班信息、修改、删除该航班信息输入所要查找、修改、删除的航班2.查询航线 3.修改航线 4.删除航线上 地地在在在输入航班的信息输出航班信息返回YN判断航班是否存在图3-33) 订票、退票流程图及其说明:订票说明:先输入目的地,找到与它的位置,若找不到则提示不存在此目的地,再判断飞往目的地的航班是否有余票,若有余票输出座位信息,没余票输出剩余票数小于定票数,选择是否排队进入候补队列。
退票说明:先通过对退票人的基本信息进行查找,判断是否存在此航班和是否存在此人订票信息,如果存在则进行退票订票、退票流程图如图3-4所示:订票、退票系统售票系统订票系统退票系统是否有票? NY售票图3-4四、 源程序1. 头文件代码头文件取名为:hangkong.h#include
