数据结构课程设计报告(样例)航空订票管理系统_第1页
数据结构课程设计报告(样例)航空订票管理系统_第2页
数据结构课程设计报告(样例)航空订票管理系统_第3页
数据结构课程设计报告(样例)航空订票管理系统_第4页
数据结构课程设计报告(样例)航空订票管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计一一报告(样例)二»势If祷号稳厚技.一一一一 1 LI ! _ -5_一 一. 一Harbin Huade University数据结构与算法» 课程设计报告题目:航空订票管理系统学期: 2014 秋班号:学号:姓名:成绩:哈尔滨华德学院电子与信息工程学院2014年12月一、实训设计的目的与要求(注:正文为宋体,五号字,为单倍行距)(一)课程设计目的(不少于 100 字)1 数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言( C 语言) ,自行实现一个较为完整的应用系统。 2 通过课程设计, 自己通过系统分析、 系统设计、编

2、程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤, 灵活运用并深刻理解典型数据结构在软件开发中的应用。3 学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力。具体的有:( 1)熟练掌握链表存储结构及其建立过程和常用操作;( 2)熟练掌握队列的建立过程和 常用操作;( 3)学会自己调试程序的方法并 掌握一定的技巧。(二)题目要求(不少于 100 字)1 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几) 、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1, 2或 3) 以及等候替补的客户名单 (包 括姓名和所需数量)。2系统能实现

3、的操作和功能如下:( 1)查询航线:根据客户提出的终点站名输出如下信息: 航班号、 飞机号、星期几飞行和余票额;( 2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况, 若有余票, 则为客户办理订票手续, 输出座位号; 若已满员或余票量少余订票额, 则需重新询问客户要求。若需要,可登记排队候补;( 3)承办退票业务:根据客户提出的情况(日期、航班号) ,为客户办理退票手续, 然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求, 则为他办理订票手续, 否则依次询问其它排队候补的客户。二、实训环境配置Windows 系统 CodeBlocks

4、三、设计正文1 需求分析本订票系统能够实现全部航线信息的浏览功能、 订票客户信息的查询功能、 单条航线查询功能、 订票功能和退票功能 。具体分析如下:a) 全部航线信息的浏览功能浏览全部系统预设的航线信息, 每条航线包含的信息有:终点站名、航班号、飞机号、飞行周日(星期几飞行) 、乘员定额和余票量。b) 订票客户信息的查询功能根据输入的航班号查询该航线所有订票客户的信息, 包括客户姓名、 订票数额和舱位等级。c) 单条航线查询功能 根据客户输入的终点站名查看该航线上所涉及的信息。d) 订票功能根据客户提出的要求(航班号、订票数量)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号

5、;若已满员或余 票额少于定票额,则询问客户是否愿意 排队等候,若愿意,系统则自动登记排 队候补。e)退票功能根据客户提供的 情况(航班、姓名),询问退票张数, 然后为客户办理退票手续。接着系统自 动查询该航班是否有人排队候补,首先 询问排在第一的客户,若所退票额能满 足他的要求,则为他办理订票手续,否 则依次询问其他排队候补的客户。2 .功能框图航空订票系统图 1 航空订票系统3算法设计( 1) 浏览航线模块:定义voiddisplay( struct airline *info),用info 指向结构体struct airline中的每一个成员;调用 list ()函数输出 全部航线信息。(

6、 2) 浏览订票客户信息模块: 定 义订票客户信息的结构体ord_ros, 根据输入航班号调用 find ()函数寻找 客户信息。( 3) 查询航线模块: 顺着单链表 查找,如果与航班号(航线)一致,输 出相关信息,否则,查询不成功。( 4) 订票模块:查找乘客要订的航班号, 判断此航班是否有空位, 有则输入乘客有关信息, 订票成功 , 否则失(5)退票模块:输入要退票的乘 客姓名,查找乘客资料的链表中是否有 这位乘客,有则删去此节点,并在空位 上加1,无则退票失败。如果此时余票 额大于等于候补客户的订票数量,那么 候补客户订票成功。4 .界面设计 运行主界面息信户良春芬药 V里业ik 题V戡

