收藏 分销(赏)

C专业课程设计方案报告飞机订票标准管理系统.doc

上传人:a199****6536 文档编号:2864516 上传时间:2024-06-07 格式:DOC 页数:40 大小:312.04KB
下载 相关 举报
C专业课程设计方案报告飞机订票标准管理系统.doc_第1页
第1页 / 共40页
C专业课程设计方案报告飞机订票标准管理系统.doc_第2页
第2页 / 共40页
C专业课程设计方案报告飞机订票标准管理系统.doc_第3页
第3页 / 共40页
C专业课程设计方案报告飞机订票标准管理系统.doc_第4页
第4页 / 共40页
C专业课程设计方案报告飞机订票标准管理系统.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、青岛理工大学C+面向对象课程设计汇报院(系): 计算机工程学院 专业: 软件工程 学生姓名: 班级 软件131班 学号: 题目: 飞机订票管理系统设计 起迄日期: .6.29.7.10 设计地点: 计算机学院机房 指 导 教 师: 翟正利 丁凡 完成日期: 年7月 10 日C+面向对象课程设计任务书题目24“飞机订票管理系统设计”1、问题描述:航空客运订票业务包含:查询航班、客票预订和办理退票等。试设计一个航空客运订票系统,已使上述业务能够借助计算机完成。2功效要求:(1)每条航线所包含信息有:终点站名、航班号、飞机号、星期几飞行飞行周日(星期几)、乘员定额、余票量、已订票用户名单(包含姓名、

2、订票量、舱位等级)和等候补替补用户名单(包含姓名、所需票量);(2)作为示意系统,全部数据能够只放在内存中;(3)系统能实现操作和功效以下:录入:能够录入航班情况(数据能够存放在一个数据文件中,数据结构、具体数据自定);查询航线:依据旅客提出终点站名输入下列信息:航班号、飞机号、星期几起飞,最近航班日期和余票量。承接订票业务:依据用户提出要求(航班号、订票数额)查询该航班票额情况,若还有余票,则为用户办理订票手续,输出座位号;若已满员或余票数少于订票额,则需重新寻味用户要求,若需要,可登记排队候补;承接退票业务:依据用户提供情况(日期、航班),为用户办理退票手续,然后查询该航班是否有些人排队等

3、候补,首先问询排在第一用户,若全部退票额能满足她要求,则为她办理订票手续不然依次问询其它排队候补用户。修改航班信息:当航班信息改变能够修改航班数据文件。(选作)为用户订票要求不能满足时,系统可向用户提供抵达同一目标地其它航线情况。3、问题处理方案:依据系统功效要求,能够将问题处理分为以下步骤: (1)应用系统分析,建立该系统功效模块框图和界面组织和设计;(2)分析系统中各个实体及它们之间关系; (3)依据问题描述,设计系统类层次; (4)完成类层次中各个类描述; (5)完成类中各个组员函数定义; (6)完成系统应用模块; (7)功效调试;(8)完成系统总结汇报。目 录一、需求分析2二、内容设计

4、2 2.1、依据所选题目给出模块图22.2、画出关键程序步骤图:32.2、编写程序关键代码:8三、调试分析13四、用户手册14五、设计总结20六、参考文件21七、 附录21一、需求分析1.选做此课题或项目标1经过试验实现对学生信息系统管理操作;2深入掌握和利用C+进行程设计能力;3深入了解和利用结构化程序设计思想和方法;4初步掌握开发一个小型实用系统基础方法;5学会利用步骤图或N-S图表示算法;6掌握书写程设计开发文档能力2. 程序所实现功效1.输入航班信息并保留到磁盘;2.浏览航班信息;3.修改航班信息并保留到磁盘4.查找航班 5.订票 6.退票 二、 内容设计1. 依据所选题目给出模块图

5、图1.1所表示飞机订票管理系统修改航班信息查询全部信息退票录入航班信息查询航班信息订票 图1.1 模块图 2.画出主程序及其关键模块步骤图(1).图2.1所表示为查询函数步骤图:开始 输入航班号否 查询成功?是 输出航班信息返回主菜单?否是 主菜单 结束 图2.1 查询函数步骤图(2) .图2.2所表示为订票函数步骤图 开始输入要订票姓名是姓名和初始姓名相同?否 输入航班号还有余票,订票?否是存放用户信息到文件修改航班信息(票额) 输出订票信息返回主菜单?否是 主菜单 结束 图2.2 订票函数步骤图(3) .图2.3所表示为退票函数步骤图 开始 输入姓名和航班号信息和文件中信息相同?否是 是否

