航空客运订票系统的设计与实现
. 课课 程程 设设 计计 说说 明明 书书 课程名称课程名称 题题目目 航空客运订票系统的设计与实现航空客运订票系统的设计与实现 院院系系 __ 电子信息工程学院____电子信息工程学院____ 班班级级 __计算机科学与技术____计算机科学与技术__ 学生姓名学生姓名 ____________________________ 指导教师指导教师 __________________________ 日日期期 __ 2011.12.19-2011.12.30 2011.12.19-2011.12.30____ 数据结构课程设计任务书数据结构课程设计任务书 资料 . 课程设计题目 姓名 组别 指导教 师 课程设 计目的 课程设 计环境 航空客运订票系统的设计与实现 学号 同组 成员 专业班级计算机科学与技术 组长 设计一个航班订票系统,提高对信息管理、信息查找和排序算法的应 用能力。 386 以上的微机上进行,运行环境为 TurboC 1、承办订票业务:根据客户提出的要求(飞机抵达城市、起降时间、订 课程设 计任务 和要求 票数量)查新该航班信息(包括票价、折扣和剩余位 置) ,若满足要求,则为客户办理订票手续,输出座 位号。 2、承办退票业务:根据客户提供的情况(航班号、订票数量),为客户 办理退票手续。 3、 查询功能: a) 查询航线信息:根据飞机降落地点,输入下列信息:航班号、飞机 号、起降时间、航班票价、票价折扣和剩余位置。 b) 查询客户预订信息:根据客户证件号,输出下列信息:航班号、飞机 号和座位号。 1、杨秀金等. 数据结构(C 语言版). 西安电子科技大学出版社 2004 2、谭浩强. C 语言程序设计. 清华大学出版社. 2002 3、李春保. 数据结构教程上机实验指导. 清华大学出版社. 2005 时 间 进 度 安 排 参考 文献 序号 1 2 3 4 起止日期工 作 内 容 2011.12.19~2011.12.22下达课程设计任务、查阅资料、确定方 案 2011.12.23~2011.12.28编写程序、调试、运行 2011.12.29验收、撰写课程设计报告 2011.12.30验收、撰写课程设计报告、提交文档 指导教师:时间: 2011.12.8 航空客运订票系统的设计与实现航空客运订票系统的设计与实现 资料 . 一、简介一、简介 1.设计目的: 1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结 构,以及程序设计语言(C 语言) ,自行实现一个较为完整的应用系统的设计与 开发 2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告 等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数 据结构在软件开发中的应用 。 3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合 能力。 航空空订票系统: (1)熟练掌握链表存储结构及其建立过程和常用操作; (2)熟练掌握队列的建立过程和常用操作; (3)学会自己调试程序的方法并掌握一定的技巧。 2.问题的描述: 航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一 个程序以使上述任务借助计算机完成。 二、数据结构的设计:二、数据结构的设计: (1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折 扣、总位置和剩余位置、以訂票的客户名单。 (2)客户信息:客户姓名、证件号、座位号。 三、功能(函数)设计:三、功能(函数)设计: 1. 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期 几) 、载客量、余票量、票价格,折扣,已订票的客户名单(包括姓名、订票 量、舱位等级 1,2 或 3)以及等候替补的客户名单(包括姓名、所需票量) ; 资料 . 2. 全部数据可以只放在内存中; 3. 系统能实现的操作和功能如下: a) 查询航线: 根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最 近一天航班的日期和余票额; b) 承办订票业务: 根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余 票,则为客户办理订票手续, 输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需 要,可登记排队候补; c) 退票业务: 根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航 班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的 要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 系统结构图(功能模块图)系统结构图(功能模块图) 功能模块说明 资料 . (1)显示已初始化的全部航线信息 (2)浏览已订票客户信息 (3)根据客户提出的终点站名,调用find()函数寻找航线信息,调用list ()函数输出航线信息 (4)办理订票业务:根据客户提供的航班号进行查询航线信息,若客户订票额 超过乘员定票总额,退出,若客户订票额末超过余票量,订票成功并登记信 息,在订票乘员名单域中添加客户信息;如果暂时没有票,询问客户是否要排 队等侯,如果是,则在等候队列增加该客户的订票信息。 (5)办理退票业务:调用查询函数,根据客户提供的航线进行搜索根据客户提 供的姓名到订票客户名单域进行查询。退票成功后,重新将航线名单域指向订 票单链表的头指针。根据队列中从出的客户信息判断是否满足要求,如果满 足,则将该客户的信息插入到乘客信息链表中。 (6)退出本系统 四、界面设计:四、界面设计: 界面简洁易懂,包括1.浏览航线信息; 2.浏览已订票客户信息; 3.查询航线;4.办理订票业务; 5.办理退票业务; 6.查看剩余票数并 排序。 五、程序设计:五、程序设计: 资料 . 六、运行与测试:六、运行与测试: 1、测试的数据及其结果: (1)通过按键“1”浏览航线信息,结果输出五行事先输入的数 资料 . 据。 (2)通过按键“3”查询航线,输入终点站名后,结果输出相关 航线信息。 (3)通过按键“4”办理订票业务,依次输入航班号,订票数 量,客户姓名,证件号后,结果输出客户的座位号,订票成功。 资料 . (4)通过按键“2”浏览已定票客户信息,输入航班号后,结果显示客户信息。 (5)通过按键“5”办理退票业务,输入航班号,客户名后,结果退票成功。 (6)通过按键“6”查看剩余票数并排序,结果正确。 资料 . (7)通过按键“0”退出系统,结果正确。 2、运行与测试期间遇到的问题及其解决办法。 (1)因本人能力有限,在编写的时候只使用了相对较为简单的基础语 言 ,代替了相对较为复杂的语言,降低了运行效率。 (2)程序在起初设计的时候,经常出现溢出错误,而且不只一处。为了 修正这些溢出错误,耗费了大量的时间,修正解释之后再看源程序,才发现原 来只是因为开始的函数定义的数据类型出现了问题,对函数的定义不清楚,字 符的不正确定义造成了后期大量的纠错工作, (3)由于忘记了一些 c 语言的规范使得在调试过程中一些错误没有发 现。例如,调用函数时,数组只需要传递数组名即可;字符‘0’和整形的 0 是不 同的文明不可以直接对其画等号。 ((4)测试用例具有一定的广泛性。