7、票里统 1间Ilif出 盘浏杳»力科一 - - n a- W 1 z J 4- 5 6法道择外下回军橇结束二图2运行界面5 .系统测试 订票测试终南站名 bci jl” s hfln.hn i iDndon不达-L*啊车腾悌。耻动号飞机号1行周日条员定软余军量HflSViSI M2L1 tmSUNMOH FJU加3苴 Al入入全座 一划加痛解的 +1+?1稍4*-户客:1 72窄缈 量量 ST位 7的盘iT至成功,同优旅送腑快图3订票测试 退票测试,土数 ri名t票 H 班的=mFir 产誓途 川卒川 福一相汩帝.请选择并按回车键结束汴:半3 2 1 !£_£ 一

8、 !%胃 票 这票座座座,. 为订H的的一.图4退票测试四、小组成员分工说明独立完成五、总结1 算法改进设想:( 1)在算法效率上,由于此课程设计所用的是线性表的建立、 查找、 插入、 删除、 和队列的建立、 插入、 删除,所涉及的是查找和排序问题, 所以在建立插入时按照客户姓名进行有序, 查找时采用分块查找, 因此对订票客户信息的存储应采用指针数组存储。( 2)在函数重组,把处理不同问题相同算法思想 (如线性表的插入、 删除、查找等等)写在一个函数中,其它函数要用到这种操作时只需调用这些函数,这样会减少整个程序的代码量,方便理解、阅读和使用。2课程设计期间的主要收获: 看着简单, 做着难,

9、我自己眼高收低,心太急,不过敢想敢写感尝试,努 力付出还真有蛮多收获。(1) 学与做:做了这次课程设计,我觉得课程设计这种形式真的是我们需要的, 可以让我们学到很多, 包括书上的、书外的。理论永远不等于实际。我在调试时出现了很多的问题, 下面列举几个:程序中定义了一个字符串"new",但在C-Free中"new"不是以未定义的形式存在,所以把“ new”改 写 成 “ NEW” 就 可 以 了 ; C-Free 中“ getchar ”表示读取下一个字符的含义, 而“ getch ” 不表示, 出现 “ getch ”时系统会报错; 在编写退票模块的代码

10、时,设计先输入退票数然后进行退票,调试时发现舱位等级的输出出现了混乱,后来经仔细分析才知道,原来“ grade=p1->grade; ”放在了if()大循环的后面, 而在 if 循环里 p1 已经释放,所以把“ grade=p1->grade; ”放在第一个“ free(p1); ”之前就可以了。真正会了这些算法,理论和实际永远差那么一点,不去做是体会不出来的。坐在电脑前才真正知道自己会不会, 眼高手低是要不得的。(2)C 与算法描述:在学数据结构的时候总是分不清算法与 C 语言的区别, 总觉得算法就是程序了, 通过这两周的课程设计总算是把它们之间的关系搞透彻了。 其实算法是解决问

11、题的步骤; 程序是算法的代码实现; 算法要依靠程序来完成功能; 程序需要算法作为灵魂。两者是相互联系密不可分的。(3) 小收获: 摸索着做完课程设计,增强了自己的自学能力, 这应该是最有用的吧, 语言会过时, 学习的能力却不会过时。构造结构体; 定义清晰明确的各种变量;主函数、 子函数的声明及定义。另外:对函数调用,参数传递很有体会。(4) 遇到的问题与感受:这次课程设计面临的大问题就是选择的余地太大, 头脑不好受。 连续几天的思考,我都不能决定攻克哪个, 好几个都是考虑了一部分又放弃了,以至前功尽弃。这使我认识到认定干一件事就必须将它干到底,以使自己的思想连续。 我也开始考虑当事情有重叠时,如何去应对, 虽然最后的抉择不一定是对的。 我也在这段时间内好好地看了一遍书,对书中的算法思想有一个更深的了解,虽然在应用中显得不是很自如, 可我通过 这次课设体验到可视化编程的乐趣。 也给我以后编程莫

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论