6、退订?否是从文件中删除该用户订票信息退票成功! 返回主菜单?是否 主菜单 结束 图2.3 退票函数步骤图(4) .图2.4所表示为查询全部信息函数 开始 输出乘客信息 输出航班信息 返回主菜单?否是 主菜单 结束 图2.4 查询全部信息函数(5.)图2.5所表示为主程序步骤图开始 录入航班信息 进入主菜单 飞机订票管理系统查询全部信息 退票管理 查询航班 订票管理是 返回主菜单?否 退出系统 结束 图2.5 查询全部信息函数3.编写程序关键代码(1) .录入航班信息:void chushi()int i; ofstream outfile(airline.dat); ofstream file

7、(customer.dat); for (i=0;i3;i+) outfilefli.fligh fli.num fli.place fli.data fli.dticket fli.riqi fli.yticketendl;filecui.name cui.num cui.seat cnumendl; outfile.close();file.close();cout初始化已完成!endlendl;caidan1(); (2) .查询航班信息:void chaxun1()char place10;int temp,i,a;coutplace;for(i=0;i100;i+)if(strcmp

8、(fli.place,place)=0)temp=i;a=0;cout航班信息endl航班号:fltemp.fligh飞机号:fltemp.num起飞日期:fltemp.data最近航班日期fltemp.riqi余票量fltemp.yticketendl;if(a!=0)cout查询失败!endl;couttemp;if(temp=1) caidan2();(3) .订票:void dingpiao()/ 订票char name10;int num,i,t,j,k,temp;int x;cout请输入你姓名和想订航班号:endlendl;coutname;coutendl;coutnum;fo

9、r(i=0;i300;i+)if(strcmp(name,cui.name)=0)coutt;switch(t) case 1:caidan1();break; default :break; for(i=0;i300;i+)if (name!=cui.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.yt

10、icket-1; cnum=cnum+1; strcpy(cucnum.name,name);cucnum.num=num; cucnum.seat=flk.dticket; ofstream outfile1(airline.dat); for(j=0;j3;j+) outfile1flj.fligh flj.num flj.place flj.data flj.dticket flj.riqi flj.yticketendl; ofstream outfile2(customer.dat,ios:app); outfile2cucnum.name cucnum.num cucnum.sea

11、t cnumendl; /打开文件并存放数据cout订票成功!endlendl用户信息:cucnum.namet航班号:cucnum.numt座位号:cucnum.seatendl;outfile1.close();outfile2.close();couttemp;if(temp=1) caidan1();else; ; break; default :caidan1();break;else cout此航班票已经售完,请订其它航班次票; (4) .退票:void tuipiao()/ 退票char name10;int i,temp,t,num,a,j;struct tmp;cout请输入

12、您姓名和航班号:endl;coutname;coutnum;coutendl;for(i=0;i300;i+)if (strcmp(cui.name,name)=0)a=0;couttemp; if(temp=1) ofstream outfile1(airline.dat); ofstream outfile2(customer.dat);for(j=0;j=i;j+) outfile2cuj.name cuj.num cuj.seat jendl; for(t=0;t3;t+)if(flt.fligh=num) flt.dticket=flt.dticket-1;flt.yticket=f

13、lt.yticket+1; for(t=0;t3;t+) outfile1flt.fligh flt.num flt.place flt.data flt.dticket flt.riqi flt.yticketendl; else a!=0; if (a!=0) cout没有你信息,请查证后再操作!;couttemp;if(temp=1)caidan1();(5) .查询全部信息:void chaxunquanbu()int i,temp;cout乘客信息:endlendl;for(i=0;i300;i+)if (cnum=i) temp=i;for(i=0;itemp;i+)cout姓名:

14、cui.namet航班号: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)caidan1(); (6) .主菜单函数:void caidan1()int i; cout* 航空订票系统v *endl; cout* *endl; cout* 1.订票业务

