




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 0西华大学课程设计报告编号:编号: 1数学与计算机科学技术学院课程设计院 别: 数学与计算机学院 题 目: 飞机订票系统 年级专业: 2004 级 计科 姓 名: 王 葳 学 号: 200409010328 指导教师: 夏梅宸 2006 年 7 月 10 日 1西华大学课程设计报告指导教师课程设计评阅表序号评阅项目指 标满分评分1调查、论证能独立查阅文献和调研;能正确翻译外文资料;能较好地写出开题报告;有收集、综合及正确利用各种信息及获取新知识的能力。42方案设计与技术路线方案设计合理,方案综合比较论证充分,切实可行,有较详细的实施措施;技术路线正确,拟采用数据采集、计算、处理方式正确;结构
2、设计合理、工艺具有可行性、推导正确或程序设计运行具有可靠性。83分析与解决问题的能力能运用所学知识和技能去发现问题,分析问题思路清晰、严谨,数据处理正确,理论分析文理清楚。84工作量、工作态度按期完成规定的任务,难易程度和工作量符合教学要求;工作努力,遵守纪律;工作作风严谨务实;善于与他人合作。85设计质量及设计说明书质量方案设计合理,切实可行,技术路线正确,所用的数据采集、计算、处理方式正确,数据真实可信,结构、工艺设计合理;设计说明书文理通顺,语言流畅、技术用语准确,符号统一、规范,编号齐全、书写工整规范;图表完备、整洁、正确;绘图符合国家标准。86创 新工作中有创新意识;对前人工作有改进
3、、突破,或立意新颖、见解独特,有一定应用价值。4 总分 评语:指导教师指导教师(签字签字): 日期:日期: 2西华大学课程设计报告 目目 录录1 1 前言前言.22 2 需求分析需求分析.22.12.1 功能分析功能分析 .22.2.2.2. 方案分析方案分析.33 3 概要设计概要设计.33.13.1 数据结构数据结构.33.2.3.2. 功能模块划分功能模块划分.33.2.13.2.1该程序的整体结构框图如图 3.1 所示.33.2.23.2.2程序流程图程序流程图图 3.2(1),3.2(2)所示:.44 4 详细设计详细设计.64.1.4.1. 数据类型定义数据类型定义.64.2.4.
4、2. 主要模块内部设计主要模块内部设计(我主要负责录入模块和修改模块)_ _.74.2.14.2.1、录入航班信息模块、录入航班信息模块(创建链) .74.2.24.2.2、查看和查询航班信息模块、查看和查询航班信息模块.104.2.34.2.3 订票模块订票模块.104.2.44.2.4 退票模块退票模块.114.2.54.2.5 修改航班信息模块修改航班信息模块.115 5 实现与调试分析实现与调试分析.135.15.1 实现环境实现环境.135.25.2 语言选择语言选择.135.3 调试方法调试方法.136 6 测试分析测试分析.136.16.1 测试用例测试用例 .136.26.2
5、测试结果测试结果.137 7 用户手册用户手册.198 8 总结总结.21【参考文献参考文献】.22 3西华大学课程设计报告1.1.前言前言在当今航运已成为我们生活中的一种必不可少的交通运输方式。然而在整个航空管理系统中,飞机订票管理系统是其中的最重要的一项。其整个系统最主要,最基本的功能便是关于航线上飞机的管理,该管理包括飞机各种信息的录入,查询以及修改,还包括定票和退票等。本设计就是作者根据实际情况模拟抽象出的一套具有典型性和功能比较强的小型“飞机订票管理系统” 。该飞机订票管理系统为用户提供了一个很好的交互性界面,其操作简单,可模拟进行航线上航班的设置,以及查询修改,办理定票,退票的手续
6、,采用了 c语言中的结构体,用线性表的方式来实现,且为方便输入和删除,还采用了链表存储结构,以及一些文件的基本操作。在该系统中,模拟创建了两个文本文件,一个用以保存航线上航班的基本信息,另一个用以保存航班的定票信息;以此提高了航空系统的管理水平和效率。该模型简化了繁琐的工作模式,从而使得飞机票的管理更加合理化和科学化。良好的管理信息系统用户界面和简单的操作为工作人员带来了不少方便。本系统用 visual c+ 6.0 作为调试环境,用 c 程序语言思想,设计出的系统功能较多,直观、清晰、大方,让操作人员一目了然、运用自如的飞机定票管理系统。2 2 需求分析需求分析2.12.1 功能分析功能分析
7、 飞机订票系统要求可以实现如下功能:可以录入航班情况,可以查询某个航线的情况,如输入起飞抵达城市,查询飞机航班情况;可以订票、退票。从问题的描述分析,该飞机定票系统必须具备以下几个功能模块:1) 航线创建功能模块航线创建功能模块:包括航班号、起飞时间、降落时间、起飞抵达城市、航班票价、及票价的折扣,准载人数等信息.录入的信息应该保存在一个文件里。 2) 订票功能模块:订票功能模块:包括航班号、定票日期、订票人姓名,身份证号码、所订票数。3) 查看航班信息功能模块查看航班信息功能模块:查看创建的所有航线信息。 4西华大学课程设计报告4) 查看订票信息功能模块:查看订票信息功能模块:查看所订票的所
8、有信息。5) 查询航班信息功能模块:查询航班信息功能模块:可通过航班号查询,也可通过飞机到达地点查询。6) 退票功能模块:退票功能模块:不满意所订的票时可进行退票。7) 改航班信息功能模块:改航班信息功能模块:可修改航班的所有信息。8)8)返回主界面返回主界面2.2.2.2. 方案分析方案分析1) 本系统以菜单方式工作2) 航班信息录入功能,我们定义了一个结构体 plane 作为所有信息的录入单元且其录入的相应信息应是以 plane 作为数据单元进行存储的,然后对该创建的链表调用 save()函数,存储到数据文件中去.采用链表作为存储结构方便后续功能的实现(航班信息用文件保存)输入(只能管理员
9、凭密码进行操作)3) 订票功能模块中我们应对乘客需要订的航班进行查找,看是否可以满足乘客所需的票,若可以则为乘客订票,并修改相应航班的剩余票数,退票功能模块则应查询机票数据文件,先用指针在文件中找到相应的要退的票,即把该订票单元结构体删除并修改退票航班的剩余票数即可;4) 航班信息和订票信息的查看功能输出查询航班(按航班号或抵达城市查询)3.3. 概要设计概要设计3.13.1 数据结构数据结构 本程序我们采用结构体,线性表存储,文件和链表存储结构。3.2.3.2. 功能模块划分功能模块划分3.2.13.2.1该程序的整体结构框图如图 3.1 所示 5西华大学课程设计报告中国民航订票管理系统客户
10、操作返回主界面 管理员操作录入航班信息修改航班信息订票查看订票信息退票查询航班信息查看航班信息返回主界面返回主界面 图图 3.13.1 整体结构框图3.2.23.2.2程序流程图程序流程图图 3.2(1),3.2(2)所示: 6西华大学课程设计报告main()1 or 2管管理理系系统统fn() 客客户户系系统统1 or 2search()watchp()212117结结束束struct planeplane * pcreate()void save(plane * head1) 图 3.1(1) 程序流程图 7西华大学课程设计报告main()fn()hangxian()dingpiao()w
11、atchp()watcht()browseplane()tuipiao()change()struct airticketairticket * create()save(airticket * head1)退退出出1234567图 3.1(2) 程序流程图4.4.详细设计详细设计4.1.4.1. 数据类型定义数据类型定义1) 调用头文件,定义文件指针#include#include#include#include#include#includefilefile *fp;*fp; /定义文件型指针变量定义文件型指针变量voidvoid main();main();voidvoid fn();f
12、n(); /航班信息函数航班信息函数 8西华大学课程设计报告2) 航班的基本信息其数据结构为:struct plane int num; /航班号 char stime50; /起飞的时间 char etime50; /抵达的时间 char start50; /起点 char ends50; /终点 float price; /机票价格 float discount; /机票的折扣 int msum; /该航班载人数 plane *next; 3) 定义定票的乘客基本信息struct airticket int idcard; /身份证件号 int pnum; /定票的航班号 int day;
13、 /定票日期 int count; /定票数量 char name50;/定票人的人的姓名 airticket *next;4.2.4.2. 主要模块内部设计主要模块内部设计(我主要负责录入模块和修改模块)_ _4.2.14.2.1、录入航班信息模块、录入航班信息模块(创建链)本模块是对程序中的 pcreate()函数和 save()函数的详细说明链表的存储结构,且其录入的相应信息应是以 plane 作为数据单元进行存储的,然后对该创建的链表调用 save()函数,存储到数据文件中去, 9西华大学课程设计报告1)该模块的算法如下该模块的算法如下:plane * pcreate() /创建航线上
14、的航班链表plane * ps;plane * pend;ps=new plane;void save(plane * head1) /保存信息fwrite(head1,sizeof(plane),1,fp); /写入数据2)对链表的创建流程图如下对链表的创建流程图如下: plane *psphead=pspends-next=pspends=psyynps-num!=0phead=nulll 3) 录入航班信息模块的伪代码如下:录入航班信息模块的伪代码如下:plane *phead=null;file *fp; /定义文件型指针变量定义文件型指针变量void main();void fn()
15、; /航班信息函数航班信息函数 10西华大学课程设计报告plane * pcreate()/创建航线上的航班链表创建航线上的航班链表int k=1;plane * ps;plane * pend;ps=new plane;/新链表新链表-pscoutps-num;coutps-stime;coutps-etime;coutps-start;coutps-ends;coutps-price;coutps-discount;coutps-msum;coutendl终点地址终点地址while(ps-num!=0)if(phead=null)phead=ps;elsepend-next=ps; 11西
16、华大学课程设计报告pend=ps;ps=new plane;coutps-num;pend-next=null;return phead;void save(plane * head1) /保存信息保存信息if(fp=fopen(1.txt,ab)=null) /向二进制文件尾增加数据向二进制文件尾增加数据return;for(;head1;head1=head1-next)fwrite(head1,sizeof(plane),1,fp); /写入数据写入数据fclose(fp);4.2.24.2.2、查看和查询航班信息模块、查看和查询航班信息模块由于航班的录入和保存是由链表存储结构进行的,并
17、且是保存在文件“1.txt”中,所以此查询就可通过链表对该文件进行查看或者查询,在查看便是将其文件中所有的航班信息进行输出,而查询我们可根据航班号和航班抵达的城市匹配查看,在查询中将需要查询的航班号 num 和文件阅读时指针所指的值num 进行比较,而按地址查行则利用函数 strcmp(ends,hpead-.ends)=0)若匹配则输出;4.2.34.2.3 订票模块订票模块 先根据 airticket 的数据定义进行定票时信息的输入,在定票时应先按乘客想 12西华大学课程设计报告要定的航班号或者抵达城市由管理员给查询,并按乘客欲定的票的数目与查询数目进行比较,若此比较结果大于或等于 0,则
18、输出乘客 可以定票,且有管理员给予定票,在修改航班信息中该航班的 snum,且在整个定票系统中,所有的定票都用链表进行存储管理,同录入航班情况一样,将此定票保存在航班票数据文件“2.txt“中;4.2.44.2.4 退票模块退票模块 退票因为是由管理员进行操作,所以在退票系统中即对航班票的数据文件进行管理,所以可先按照查询航班票的方法,若查询到的票的信息和乘客此时要求退票的信息相匹配,则在该定票数据文件“2。txt“中删除相应的该票的节点,再修改其航班信息4.2.54.2.5 修改航班信息模块修改航班信息模块即对航班数据文件“1.txt“进行查询,可用文件系统函数 fread()进行操作,先查
19、找要修改的航班,若查找到,将此时文件指针移到该要修改的对象,用临时变量进行该匹配单元节点的暂存,在对此临时变量进行相应信息的修改, ,并调用 save()函数进行修改后的链表进行保存;实现此模块功能的伪代码void change()/功能功能 5:修改航班信息修改航班信息(当修改信息不存在时当修改信息不存在时,不运行不运行)int num; int i=0;plane temp;if(fp=fopen(1.txt,rb+)=null) printf(出错出错,请检查文件是否存在请检查文件是否存在,按任意键返回主菜单按任意键返回主菜单);/出错提出错提示示 cout请输入所要修改的航班号请输入所
20、要修改的航班号:num; while(fread(&temp,sizeof(plane),1,fp)=1) i+; if(temp.num=num) cout修改相应的航班信息修改相应的航班信息:endl;couttemp.num;coutendl;couttemp.stime;coutendl;couttemp.etime;coutendl;couttemp.start;coutendl;couttemp.ends;coutendl;couttemp.price;coutendl;couttemp.discount;couttemp.msum; coutendl; 14西华大学课程设
21、计报告 cout修改完毕!修改完毕!endl; coutendl;fseek(fp,(i-1)*sizeof(plane),0);fwrite(&temp,sizeof(plane),1,fp);fseek(fp,0,0); fclose(fp);5 5 实现与调试分析实现与调试分析5.15.1 实现环境实现环境 本次数据结构课程设计的编程和实现的环境:奔 4 计算机,windows xp, vc+编程环境5.25.2 语言选择语言选择 本次数据结构课程设计的编程和实现所用的语言是:c+语言5.3 调试方法调试方法采用单步跟踪结合设置不同标志的方式,对代码的各个模块功能进行了调试,并通
22、过查看文件中录入信息的方式确认每个模块的实现的正确性。6 6 测试分析测试分析6.16.1 测试用例测试用例 自定义一些航班信息,直接对各个模块功能进行测试。6.26.2 测试结果测试结果1) 主界面:主界面: 15西华大学课程设计报告2)以管理员的身份进入,输入密码()以管理员的身份进入,输入密码(2006):):(1) 主菜单窗口运行界面如下:主菜单窗口运行界面如下:(2) 航线创建功能模块航线创建功能模块,选择 1 创建航线,运行界面如下: 16西华大学课程设计报告 (3)(3) 查看航班信息功能模块查看航班信息功能模块,选择 3 查看航班信息,运行界面如下:(4)(4) 订票功能模块,
23、订票功能模块,选择 2 订票,其运行界面如下: 17西华大学课程设计报告 (5)(5) 查看订票功能模块查看订票功能模块,选择 4 查看订票信息,运行界面如下: (6)(6) 退票功能模块退票功能模块,选择 6 退票,运行界面如下: 选择 4 查看订票信息,因为已经退票,所以信息为空,其运行界面如下: 18西华大学课程设计报告 (7)(7) 修改航班信息功能模块修改航班信息功能模块,选择 7 修改航班信息,其运行界面如下:再选择 3 查看航班信息,以确认航班信息是修改成功,其运行界面如下: 19西华大学课程设计报告(8)(8) 查询航班信息功能模块查询航班信息功能模块,选择 5 查询航班信息,
24、(1) 选择 1 按航班号查询,其运行界面如下: (2) 选择 2,按到飞机到达地点查询,其运行界面如下: 20西华大学课程设计报告 7 7用户手册用户手册1:系统向用户提供如下的友好界面:2管理员密码是“2006” ,输入后将进入如下界面 21西华大学课程设计报告3)用户只需要按界面的提示信息进行相应的操作就可以进行飞机定票系统的管理; 22西华大学课程设计报告8.8.总结总结一份耕耘一份收获,经过两周的刻苦学习,认真实践,终于完成了这份“飞机订票系统”的数据结构课程设计。看着辛苦了两周的成果,看着这 20 多页的报告,心中有种很复杂的感情。首先我要感谢夏老师的悉心指导,从拿到任务书零散,混乱的整体设计思路到一步步理清思路,从基本思路的分析到构架整个设计的框架,从每个模块的概念模型到具体的功能实现都离不开夏老师的帮助。其次在这次课程设计中我收获了很多东西,不仅包括知识上的,更重要的是学会用一种平和坚定的心态去面对困难。虽然我 c 还学得不错,但对数据结构的知识点还掌握的不是很扎实,很多算法知道大概思想,但到具体实施的时候就会出现不完善的地方或错误,以至最开始的时候未能及时地按进度完成设计。当看到夏老师无奈地为我们的平时成绩打 c 的时候,当最后一次程序检查未能通过的时候,我真的很难过,逼自己以一种平和坚定的心态去学习,去改进。本次程序设计主要用到了结构体、调用函数、文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内部集资合同样本
- 业主签装修合同样本
- 农村土屋买卖合同样本
- 出售公房合同标准文本
- 代理加盟养殖合同样本
- 交通科技合同标准文本
- 个人汽车抵账合同样本
- 个人购车担保合同样本
- 业务合作经营合同样本
- 代运车队合同样本
- 《客舱安全与应急处置》-课件:15秒开舱门
- 村内绿化方案设计
- 六年级分数应用题100题及答案
- GB/T 22076-2024气动圆柱形快换接头
- 研究生科研第一课:快速进行文献检索与阅读
- 高功率固体激光器热管理新技术研究
- 电动机拆卸与装配培训
- 2024年高等教育经济类自考-04531微观经济学笔试历年真题荟萃含答案
- 中央环保督察迎检方案
- 组建燃料经销公司方案
- 工程经济学(第6版)全套教学课件
评论
0/150
提交评论