数据结构课程设计飞机票订票系统讲解_第1页
数据结构课程设计飞机票订票系统讲解_第2页
数据结构课程设计飞机票订票系统讲解_第3页
数据结构课程设计飞机票订票系统讲解_第4页
数据结构课程设计飞机票订票系统讲解_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、学号成都理工大学计算机科学与技术系数据结构课程设计设计说明书题目订票系统学 生 姓 名班级 成绩 指导教师(签字)计算机科学与技术系2016年9月20日数据结构课程设计III目录第1章问题描述1录入:1(2) 查询:1(3) 订票:1(4) 退票:11、开发环境22、组成框图 23、流程图3第3章详细设计41. 根据飞机订票系统的可设要求,要实现以下功能: 42. 具体的方法及函数调用的思想:4struct : II它相当于一种记录43. 方法的实现:51) input( ); II 录入52) find( ); II查询,按终点站来查询 63) stri ng time(short beg

2、in _hour,char beg in_minu te); II调用系统时间 64) order( ); II办理订票函数 65) refund( ); II办理退票函数 6第4章测试结果及分析7执行结果:7参考文献10附录:源代码101数据结构课程设计III第1章问题描述通过此系统可以实现如下功能:(1) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据 自定)(2) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城 市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3) 订票:可以订票,如果该航班已经无票,

3、可以提供相关可选择航班;退票:订票数量及航班情况。-26-第2章概要设计1、开发环境系统环境:Microsoft Win dows? 10 专业版开发环境:Microsoft Visual Studio 2015开发平台:Win 64开发语言:C+硬件环境:(1) CPU: Intel Core i5(2) 内存:4GB(3) 显示卡:NVIDIA GeForce GTX950M2、组成框图3、流程图第3章详细设计1. 根据飞机订票系统的可设要求,要实现以下功能:(1)录入:录入航班情况查询:可以查询某个航线的情况可以输入抵达城市,查询飞机航班情况;(3)订票:1)先判断飞机是否起飞,如果发出

4、航班则订票失败,否则可以订机票。2)当有余票时显示剩余票数,则可以订票成功,如果没有余票,则订票失败。退票:1)先判断飞机是否起飞,如果发出航班则订票失败,否则可以订机票。2)当有余票时显示剩余票数,则可以退票成功,如果没有余票,则退票失败。2. 具体的方法及函数调用的思想:struct : II它相当于一种记录定义要存储的变量:可以通过以下的声明来建立如图的数据类型int air_ num;IIshort beg in _hour; short begin_mi nute;char beg in_n ame10;char end_n ame10;float fly_time;IIint to

5、tal;IIint total_already;IIIIIIIIII班次号起飞时间小时起飞时间分钟起始站点终点站名飞行时间乘员总定额已订票人数bool exist;II航班状态int fare;II飞机票价定义一个结构体来存储四个航班信息: 里的变量依次表示为:航班号,起飞时间(小时),起飞时间(分钟),起始站点,终点站名,飞行时间,成员定额,已订票人数,航班状态 ;1,12,0, 天津,广州,2,145,130,true,1000,2,6,30,北京,成都,0.5,140,140,true,2000,3,22,0,广州,南京,2.5,140,120,true,2500,4,15,0, 天津,

6、长沙,2,140,120,true,30001120天津广州2145130true10002630北京成都0.5140140true20003220广州南京2.5120120true25004150天津长沙2120120true30003. 方法的实现:1)input( ); II 录入in put ()方法的功能就是录入航班号 i,起飞时间(小时)begin_hour,起飞 时间(分钟)begin_minute,起始地点名称 begin_name,种植地点名称 end_name, 飞行时间fly_time ,总载客量total ,已订票人数total_already ,飞机票价fare ,

7、航班状态exist。变量int i=4,因为事先已经录入4个编号为14的航班号,因此当输入14的航 班号时会提醒此航班号已存在,因而在控制台输入的航班号必须大于4而小于50。变量int j=0;则j+1表示录入第(j+1 )个航班班次的信息2) find( ); II 查询,按终点站来查询根据已有的飞机信息来依据终点信息来查询航班。首先要调用读取机票信息函 数,读取要查询的机票信息,既read()方法。并且在方法中有一个计数器k,当k=-1 时输出无此航班的飞机,反之根据终点站名字来查询航班信息。3) stri ng time(short beg in _hour,char begin_mi

8、nu te); II调用系统时间当输入起飞时间与该电脑里的时间作比较,当电脑现在的时间比输入起飞时间大的话,则说明飞机已经起飞。通过线面的语句来实现:(begin_hoursys.wHour)|(bi.begin_hour=sys.wHo ur&bi.begin_m in utesys.wMi nute), 如果没 起飞, 在判断 是否还 有余票if(bi.total=bi.total_already),如果有,计算剩余的多少张票bi.total-bi.total_already,进而订在剩余票数的范围内购票,如果与之相反,则证明飞机已经起飞也就是说已经订不到票了。5) refund( );