15、2.退票业务 *endl; cout* 3.查询用户信息 4.查询全部信息 *endl; cout* 5.查询飞机票 6.退出系统 *endl; cout* *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;icui.namecui.numcui.seatcnum;

16、 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输入错误,请重新输入正确代码:;list(); /输入代码(8) .查询用户信息函数:void chaxun()char name10;int temp,i,a;cout

17、name;for(i=0;i300;i+)if (strcmp(cui.name,name)=0)temp=i;a=0;cout*乘客信息*endl姓名:cutemp.namet航班号:cutemp.numt座位号:cutemp.seatendl;if (a!=0) cout没有你信息,请查证后再操作!endl;couttemp;if(temp=1)caidan1(); 三、调试分析1.实际完成情况说明(完成功效,支持数据类型等)。 该航空订票管理系统关键完成支持int(航班号,座位号等),char(姓名,终点,抵达日期等,关键实现功效以下:1. 航班信息和用户信息初始化。2. 用户信息录入。

18、3. 航班信息修改(包含余票和已定票改动)。4. 订票功效。5. 退票功效。6. 查询航线功效。7. 查询全部信息功效(包含用户和航班信息)。2. 程序性能分析。1. 本程充足利用了多种系统函数,使程序十分简练。2. 程序相比之下较大,运行起来需要一定时间。3. 依据不一样功效建立不一样类,对具体功效又分别用对应函数来据体实现使程序变得有序易懂。3. 上机过程中出现问题及其处理方案。 上机过程碰到问题有:1. 不了解文件使用,包含读取文件到程序,将数据写入文件等。2. 对整体程序模版不够了解,刚开始不能够完全地构思出程序全部。3. 出现括号和符号忘记匹配,或马虎造成单词拼错和函数体写错。4.

19、结构体格式开始不够熟练。5. 循环体嵌套使用不够熟悉。6. 使用string类型不是那么熟练。 处理方案:1. 查阅相关书籍,和上网查找资料,问询基础很好同学,从而对文件操作有了深入提升。2. 上网查找类似程序,观看其大致结构,从而提炼出精华,找出大致规律,利用到自己程序里,使程序不至于那么僵硬。3. 每写完一段程序就检验该段程序有没有错误,分段缩小范围修改,采取分步调试方法,逐步找出问题所在。4. 上网和查阅结构体具体说明,学会熟练使用结构体。5. 能够先画步骤图列出全部循环体图示,依据图示来编写程序中循环体嵌套,这么能够大大降低循环体犯错。6. 开始使用char类型来定义字符串,以后改成方

20、便string类型,之前忘记头文件#include,经过学习深入了解string类型。4. 程序中能够改善地方说明。1. 退票管理中可增加功效,区分退票在飞机起飞前和飞机起飞后,依据不一样选择来退还不一样金额退款。2. 订票函数里可合适提升订票最大人数,以免发生系统瓦解现象。3. 查询函数里能够增加查询适宜航班方法,方便于愈加好程度地适应用户多方面不一样订票需求。5. 程序中能够扩充功效及设计实现构想。1. 能够增加用户登录功效,让用户能够设置自己帐号密码,方便于用户更方便使用本飞机订票系统办理航空业务。2. 能够将dos系统界面显示做成mfc界面显示,使显示愈加清楚,更便于用户了解和使用本系

21、统。3. 能够在航空飞机订票基础上发展其它订票功效,比如火车订票,汽车订票,更全方面地提供订票管理服务。 四、 用户手册1.运行程序,显示主菜单图3.1所表示: 图3.1 主菜单2. 选择5.查询航班信息,然后选择返回主菜单图3.2图3.3所表示: 图3.2 查询航班信息 图3.3 查询航班信息3. 选择1订票,进行订票,输入姓名,要订航班号,显示已定过情况图3.4所表示,若未定过,则订票,此时用户信息将新促进文件customer中,订票完成后选择返回主菜单,图3.5图3.6图3.7所表示: 图3.4 订票失败 图3.5 订票成功 图3.6 返回主菜单 图3.7 文件数据存放情况3. 退票,输

22、入你姓名,返回主菜单,此时文件改变,图3.8图3.9所表示: 图3.8 退票成功 图3.9 文件存放情况4. 查询,输入4,查询图3.10,图3.11所表示: 图3.10查询全部信息 图3.11 查询全部信息6. 退出系统,图3.12所表示 图3.12 退出系统五、 设计总结自从拿到题目到完成整个编程,从理论到实践,在整整一个星期日子里,能够学到很多很多东西,同时不仅能够巩固了以前所学过知识,而且学到了很多在书本上所没有学到过知识。经过这次课程设计使我知道了理论和实际相结合是很关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提升自己实

23、际动手能力和独立思索能力。在设计过程中碰到问题,这毕竟独立做,难免会碰到过多种多样问题,同时在设计过程中发觉了自己不足之处,对以前所学过知识了解得不够深刻,掌握得不够牢靠,比如说结构体经过这次课程设计以后,一定把以前所学过知识重新温故。编程看起来似乎是一件很枯燥、乏味事情,不过经历了这次大程序编辑以后,发觉其实里面还是充满乐趣,一旦真钻研下去什么事情全部能够放下,来认真研究。在试验中还发觉了很多不足,对于以后对C+学习有很大帮助。六、参考文件1 李兰, 任凤华. C+面向对象程序设计. 西安: 西安电子科技大学出版社, 2 李兰, 任凤华. C+面向对象程序设计试验指导及习题解析. 西安: 西

24、安电子科技大学出版社, 3 郑莉, 董渊. C+程序设计基础教程. 北京: 清华大学出版社, 4 郑莉. C+程序设计基础教程学生用书. 北京: 清华大学出版社, 七、附录(要加上注释。)#include #include#include using namespace std;struct flightint fligh;int num;char place10;char data10; /起飞日期(星期几)int dticket;char riqi15; /最近航班日期int yticket;fl10=101,01,北京,monday,1,.01.01,99,102,02,青岛,tuesd

25、ay,0,.02.10,100,103,03,郑州,friday,0,.3.15,100;struct customerchar name10; int seat; int num;cu300=李华,01,101,赵光,01,102,王磊,01,103; /定义结构体int cnum=3; /定义用户编号void list();void dingpiao();void tuipiao(); void chaxun();void chaxunquanbu();void chaxun1();void caidan1(); /函数申明void caidan2();void chushi();void

26、 main()cout*欢迎使用航空订票系统*endlendl; caidan2(); /主函数void caidan1()int i; cout* 航空订票系统v *endl; cout* *endl; cout* 1.订票业务 2.退票业务 *endl; cout* 3.查询用户信息 4.查询全部信息 *endl; cout* 5.查询飞机票 6.退出系统 *endl; cout* *endl; cout* 假如是第一次使用本系统,请载入初始信息 *endl; cout*endl;ifstream infile1(airline.dat);ifstream infile2(customer

27、.dat);for(i=0;ifli.flighfli.numfli.placefli.datafli.dticketfli.riqifli.yticket;for(i=0;icui.namecui.numcui.seatcnum; infile1.close();infile2.close(); /读取数据cout请输入业务代码:;list(); /菜单1void caidan2()int t; coutt; if(t=1)chushi();else caidan1(); /菜单2void chushi()int i; ofstream outfile(airline.dat); ofstr

28、eam file(customer.dat); for (i=0;i3;i+) outfilefli.fligh fli.num fli.place fli.data fli.dticket fli.riqi fli.yticketendl;filecui.name cui.num cui.seat cnumendl; outfile.close();file.close();cout初始化已完成!endla;coutendl;switch(a)case 1:dingpiao();break; case 2:tuipiao();break; case 3:chaxun();break; cas

29、e 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+)if(strcmp(fli.place,place)=0)temp=i;a=0;cout航班信息endl航班号:fltemp.fligh飞机号:fltemp.num起飞日期:fltemp.data最近航班日期fltemp.riqi余票量fltemp.yti

30、cketendl;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;coutnum;for(i=0;i300;i+)if(strcmp(name,cui.name)=0)coutt;switch(t) case 1:caidan1();break; default :break; for(i=0;i300;i+)if (name!=cui.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.f

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服