数据结构课程设计飞机票订票系统大学论文.docx
- 文档编号:8157079
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:19
- 大小:275.75KB
数据结构课程设计飞机票订票系统大学论文.docx
《数据结构课程设计飞机票订票系统大学论文.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计飞机票订票系统大学论文.docx(19页珍藏版)》请在冰豆网上搜索。
数据结构课程设计飞机票订票系统大学论文
学号
成都理工大学
计算机科学与技术系
数据结构课程设计
设计说明书
题目
订票系统
学生姓名
班级
成绩
指导教师(签字)
计算机科学与技术系
2016年9月20日
目录
第1章问题描述1
(1)录入:
1
(2)查询:
1
(3)订票:
1
(4)退票:
1
1、开发环境2
2、组成框图2
3、流程图3
第3章详细设计4
1.根据飞机订票系统的可设要求,要实现以下功能:
4
2.具体的方法及函数调用的思想:
4
struct:
//它相当于一种记录4
3.方法的实现:
5
1)input();//录入5
2)find();//查询,按终点站来查询6
3)stringtime(shortbegin_hour,charbegin_minute);//调用系统时间6
4)order();//办理订票函数6
5)refund();//办理退票函数6
第4章测试结果及分析7
执行结果:
7
参考文献10
附录:
源代码10
第1章问题描述
通过此系统可以实现如下功能:
(1)录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(2)查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
(3)订票:
可以订票,如果该航班已经无票,可以提供相关可选择航班;
(4)退票:
订票数量及航班情况。
第2章概要设计
1、开发环境
系统环境:
MicrosoftWindows®10专业版
开发环境:
MicrosoftVisualStudio2015
开发平台:
Win64
开发语言:
C++
硬件环境:
(1)CPU:
IntelCorei5
(2)内存:
4GB
(3)显示卡:
NVIDIAGeForceGTX950M
2、组成框图
3、流程图
第3章详细设计
1.根据飞机订票系统的可设要求,要实现以下功能:
(1)录入:
录入航班情况
(2)查询:
可以查询某个航线的情况
可以输入抵达城市,查询飞机航班情况;
(3)订票:
1)先判断飞机是否起飞,如果发出航班则订票失败,否则可以订机票。
2)当有余票时显示剩余票数,则可以订票成功,如果没有余票,则订票失败。
(4)退票:
1)先判断飞机是否起飞,如果发出航班则订票失败,否则可以订机票。
2)当有余票时显示剩余票数,则可以退票成功,如果没有余票,则退票失败。
2.具体的方法及函数调用的思想:
struct:
//它相当于一种记录
定义要存储的变量:
可以通过以下的声明来建立如图的数据类型
intair_num;//班次号
shortbegin_hour;//起飞时间小时
shortbegin_minute;//起飞时间分钟
charbegin_name[10];//起始站点
charend_name[10];//终点站名
floatfly_time;//飞行时间
inttotal;//乘员总定额
inttotal_already;//已订票人数
boolexist;//航班状态
intfare;//飞机票价
定义一个结构体来存储四个航班信息:
{}里的变量依次表示为:
航班号,起飞时间(小时),起飞时间(分钟),起始站点,终点站名,飞行时间,成员定额,已订票人数,航班状态;
{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,"天津","长沙",2,140,120,true,3000}
1
12
0
天津
广州
2
145
130
true
1000
2
6
30
北京
成都
0.5
140
140
true
2000
3
22
0
广州
南京
2.5
120
120
true
2500
4
15
0
天津
长沙
2
120
120
true
3000
3.方法的实现:
1)input();//录入
input()方法的功能就是录入航班号i,起飞时间(小时)begin_hour,起飞时间(分钟)begin_minute,起始地点名称begin_name,种植地点名称end_name,飞行时间fly_time,总载客量total,已订票人数total_already,飞机票价fare,航班状态exist。
变量inti=4,因为事先已经录入4个编号为1~4的航班号,因此当输入1~4的航班号时会提醒此航班号已存在,因而在控制台输入的航班号必须大于4而小于50。
变量intj=0;则j+1表示录入第(j+1)个航班班次的信息
2)find();//查询,按终点站来查询
根据已有的飞机信息来依据终点信息来查询航班。
首先要调用读取机票信息函数,读取要查询的机票信息,既read()方法。
并且在方法中有一个计数器k,当k=-1时输出无此航班的飞机,反之根据终点站名字来查询航班信息。
3)stringtime(shortbegin_hour,charbegin_minute);//调用系统时间
当输入起飞时间与该电脑里的时间作比较,当电脑现在的时间比输入起飞时间大的话,则说明飞机已经起飞。
通过线面的语句来实现:
(begin_hour 4)order();//办理订票函数 当订票的时候,首先要输入要订票的航班号,因此在这之后应读入在系统中的航班信息,当输入航班编号后如无此航班号,则失败,反之先判断次航班是否已经起飞if((b[i].begin_hour>sys.wHour)||(b[i].begin_hour==sys.wHour&&b[i].begin_minute>sys.wMinute)),如果没起飞,在判断是否还有余票if(b[i].total==b[i].total_already),如果有,计算剩余的多少张票b[i].total-b[i].total_already,进而订在剩余票数的范围内购票,如果与之相反,则证明飞机已经起飞也就是说已经订不到票了。 5)refund();//办理退票函数 思路类似于订票,首先要数如要退票的航班号,并且在这之后读入系统中的航班信息,当输入航班编号后如无此航班号,则失败,反之先判断次航班是否已经起飞if((b[i].begin_hour>sys.wHour)||(b[i].begin_hour==sys.wHour&&b[i].begin_minute>sys.wMinute)),如果没起飞,确定退票数完成退票操作。 如果与之相反,则证明飞机已经起飞了,无法进行退票业务了。 第4章测试结果及分析 执行结果: 参考文献 附录: 源代码 #include #include #include usingnamespacestd; constintN=50; structairline {intair_num;//班次号 shortbegin_hour;//起飞时间小时 shortbegin_minute;//起飞时间分钟 charbegin_name[10];//起始站点 charend_name[10];//终点站名 floatfly_time;//飞行时间 inttotal;//乘员总定额 inttotal_already;//已订票人数 boolexist;//航班状态 intfare;//飞机票价 }; structairlineb[N]={ //航班号,起飞时间(小时),起飞时间(分钟),起始站点,终点站名,飞行时间,成员定额,已订票人数,航班状态 {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,"天津","长沙",2,140,120,true,3000} }; //声明全局变量 intn=0;//航班数量 //函数声明 voidinput();//录入 voidfind();//查询,按终点站来查询 stringtime(shortbegin_hour,charbegin_minute);//调用系统时间 voidorder();//办理订票函数 voidrefund();//办理退票函数 voidinput()//录入班次信息函数 { if(n<=0) { cout<<"请输入录入班次的数量: "< cin>>n; } for(inti=4,j=0;i { cout<<"正在录入第"< \n"; cout<<"------------------------------\n"; cout<<"请输入班次的编号(1-50): "; cin>>b[i].air_num; if(b[i].air_num>50||b[i].air_num<1) {cout<<"输入编号错误! "< for(intj=0;j { if(b[i].air_num! =b[j].air_num)continue; else{cout<<"录入失败,此编号的班次已经存在! "< } if(j>=i) { cout<<"请输入班次的起飞时间: "< "; cin>>b[i].begin_hour;cout<<"分钟为: "; cin>>b[i].begin_minute; cout<<"请输入班次的起始地点: "; cin>>b[i].begin_name; cout<<"请输入班次的终到地点: "; cin>>b[i].end_name; if(strcmp(b[i].end_name,b[i].begin_name)==0) {cout<<"输入错误! 起始地点和终到地点不应该相同! "< cout<<"请输入班次的飞行时间(hour): "; cin>>b[i].fly_time; cout<<"请输入固定的载客量: "; cin>>b[i].total; cout<<"请输入已订票人数: "; cin>>b[i].total_already; cout<<"请输入飞机票价: "; cin>>b[i].fare; b[i].exist=true; cout<<"-----已成功录入! -----\n"; } } } stringtime(shortbegin_hour,shortbegin_minute)//调用系统时间函数 { SYSTEMTIMEsys;//系统时间sys GetLocalTime(&sys);//获得本地电脑时间 stringstr; if((begin_hour str="已发出! "; elsestr="未发出! "; returnstr; } voidoutput(inti) { cout<<"----------------------\n"; cout<<"班次号"<<""<<"起飞时间"<<""<<"起始站"<<""<<"终点站"<<""<< "飞行时间"<<""<<"固定载客量"<<""<<"已订票人数"<<""<<"飞机票价"<<""<<"飞机状态"< cout<<""< "< < < } voidfind()//查询班次信息函数 { intk=-1;//计数器 charend[10]; cout<<"请输入要查询的终点站: \n"; cin>>end; for(inti=0;i if(strcmp(b[i].end_name,end)==0)//strcmp()是用来比较大小的,它是C++中头文件 //中定义的一个用于对两组字符串进行比较的函数,它的返回值是int类型。 { output(i); k=i; } if(k==-1) cout<<"不存在至此的航班"< } voidcheck()//浏览班次函数 { cout<<"已有的航班班次为: "< for(inti=0;i { output(i); cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 飞机票 订票 系统 大学 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)