9、II办理退票函数思路类似于订票,首先要数如要退票的航班号,并且在这之后读入系统中的航班 信息,当输入航班编号后如无此航班号,则失败,反之先判断次航班是否已经起飞 if(bi.begin_hoursys.wHour)|(bi.begin_hour=sys.wHo ur&bi.begin_m in utesys.wMi nute),如果没起飞,确定退票数完成退票操作。如果与之相反,则 证明飞机已经起飞了,无法进行退票业务了。第4早 测试结果及分析执行结果:小F八数据结构课程设计ea据结构课设Debug订票系统.飞机订示系统* 】 二 二 二二“入询览乂番浏E自暂當3理理“低隹仕处处 蓄董盍雷十票岀

10、 H 订退退请选择05二飞机订票系统二二二二二二二二二二二二二二入询览 一書浏H息自j恳理理 一处 票票票票亜巫 -la8 退二-123 450 I请选择0-石:青输入录入班次的数量 Je在录入第直个班次的信息!ho30点点间就0 地地时量5:2 起终飞费价 的的的的票票. 次次次定订机 :,:0班班班固已飞 入入为为入入入入入入 隹冃请请请请请请.-5可 一 .1 1寸 C日 号飞 编起 次篮 TI I!c QQ请选择0-5 :話次库存数量为;5C_班次号起飞时间起始站终点站飞行时间固定载客量已订票人数飞机票价3053072:033718433280256000呢次号起飞时间W飞行时间固定载

11、客量已订票人数飞机票价1401402000飞机噓j Ei & 岀炎次号起飞时间22:0摯5飞行时间固定载客量已订粟人数飞机票价南乐2,51401202500W丽尋气飞行时间固定载客量已订票人数飞机票价15:021401203000飞:It班次号起飞时间22:0飞行时间固定载客量已订票人数飞机票价2302162058I; 4Bj1T系 ?充鼻 贰疋耳贰豪暮 耳疋芦贰1*1*耳疋員北廉 耳KK R1lfe处 票票票畀杲出貫退一 Fmr % F 12 3 4 5 0请选择週-5: 备输入要购买机票的班.次编号: 卷套此班次!仍有机票丄4张! 请蠢入要购买的机票数,3 籟是要购买? 2 寻票成功.祝您

12、旅途愉快!飞机订票系统賊崑農执其慕鼻M氛宾*慕XX找慕轻XX乂事X報農X X七*字在此班次!对不起,此班次的机票已售完!请输入要购买机票的班枕编号;请选择D-E:X 稱 s %飞=士二g入询览-8W息息&理理 泊=E_s-lldJy 11 A- I L ZL4Z X票票票票匠茧 退请选择0 百= 穆输入要购买机票的班次编号*在在此班次!仍頁机票加张! 请蠢入要购买的机票数 3 确疋要购买? 5 花航班已经发岀,无法办理订票!飞机订票系统芳二二E入询览暑一浏息息息理理 “1/处 票票票票邑B3 叽fflj矶!退二二x+. -rhr2bk.LBOT0!请选择:i青输入要退机票的班次编号;哩躱禺懑泸

13、退的机栗数:退票成功,欢迎您下次光临!飞机订票系统=入询览 一 SWF 010息理理 一一票票票票#in clude strcmp()数)#i nclude II系统窗口时间请选择助-请输入要退机票的班次編号;字在此班次!对不起,此航班已经起飞,无法办理退票!参考文献附录:源代码#in clude是用来比较大小的,它是C+中头文件 (字符串函II班次号起飞时间小时using n amespace std;con st int N= 50;struct airli ne int air_ num;IIshort begin hour;short begi n_minu te;II起飞时间分钟ch

14、ar begi n_n ame10;II起始站点char end_n ame10;II终点站名float fly_time;II飞行时间int total;II乘员总定额int total_already;II已订票人数bool exist;II航班状态int fare;II飞机票价;struct airline bN=II航班号,起飞时间(小时),起飞时间(分钟),起始站点,终点站名,飞行时间,成员定额,已订票人数,航班状态1,12,0, 天津,广州,2,145,130,true,1000,2,6,30,北京,成都,0.5,140,140,true,2000,3,22,0,广州,南京,2.5

