




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+掘程设计报告飞机订票管理 系统青岛理工大学C+面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名:班级 软件131班 学号:题目:飞机订票管理系统设计.起迄日期:.2015.6.29 2015.7.10设计地点:计算机学院机房指导教师: 翟正利 丁凡完成日期:2015 年7月10日C+湎向对象课程设计任务书题目24 “飞机订票管理系统设计”1、问题描述:航空客运订票的业务包括:查询航班、客票 预订和办理退票等。试设计一个航空客运订票系 统,已使上述业务可以借助计算机完成。2.功能要求:(1)每条航线所涉及的信息有:终点站名、 航班号、飞机号、星期几飞行飞行周日(星期几)、
2、乘员定额、余票量、已订票的客户名单(包括姓 名、订票量、舱位等级)以及等候补替补的客户 名单(包括姓名、所需票量);(2)作为示意系统,全部数据可以只放在 内存中;(3)系统能实现的操作和功能如下:录入:可以录入航班情况(数据可以存储在 一个数据文件中,数据结构、具体数据自定);查询航线:根据旅客提出的终点站名输入下 列信息:航班号、飞机号、星期几起飞,最近航 班的日期和余票量。承办订票业务:根据客户提出的要求(航班 号、订票数额)查询该航班票额情况,若尚有余 票,则为客户办理订票手续,输出座位号;若已 满员或者余票数少于订票额,则需重新寻味客户 要求,若需要,可登记排队候补;承办退票业务:根
3、据客户提供的情况(日期、 航班),为客户办理退票手续,然后查询该航班 是否有人排队等候补,首先询问排在第一的客 户,若所有退票额能满足他的要求,则为他办理 订票手续否则依次询问其他排队候补的客户。修改航班信息:当航班信息改变可以修改航 班数据文件。(选作)为客户订票要求不能满足时,系统 可向客户提供到达同一目的地的其他航线情况。3、问题的解决方案:根据系统功能要求,可以将问题解决分为以 下步骤:(1)应用系统分析,建立该系统的功能模 块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的 关系;(3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述;(5)完成类中各
4、个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。一、需求分析 2、内容设计2.1、 根据所选题目给出模块图2.2、 画出主要程序的流程图:2.3、 编写程序关键代码:三、调试分析四、用户手册五、设计总结六、参考文献七、附录错误!未定义书签。错误!未定义书签。6一、需求分析1.选做此课题或项的目的1 .通过实验实现对学生信息系统的管理操作2 .进一步掌握和利用C+4行程设计的能力 3.进一步理解和运用结构化程序设计的思想和 方法一 ,人f- r4.初步掌握开发一个小型实用系统的基本方法 5.学会利用流程图或N-S图表示算法;6.掌握书写程设计开发文档的能力2.
5、程序所实现的功能1 .输入航班信息并保存到磁盘;2 .浏览航班信息:3 .修改航班信息笄保存到磁盘4 .查找航班5 .订票6 .退票二、内容设计1.根据所选题目给出模块图如图1.1所示飞机订图1.1模块图2 .画出主程序及其主要模块的流程图(1) .如图2.1所示为查询函数的流程图:10输出航图2.1查询函数的流程图.图2.2所示为订票函数流程图/输入要订/.输出订图2.2订票函数流程.图2.3所示为退票函数流程图/输入姓名 /图2.3退票函数流程.如图2.4所示为查询全部信息函数输出乘输出航班图2.4查询全部信息函数(5.)如图2.5所示为主程序流程图图2.5查询全部信息函数3 .编写程序关
6、键代码(1) .录入航班信息:void chushi()int i;ofstream outfile(airline.dat); ofstream file(customer.dat);for (i=0;i3;i+)(outfilefli.fligh fli.numfli.place fli.datafli.dticket fli.riqifli.yticketendl;cui.numcui.seat cnumendl; outfile.close();file.close();cout初始化已完毕! endlendl;caidan1();(2) .查询航班信息:voi
7、d chaxun1()(char place10; int temp,i,a;coutplace; for(i=0;i100;i+)if(strcmp(fli.place,place)=0)temp=i;a=0;飞 机 号:起飞 日 期:最近航班日期余 票 量cout航班信息endl航班号:fltemp.flighfltemp.numfltemp.datafltemp.riqi fltemp.yticketendl;if(a!=0)cout查询失败! endl;couttemp;if(temp=1) caidan2();(3) .订票:void dingpiao()订票char name10;
8、int num,i,t,j,k,temp;int x;cout请输入你的姓名和想订的航班号:endlendl;coutname;coutendl;coutnum;for(i=0;i300;i+)if(strcmp(name,)=0)(coutt;switch(t)case 1:caidan1();break;default :break;for(i=0;i300;i+)if (name!=)for(j=0;j10;j+)if(flj.fligh=num)temp=j;if(fltemp.yticket=100)coutx;switch(x)case 1:for
9、(k=0;k3;k+)if (flk.fligh=num)flk.dticket=flk.dticket+1;flk.yticket=flk.yticket-1;cnum=cnum+1;strcpy(,name);cucnum.num=n um;cucnum.seat=flk.dticket;ofstream outfile1(airline.dat);for(j=0;j3;j+) outfile1flj.flighflj.numflj.place15flj.dataflj.dticketflj.riqi flj.yticketendl;ofstreamoutfile2(
10、customer.dat,ios:app);cucnum.num cucnum.seat cnumendl;打开文件并存储数据cout订票成功! endlendl 客 户 信 息t 航 班 号 cucnum.numt 座位号 cucnum.seatendl;outfile1.close();outfile2.close();couttemp;if(temp=1) caidan1(); else;break;default :caidan1();break;else cout止匕航 班票已经售完,请订其他航班次的票;.退票:void t
11、uipiao() 退票char name10;int i,temp,t,num,a,j;struct tmp;cout”请输入您的姓名和航班号:endl;coutname;coutnum;coutendl;for(i=0;i300;i+)if (strcmp(,name)=0)a=0;couttemp;if(temp=1) 17ofstream outfile1(airline.dat);ofstream outfile2(customer.dat);for(j=0;j=i;j+)cuj.num cuj.seat jendl; for(t=0;t
12、3;t+)(if(flt.fligh=num)flt.dticket=flt.dticket-1;flt.yticket=flt.ytic ket+1;for(t=0;t3;t+)outfile1flt.flighflt.numflt.placeflt.dataflt.dticketflt.riqi flt.yticketendl; elsea!=0;if (a!=0)cout没有你的信息,请查证后再操作!; couttemp;if(temp=1) caidan1(); )(5) .查询全部信息: void chaxunquanbu()int i,temp;cout乘客信息:endlendl;
13、 for(i=0;i300;i+)if (cnum=i) temp=i;)for(i=0;itemp;i+)cout姓名:t 航班号: cui.numt 座 位 号 cui.seatt 编号:i+1endl; coutendl航班信息:endlendl;for(i=0;i3;i+)cout航班号:fli.flight飞机号:fli.numt 目 的 地fli.placet 起 飞 日 期票数 :航班日期票数 :fli.datat 已 订 fli.dtickett 最近 fli.riqit 剩 余 fli.yticketendl;couttemp;if(temp=1)caidan
14、1();(6) .主菜单函数: void caidan1() int i;cout”*航空订票系统v2012cout*”endl;25*endl;cout*1. 订 票 业 务2.退票业务*endl;cout*”endl;cout”*3.查询客户信息 4.查询全部信息 *endl;cout*5.查 询 飞 机 票6.退出系统*“endl;cout*endl;cout*如果是第一次使用本系统,请载入初始信息*endl;”*ifstream infile1(airline.dat);ifstream infile2(customer.dat);for(i=0;ifli.flighfli.numfl
15、i.placefli .datafli.dticketfli.riqifli.yticket; for(i=0;cui.numcui.seatc num;infile1.close();infile2.close();读取数据couta;coutendl;switch(a)case 1:dingpiao();break;case 2:tuipiao();break;case 3:chaxun();break;case 4:chaxunquanbu();break;case 5:chaxun1();break;case 6:;break;default:cout输入错误)请重新
16、输入正确的代码:”;list();输入代码(8).查询客户信息函数:void chaxun()char name10;int temp,i,a;coutname;for(i=0;i300;i+)if(strcmp(,name)=0)temp=i;a=0; cout* 乘客信息*endl”姓名:t航班号:cutemp.numt 座位号:cutemp.seatendl;if (a!=0) cout没有你的信息,请查证后再 操作! endl;couttemp;if(temp=1)caidan1();三、调试分析1.实际完成的情况说明(完成的功能,支持的数据类型等
17、)。该航空订票管理系统主要完成的支持int(航班号,座位号等),char (姓名,终点,到 达日期等,主要实现的功能如下:1 .航班信息与客户信息的初始化。2 .客户信息的录入。3 .航班信息的修改(包括余票和已定票的改动)4 .订票功能。5 .退票功能。6 .查询航线功能。7 .查询全部信息功能(包括用户和航班的信息)2.程序的性能分析。1 .本程充分利用了各种系统函数,使程序十分简 洁。2 .程序相比之下较大,运行起来需要一定的时 间。3 .根据不同的功能建立不同的类,对具体功能又 分别用相应的函数来据体实现使程序变得有序 易懂。4 .上机过程中出现的问题及其解决方案。上机过程遇到的问题有
18、:1 .不了解文件的使用,包括读取文件到程序,将 数据写入文件等。2 .对整体程序的模版不够理解,刚开始不能够完 全地构思出程序的全部。3 .出现括号和符号忘记匹配,或者马虎造成单词 拼错以及函数体写错。4 .结构体的格式开始不够熟练。5 .循环体的嵌套使用不够熟悉。6 .使用string类型不是那么熟练。解决方案:1 .查阅相关书籍,以及上网查找资料,询问基础 较好的同学,从而对文件的操作有了进一步的提 升。2 .上网查找类似的程序,观看其大致结构,从而 提炼出精华,找出大致规律,运用到自己的程序 里,使程序不至于那么僵硬。3 .每写完一段程序就检查该段程序有没有错误, 分段缩小范围修改,采
19、用分步调试方法,逐步找 出问题所在。4 .上网以及查阅结构体的详细说明,学会熟练使 用结构体。5 .可以先画流程图列出所有循环体的图示, 根据 图示来编写程序中循环体的嵌套,这样可以大大 减少循环体的出错。6 .开始使用char类型来定义字符串,后来改成 方便的string 类型,之前忘记头文件#include,通过学习进一步理解string类型。4.程序中可以改进的地方说明。1 .退票管理中可增加功能,区分退票在飞机起飞 前和飞机起飞后,根据不同的选择来退还不同金 额的退款。2 .订票函数里可适当提升订票的最大人数,以免 发生系统崩溃的现象。3 .查询函数里可以增加查询合适航班的方式,以 便
20、于更好程度地适应用户多方面的不同订票需 求。5.程序中可以扩充的功能及设计实现构想251 .可以增加用户登录功能,让用户可以设置自己 的帐号密码,以便于用户更方便的使用本飞机订 票系统办理航空业务。2 .可以将dos系统界面显示做成 mfc界面显示, 使显示更加清晰,更便于用户理解和使用本系 统。3 .可以在航空飞机订票的基础上发展其他订票 功能,比如火车订票,汽车订票,更全面地提供 订票管理服务。四、用户手册1.运行程序,显示主菜单如图 3.1所示:次使用本系统请教人初始信息睛输入业衿代伊单2.选择5.查询航班信息,然后选择返回主菜单如图3.2图3.3所示:图3.3查询航班信息3.选择1订票
21、,进行订票,输入姓名,要订的航 班号,显示已定过情况如图3.4所示,若未定过, 则订票,此时客户信息将新增进文件customer中,订票完成后选择返回主菜单,如图3.5图3.6 图3.7所示:29图3.5订31E:Microsoft Visual StudiQMyFixject八系小DubugVW流总万仁-K-K-* *-之二;二二二二二 ; 二 二 二息.一一口45业全系退当退n n n2 4 6&信票 务工 业客飞 询询 记育香一 1 3 5如具是第一次使用本系统,请载入初始信息请输入业务代资二,请输入你的姓名和想订的航班号;姓名.赵元起已经走过航?虬要逅回主菜单吗? .返回退出)图3.4
22、订票失败E:Mic rosoft Visual StudioMy F roj ec 0飞机杀缢 D ebu g飞机系统.exe如果是第一找使用本系统,请封入初始信息青辅入业务代科;1总*3 5信票 业客飞 票询询 订查直业全系票询出退香信青输入你的姓名和想订的航班号,庄名工赵梅沉班号:1日1比金班还有余票,要订票吗? a是2否”M户信息、:赵梅 /班号:工皿 座位岩:之 上返回王菜单2.董出:票成功3图3.7文件数据存储情况3.退票,输入你的姓名,返回主菜单,此时文件 改变,如图3.8图3.9所示:T:Micr050ft Visual StudioMyrProjects_|$1?lDebug_
23、|Sinjt.exeR票义务家查询客户值总5 .查前飞机祟2 4b票说出退告退* 二二二二二二 * = = *-如果是第一次使用本系统,请载入初始信息请输入业务代码;Z地人您的姓名和航班号; 备起梅元班号.101定退订吗? 1,S 2 .否):1同主章屋? 1.是2.否红工一h-k捕航空匚票系统2E亏33L江票业务2.退票业务3.查询客户信息4.查密全部信息5.查询飞机票G.退出系端 如果是第一欣使用本系统,请载人初步前音息二图3.8退票成功aiTomer -o 1 21 1 T-19 3 o o O111享赵土文件B 痈发 拈式。亘看M 制助图 3.9文件存储情况4.查询,输入4,查询如图3
24、.10,图3.11所示:,亚票业务3 .叠为亶户信息5 ,查询叽票如果是第一次使用本系统,畲统业全系票询出退查退请载人私始信息目心=nNrMNrNrMeMrmeK4HC-E:Micr050ft Visual StudioVI/Project5XtoDebugWj exe图 3.1131请轴人叱务代码:立乘客信息;名名名 T二-二一.%!一向慝班近班近班近回李堇号号号 TI TI号号号 他位位 座座座2 2 2 1 1期2期3期? 苜放日也帛 :班.,班.,婆gLS1L1O3 5 .机1.机2.机否飞0飞B飞32.15.W乏 0 0 0-除除除 1剩2而3前9 00白y白1一 日 1 目;目二目
25、I与州青郑铜号:1狗号:2编号:3起飞日期加武烈 已订票数:1 起飞日期tue&day已订票数:M 起飞日期丘皿日己订票数;0图3.10查询全部信息T:Microsoft VisuaI StudioMyProject八飞卿Debug飞f保统.exe_ n如果是第一次使用本系统,起 KH 驻munday 起飞日期七110MH个 起飞日期f Fiday北京 青岛 关洲已订票豹:1已订票数;8 己订票数;京班(口息:乘告信息:,:自J(一中 退杳退 *- * * 2 4 6111 - 1 =号号石:学也 ,昌E* 上亡工洋/Jg 101 飞制号:1 目粉储丘航班日期2国弓.团.(H 剩余票数:99:
26、嘱:162飞机号;2目的地;叫近航班日期之皿-日2日剩余票数:100 班号.致3飞机号:3目的地:近航现日期2比J 3 .15 剩余票数,100 回手某亘? 1.是2.否1_ .KHXMMKHXKXKK航工订票系统*2用15士 票叱务3考看客总信息5,查询飞机禀12 5一Qn扁扃扁请载人初始信息询全部信息36请输入业务代杷 EPi*oao any key t o coni inuoX6.退出系统,如图3.12所示二 * * * * * 二 二 M M 二 二 二加* *图3.12退出系统五、设计总结自从拿到题目到完成整个编程,从理论到实 践,在整整一个星期的日子里,可以学到很多很 多的的东西,
27、同时不仅可以巩固了以前所学过的 知识,而且学到了很多在书本上所没有学到过的 知识。通过这次课程设计使我懂得了理论与实际 相结合是很重要的,只有理论知识是远远不够 的,只有把所学的理论知识与实践相结合起来, 从理论中得出结论,才能真正为社会服务,从而 提高自己的实际动手能力和独立思考的能力。 在 设计的过程中遇到问题这毕竟独立做的,难免 余遇到过各种各住的M题同时在设计的运程中 发现了自己的不足之处,对以前所学过的知识理 解得不够深刻,掌握得不够牢固,比如说结构 体通过这次课程设计之后,一定把以前所学 过的知识重新温故。 编程看起来似乎是二件很世皋 乏味的事_ 情但是经历了这次大程序的编辑之后,
28、 发现其 实里面还是充满乐趣的,一旦真的钻研下去什么 事情都可以放下,来认真研究。在试验中还发现 了许多的不足,对于以后对 C+勺学习有很大的 帮助。六、参考文献1李兰,任凤华.C+面向对象程序设计.西安 西安电子科技大学出版社,20102李兰,任凤华.C+面向对象程序设计实 验指导及习题解析.西安:西安电子科技大 学出版社,20103郑莉,董渊.C+程序设计基础教程.北京: 清华大学出版社,20104郑莉.C+程序设计基础教程学生用书.北京:清华大学出版社,2010七、附录(要加上注释。)#include #include#include using namespace std;struct
29、 flightint fligh;int num;起飞日期(星期几)最近航班日期char place10;char data10;int dticket;char riqi15;int yticket;fl10=101,01, ,monday,1,2015.01.01,99,102,02,青岛,tuesday,0,2015.02.10,100,103,03,郑州,friday,0,2015.3.15,100;struct customerchar name10;int seat;int num;cu300=李华,01,101,赵光”,01,102,王磊”,01,103;定义结构体int cnu
30、m=3;定义客户编号void list();void dingpiao();void tuipiao();void chaxun();void chaxunquanbu();void chaxun1();voidcaidan1();函数声明void caidan2();void chushi();void main() cout* 欢迎使用航空订票系统*endlendl;/caidan2();主函数void caidan1()int i;cout”*航空订票系统v2015cout*endl; cout*2.退票业务cout*4.查询全部信息 cout*6.退出系统*”endl;1, 订*end
31、l;3.查询*endl;5.*endl;票 业 务客户信息机票39cout* *endl;cout*如果是第一次使用本系统)请载入初始信息*endl;cout*”endl;”*ifstream infile1(airline.dat);ifstream infile2(customer.dat);for(i=0;ifli.flighfli.numfli.placefli .datafli.dticketfli.riqifli.yticket; for(i=0;cui.numcui.seatc num;infile1.close();infile2.close();读取数据co
32、ut请输入业务代码: list();菜单1void caidan2()(int t;coutt;if(t=1)chushi();elsecaidan1();/菜单2void chushi()(int i;ofstream outfile(airline.dat);ofstream file(customer.dat);for (i=0;i3;i+) outfilefli.fligh fli.numfli.place fli.datafli.dticket fli.riqifli.yticketendl;cui.numcui.seat cnumendl;4outfile.
33、close();file.close();cout初始化已完毕! endla;coutendl;switch(a)case 1:dingpiao();break;case 2:tuipiao();break;case 3:chaxun();break;case 4:chaxunquanbu();break;case 5:chaxun1();break;case 6:;break;default:cout输入错误)请重新输入正确的代码:”;list();输入代码)void chaxun1()char place10;int temp,i,a;coutplace;for(i=0;i100;i+)i
34、f(strcmp(fli.place,place)=0)temp=i;a=0;cout航班信息endl航班号:fltemp.flighfltemp.num飞 机 号起飞 日期最近航班日期余 票 量fltemp.datafltemp.riqi fltemp.yticketendl;if(a!=0)cout查询失败! endl;couttemp;if(temp=1) caidan1();void dingpiao()订票char name10;int num,i,t,j,k,temp;int x;cout请输入你的姓名和想订的航班号:endlendl;coutname;coutendl;coutn
35、um;for(i=0;i300;i+)if(strcmp(name,)=0)coutt;switch(t)case 1:caidan1();break;default :break;44for(i=0;i300;i+)if (name!=)for(j=0;j10;j+)if(flj.fligh=num)temp=j;if(fltemp.yticket=100)coutx;switch(x)case 1:for (k=0;k3;k+)if (flk.fligh=num)flk.dticket=flk.dticket+1;flk.yticket=flk.yticke
36、t-1;cnum=cnum+1;strcpy(,name);cucnum.num=num;cucnum.seat=flk.dticket;ofstream outfile1(airline.dat); for(j=0;j3;j+) outfile1flj.flighflj.numflj.placeflj.dataflj.dticketflj.riqi flj.yticketendl;ofstreamoutfile2(customer.dat,ios:app);cucnum.num cucnum.seat cnumendl;打开文件并存
37、储数据cout订票成功! endlendl 客 户 信 息t 航 班 号 cucnum.numt 座位号 cucnum.seatendl;outfile1.close();outfile2.close();couttemp;if(temp=1)caidan1();else;break;default :caidan1();break;else cout止匕航 班票已经售完,请订其他航班次的票; 订票void tuipiao() 退票char name10;int i,temp,t,num,a,j;struct tmp;cout”请输入您的姓名和航班号:endl;coutname;coutnum;coutendl;for(i=0;i300;i+)if (strcmp(,name)=0)(a=0;couttemp;if(temp=1)ofstream outfile
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年跨境电商人才培养实施方案:策略与路径解析
- 肿瘤精准医疗在皮肤癌诊疗中的应用效果分析报告-2025年临床实践
- 2025年环保产业园区产业集聚与绿色技术协同创新与应用路径研究报告
- 植物组织培养技术在植物生物技术产业产业融合中的应用报告
- 2025年在线教育平台教学质量提升策略与教学策略创新报告
- 2025年功能性食品市场跨境电商需求与产品创新模式研究报告
- 聚焦2025:工业互联网平台区块链智能合约安全防护与合规性审查报告
- 大寒节气的教学艺术
- 2024-2025学年湖南省湘东教学联盟高二(下)期末数学试卷(含解析)
- 2025年河北高考地理真题 及答案
- 和倍问题-六年级小升初数学思维拓展高频考点培优卷
- 教师暑期安全协议书
- 项目经理试用期的工作总结
- 城管摊贩管理案例分析
- 电池制造考试题及答案
- 靶向治疗不良反应及护理
- 职业技术学院《畜牧场设备使用与维护》课程标准
- 2025中国汽车行业趋势报告-2025-04-市场解读
- 医院殡葬领域腐败乱象专项整治工作方案
- 良品铺子合同协议
- 数字化转型背景下企业战略调整案例分享
评论
0/150
提交评论