航班订票系统课程设计报告C++.docx
- 文档编号:7044167
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:14
- 大小:63.02KB
航班订票系统课程设计报告C++.docx
《航班订票系统课程设计报告C++.docx》由会员分享,可在线阅读,更多相关《航班订票系统课程设计报告C++.docx(14页珍藏版)》请在冰豆网上搜索。
航班订票系统课程设计报告C++
一.课程设计目的
1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言,自行实现一个较为完整的应用系统的设计与开发。
2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。
3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
二.课程设计内容
1)、录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
2)、查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
3)、订票:
(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
4)、退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5)、修改航班信息:
当航班信息改变可以修改航班数据文件
三.系统功能模块设计
本系统分为五个模块:
录入新航班模块、浏览航班模块、查找航班模块、订票模块、退票模块。
得到如图所示系统功能模块图。
飞机航班订票系统
录入新航班信息
浏览航班信息
退票系统
查找航班信息
订票系统
系统功能模块图
四.程序源代码
#ifndefFLIGHTINFO_H
#defineFLIGHTINFO_H
#include
#include<>
usingnamespacestd;
light<<"\t"< } cout<<"---------------------------------------------"< cout<<"你可以进行以下操作: .查看单条航线;" <<"2.录入新的航班信息"<<"3.返回上一级.\n" <<"请选择: "; intchioce; top2: cin>>chioce; if(chioce==1) { ShowOneFlight(F); } elseif(chioce==2) addFlight(F,B); elseif(chioce==3) { return; } else { cout<<"输入错误! 请重新选择: "; gototop2; } } voidaddFlight(FlightNode*F,POList*B) { inti=0; while(n<50){ cout<<"请输入航班的信息: "< <<"请输入新航班的终点站名: "; cin>>F[n].Terminus; do{cout<<"请输入新航班的航班号: "; cin>>F[n].Flight; if(F[n].Flight%5! =0) {cout<<"输入有误,请重新输入."; i=1;} else{ for(intj=0;j if(F[n].Flight==F[j].Flight) {cout<<"航班号已存在,请重新输入。 "; i=1;break;} } }while(i); cout<<"请输入新航班的飞机号: "; cin>>F[n].Plane; cout<<"请输入新航班的飞行日: "; cin>>F[n].Day; cout<<"请输入新航班的成员定额: "; cin>>F[n].Maxnum; cout<<"请输入如新航班的余票量: "; cin>>F[n].Left; B[n].Fli=F[n].Flight; cout<<"录入成功"; n++; cout<<"是否继续录入(y/n)"; charch; top10: cin>>ch; if(ch=='y') { i=1; } elseif(ch=='n') return; else { cout<<"输入错误! 请重新选择: "; gototop10; } } } erminus)==0) {temp[m]=F[i];m++;} } if(m==0)cout<<"无此终点站"< else { FlightNodetemp1=temp[0]; cout<<"航班号: "< "< "< "< for(intj=1;j { if(temp[j].Day! =0) { cout<<"航班号: "< "< "< "< if((temp[j].Day>=3)&&(temp[j-1].Day>temp[j].Day))temp1=temp[j]; } } cout<<"最近一天的航班: \n" <<"航班号: "<<< "<<< "<<< "<<< } cout<<"请选择所要的操作: ,继续查询2.返回上一级\n"; top3: cin>>choice; if(choice==1) { ShowOneFlight(F); } elseif(choice==2) { return; } else { cout<<"输入错误! 请重新选择: "; gototop3; } } voidBookTicket(FlightNode*F,POList*B) { intflag=0; intFl; intN; charNa[20]; intchoice; inttemp; cout<<"请输入需乘坐的航班号: \n"; top6: cin>>Fl; if(! (Fl%5==0)) { cout<<"输入错误! 无此航班号,请重新输入: "; gototop6; } cout<<"请输入订票额: \n"; cin>>N; cout<<"请输入您的名字: \n"; cin>>Na; for(inti=0;i { if(Fl==B[i].Fli){temp=i;flag=1;} } if(flag==0){cout<<"无此航班\n";return;} if(F[temp].Left>=N) { charchoice1; cout<<"尚有余票,"< "< "< cout<<"你要订"< cin>>choice1; switch(choice1) { case'Y': case'y': B[temp].append(Na,N,1);F[temp].Left=F[temp].Left-N;cout<<"订票成功! \n";break; default: return; } } else { cout<<"余票不足,订票失败"< } cout<<"请选择下一步操作: ,继续订票2,退票3.返回上一级\n"; top4: cin>>choice; if(choice==1) { BookTicket(F,B); } elseif(choice==2) { ReturnTicket(F,B); } elseif(choice==3) { return; } else { cout<<"输入错误! 请重新选择: "; gototop4; } } voidReturnTicket(FlightNode*F,POList*B) { intFtemp; charNtemp[20]; intBoNum; intflag=0; intflag1=0; inttemp; intchoice; boolflag2; flag=0; intLength; intLengthR; cout<<"请输入要退票的航班号: "; cin>>Ftemp; cout<<"请输入你的名字: "; cin>>Ntemp; for(inti=0;i { if(Ftemp==B[i].Fli){temp=i;flag1=1;} } if(flag1==0){cout<<"无此航班\n";return;} B[temp].setEnd(); Length=B[temp].leftLength(); cout< B[temp].setStart(); for(intj=0;j<=Length;j++) { if(strcmp(B[temp].fence->Name,Ntemp)==0) { B[temp].prev(); B[temp].remove(Ntemp,BoNum); F[temp].Left+=BoNum; flag=1; } B[temp].next(); } if(flag==1) cout<<"退票成功! "< elsecout<<"对不起,没有你订票的记录! \n"; cout<<"请选择下一步操作: ,继续退票2,订票3,返回上级菜单\n"; top5: cin>>choice; if(choice==1) { ReturnTicket(F,B); } elseif(choice==2) { BookTicket(F,B); } elseif(choice==3) { return; } else { cout<<"输入错误! 请重新选择: "; gototop5; } } voidmain() { FlightNodeF[50]; POListB[50]; li=1005; F[2]=FlightNode("哈尔滨",1010,101,5,100,100); B[2].Fli=1010; F[3]=FlightNode("长春",1015,102,4,100,100); B[3].Fli=1015; F[4]=FlightNode("天津",1020,103,2,100,100); B[4].Fli=1020; F[5]=FlightNode("西安",1025,104,1,100,100); B[5].Fli=1025; F[6]=FlightNode("拉萨",1030,105,6,100,100); B[6].Fli=1030; F[7]=FlightNode("杭州",1035,106,7,100,100); B[7].Fli=1035; F[8]=FlightNode("海口",1040,107,1,100,100); B[8].Fli=1040; F[9]=FlightNode("台北",1045,108,2,100,100); B[9].Fli=1045; F[10]=FlightNode("东京",1050,109,3,100,100); B[10].Fli=1050; F[11]=FlightNode("伦敦",1055,110,4,100,100); B[11].Fli=1055; F[12]=FlightNode("纽约",1060,111,5,100,100); B[12].Fli=1060; F[13]=FlightNode("巴黎",1060,112,6,100,100); B[13].Fli=1060; F[14]=FlightNode("悉尼",1065,113,7,100,100); B[14].Fli=1065; F[15]=FlightNode("温哥华",1070,114,1,100,100); B[15].Fli=1070; F[16]=FlightNode("华盛顿",1075,115,2,100,100); B[16].Fli=1075; F[17]=FlightNode("新加坡",1080,116,3,100,100); B[17].Fli=1080; F[18]=FlightNode("平壤",1085,117,4,100,100); B[18].Fli=1085; F[19]=FlightNode("汉城",1090,118,5,100,100); B[19].Fli=1090; n=20; intchoice; while (1) { cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++"< cout<<"***欢迎使用航空客运订票系统! ! ***"< cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++"< cout<<"你可以进行以下的操作: \n" <<"1==>查询已有航线\n" <<"2==>录入新的航线信息\n" <<"3==>查询单条航线\n" <<"4==>订票\n" <<"5==>退票\n" <<"6==>退出.\n" <<"----------------------------------------"< cout<<"请选择: "; top: cin>>choice; switch(choice) { case1: ShowAllFlight(F,B);break; case2: addFlight(F,B);break; case3: ShowOneFlight(F);break; case4: BookTicket(F,B);break; case5: ReturnTicket(F,B);break; case6: cout<<"退出系统! 多谢使用! ";return; default: cout<<"输入错误,请重新输入: \n";gototop; } } } 五.实验结果 1.当运行程序时,会出现如下界面 2.通过选择1可以查询现在已有的航线 3.通过选择2可以录入新的航班 4.选择4可以进入订票系统 5.选择5可以进入退票系统 5.选择6则可以退出系统 心得体会 在这次程序编制的过程中出现了很多问题,主要原因是自己以前接触的关于编制程序的知识的缺乏,通过航班订票系统的开发让我知道了自己的不足和缺点,写出一个好的程序需要合作精神,一个人的力量毕竟是有限的团队力量才是无穷的。 一个好的程序员一定是从程序堆里走出来的,只有通过参与具体程序的开发才知道自己知识的有限,才会学会具体的分析问题,是自己的逻辑性和层次性得到良好的锻炼,经过这次课程设计,我对调试掌握的更加熟练了,改变了过去只调试不知道如何对照程序语言修改程序的坏习惯,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如果加一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。 课程设计是一门专业课,给我很多专业知识以及专业技能上了提升,同时又是一门思辨课,让我感触很深,是我对抽象的理论有了具体的认识,在这次课程设计中知道了以前没有接触过的很多函数,在以后的学习中自己要加强程序的锻炼,多参考好的程序和各种各样的函数,建立起自己的函数库,为以后学习打下良好的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航班 订票 系统 课程设计 报告 C+