15、,140,120,true,2500,4,15,0,天津,长沙,2,140,120,true,3000;II声明全局变量int n=0;II航班数量II函数声明void in put();IIvoid fin d();II录入查询,按终点站来查询stri ng time(short beg in _hour,char beg in_minu te);II调用系统时间void order();II办理订票函数void refun d();II办理退票函数void in put()II录入班次信息函数if(n=0)cout请输入录入班次的数量:endl;cinn;for(i nt i=4,j=0;

16、i n+4,j n ;i+,j+)cout正在录入第j+1个班次的信息!n;coutn;cout bi.air_ num;if(bi.air_ num50|bi.air_ num1)cout输入编号错误!endl;break;for(i nt j=0;ji;j+)if(bi.air_ num !=bj.air_ num) continue;else cout录入失败,此编号的班次已经存在!=i)cout请输入班次的起飞时间: endlbi.begin_hour;cout bi.begi n_minu te;cout bi.begi n_n ame;cout bi.e nd_n ame;if(s

17、trcmp(bi.e nd_n ame,bi.begi n_n ame)=0)e ndl;break;cout输入错误!起始地点和终到地点不应该相同!cout bi.fly_time;cout bi.total;cout bi.total_already; cout bi.fare;bi.exist=true;cout已成功录入!n;调用系统时间函数stri ng time(short beg in _hour,short begi n_minu te)/SYSTEMTIME sys; /系统时间 sysGetLocalTime(&sys); II获得本地电脑时间string str;if(b

18、egin_hoursys.wHour)|(begin_hour=sys.wHour&begin_mi nu tesys.wMi nu te)str=已发出!;else str=未发出!;return str;void output(i nt i)coutn;cout班次号 起飞时间 起始站 终点站飞行时间 固定载客量 已订票人数 飞机票价飞机状态endl;coutbi.air_ numbi.beg in _hour:bi.begi n_minu tebi.beg in_n amebi.e nd_n amebi.fly_timebi.totalbi.total_alreadybi.fare bi

19、.exist;查询班次信息函数void find()IIint k=-1;II 计数器char e nd10;cout请输入要查询的终点站:n;cinend;for(i nt i=0;i n+4;i+)if(strcmp(bi.end_name,end)=0) IIstrcmp()是用来比较大小的,它是 C+中头文件(字符串函数)II中定义的一个用于对两组字符串进行比较的函数,它的返回值是int类型。output(i);k=i;if(k=-1)cout不存在至此的航班endl;void check()II浏览班次函数cout已有的航班班次为:n+4endl;for(i nt i=0;i n+4

20、;i+)output(i);couttime(bi.begi n_hour,bi.begi n_minu te)e ndl; II显示是否发出航班void order()II订票函数int nu ml, nu m2,k=-1;char ch;cout请输入要购买机票的班次编号:endl;cinnu ml;for(i nt i=0;i n+4;i+)if(bi.air_ num=nu ml)k=i;cout存在此班次!;if(bi.total=bi.total_already)cout对不起,此班次的机票已售完!;elsecout 仍有机票bi.total-bi.total_alreadye n

21、dl;cout”请输入要购买的机票数:”;cinnu m2;if(bi.total-bi.total_already nu m2)理! ”endl;cout对不起,您所要购买的机票数已超过剩余票数,无法办break;else cout确定要购买?(y/n ) ch;if(ch=y|ch=Y)SYSTEMTIME sys;GetLocalTime(&sys);if(bi.begi n_hoursys.wHour)|(bi.beg in _hour=sys.wHo ur&bi.begi n_minu tesys.wMi nute)bi.total_already+=nu m2; cout订票成功,

22、祝您旅途愉快!endl;else cout 此航班已经发出,无法办理订票!e ndl;else return;if(k=-1)cout不存在编号为num1的班次!endl;退票函数void refun d()/int nu m1, nu m2,k=-1;char ch;cout请输入要退机票的班次编号:endl;cinnu ml;for(i nt i=0;i n+4;i+)if(bi.air_ num=nu ml)k=i;cout存在此班次!;SYSTEMTIME sys;GetLocalTime( &sys);if(bi.begi n_hoursys.wHour)|(bi.beg in _hour=sys.wHo ur&bi.begi n_minu tesys.wMi nute)cout对不起,此航班已经起飞,无法办理退票!endl;elsecout请输入要退的机票数:;cinnu m2;if(bi.total_already nu m2)cout只售出bi.total_already 张票! endl; break;elsecout确定要退票?(y/n) ch;if(ch=y|ch=Y)bi.total_already-=nu

温馨提示

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

评论

0/150

提交评论