




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉工程大学课程设计(论文)课程设计(论文)题 目航空售票处的服务系统程序姓 名邓万勇学 号0909030103指 导 老 师李圆媛指导教师职称讲师年级专业班级09信息与计算科学(01)班所 在 学 院理学院2011年 01 月 20日iii目录目录1摘要2前言31课题背景41.1背景41.2需求分析41.3意义51.4文献综述52设计简介及设计方案论述62.1设计简介62.2设计方案论述63详细设计83.1航空类的定义83.机票信息83.3航空票额管理函数93.4菜单的设计104设计结果及分析114.1测试数据114.2测试结果115总结12致谢14参考文献15附录 程序代码16摘要本课题主要是运用vc6.0,开发基于控制台下的航空售票处的服务系统。本文较为详细的介绍了这一程序的设计思想,功能结构以及类的设计和某些功能函数的设计。本文还给出了对这一程序的测试情况以及对测试结果的分析,。关键词:plane,查询,面向对象前言本文详细介绍了航空货物托运费用计算程序的设计与开发。全文共5章。第1章介绍了航空货物托运费用计算程序的背景,以及它所要实现的基本功能。并根据这些用户需求,进行了必要的需求分析,从而确定了该程序应实现了一些基本功能。本章中,还简要地介绍了该程序开发的意义以及在整个开发过程中,我们所查阅并借用的一些参考文献的主要内容。第2章主要介绍了航空货物托运费用计算程序中各功能模块的总体框图,主要类的设计以及各类之间的相互关系,这是全文的核心部分。第3章是航空货物托运费用计算程序的详细设计,由于文章篇幅的限制,我们仅给出了主要类的设计,关键成员函数设计,以及接口函数和菜单函数的设计,并给出了其程序代码。第4章是对所开发的航空货物托运费用计算程序的运行测试。通过我们所设计的部分测试数据,检验程序是否达到了预定的设计要求。第5章是对航空货物托运费用计算程序开发过程的总结。总结了本次课程设计的意义,以及测试中所发现的一些问题,有待进一步改进的地方。重点还谈到了我在本次课程设计中的收获与感想。全文的最后是致谢、参考文献和程序的全部源代码。xxx2011-01-20 于武汉工程大学理学院武汉工程大学课程设计(论文)1 课题背景1.1 背景我们乘坐飞机旅行前,都需要在网上或者去机场买机票,自然就会涉及到机票的订票和退票以及查询等等。应对这些必须要一个程序能执行多种功能,可以依据乘客的需要来做出相应的解答。而且在乘客订票和退票后还能自动管理票数,还能根据乘客的需要完成预定机票和等待其他乘客退票等活动。实现机票的无人化管理。1.2 (1) 能够方便地将货物信息的录入程序,并立即计算出托运根据上节所描述,用户需要设计一个关于售票处服务系统程序,使航空公司可以通过的乘客简单地输入个人部分信息,便可方便的管理机票。另外,该程序还要实现以下功能:费用;(1) 能够对航空航线进行查询;(2) 能够自主的承办订票业务(3) 能够自主的承办退票业务 1.3 意义一般信息管理系统的设计与开发,是信息与计算科学专业学生必须掌握的一项技术。了解一般信息管理系统所需要的功能模块,各功能模块的设计与实现方法,以及各功能模块之间的相互联接方法,对于今后从事软件设计与开发,有重要的指导作用。采用c+面向对象程序设计的思想,设计与开发售票处的服务系统程序,也可以使我们更好地理解面向对象软件开发的方法,并初步了解如何运用c+,开发出数据抽象程度高,体现信息隐蔽、可复用、易修改、易扩充且模块化的程序。1.4 文献综述文献1较详细地介绍了c+程序的设计与开发以及c+的一些基本知识,它对于我们了解c+知识,运用c+进行面向对象程序有非常直接的帮助。文献2介绍了c+程序设计的主要思想与方法,在解决航空货物托运费用计算程序时,我们参考该书中许多技巧以及接口程序的设计,类的继承等。对我们完成这个航空售票处服务系统程序的设计起了很大的帮助。文献一:程序设计基础第二版文献二:c+面向对象程序设计2 设计简介及设计方案论述2.1 设计简介根据需求分析,由于程序较为简单我们将只设计一个类:plane(即航班类)。其主要功能模块有:输入、输出、票额计算、查询、订票、退票。其类结构见图2-1,其功能结构见图2-2。plane类售票处的服务系统图2-1 类的结构plane类数据保存查询订票退票数据录入图2-2 系统结构示意图2.2 设计方案论述plane(航空类)包含以下属性与方法:记录乘客的航班号、飞机号、星期几飞行、最近一天航班的日期和余票额等方法。各功能模块的调用应通过菜单进行选取。由于乘客和机票的主要信息是由plane类的对象所生成,而且机票的管理自动运行,plane类的构造函数的设计以及机票数额计算的设计要尤其精细,因为这两个函数的调用十分的频繁。3 详细设计3.1 航空类的定义class planeprivate:char name40;/终点站名int number;/航班号int number;/飞机号int week;/星期几飞行int day;/日期int left;/余票额int n;/与数组flag一起确定客户订票状态public:int flag20;/订票状态数组,-1为预订票,1为已定票,0为初始化状态plane()/构造函数name0=0;number=0;number=0;week=0;day=0;left=m;n=0;/数组从0开始计数for(int i=0;i20;i+)flagi=0;void init()/初始化每种飞机票coutname;coutnumber;coutnumber;coutweek;coutday;plane();/析构函数char *getname()return name;/获得终点站名int getnumber()return number;/获得航班号int getnumber()return number;/获得飞机号int getweek()return week;/获得星期几飞行int getday()return day;/获得日期int getleft()return left;/获得余票额int getn()return n;/获得旅客数目void inleft(int n)left=left+n;/余票额增加函数void deleft(int n)left=left-n;/余票额减少函数void inn()n+;/旅客数目增加函数;3.2 机票信息的输入第一段:void init()/初始化每种飞机票coutname;coutnumber;coutnumber;coutweek;coutday;第二段:void start()for(int i=0;in;i+)pli.init();coutendl;3.3 机票计算管理函数查询函数:(1) 用于查询乘客所需票机票的信息(2) 其具体语句为: void query()int i,num=0;char name40;coutendl;coutname;for(i=0;i=n;i+)if(strcmp(name,pli.getname()=0)num+;cout航班号:pli.getnumber()endl;cout飞机号:pli.getnumber()endl;cout星期:pli.getweek()飞行endl;cout航班日期:pli.getday()endl;cout余票额:pli.getleft()endl;break;if(num=0)cout没有此航班endl;订票函数:(1) 用于乘客预定机票并就乘客的操作管理机票(2) 具体语句为:void make()int number,n,sitnumber,nu,ch,num=0;coutnumber;coutn;for(int i=0;in;i+)if(number=pli.getnumber()num+;if(n=pli.getleft()cout此航班有票endl;pli.deleft(n);pli.inn();pli.flagpli.getn()=1;for(i=0;in;i+)coutsitnumber;elsecout余票额少于订票额,请重新输入订票数额,订票数额应该少于或等于nu;if(nu=pli.getleft()cout此航班有票endl;pli.deleft(nu);pli.inn();pli.flagpli.getn()=1;for(i=0;in;i+)coutsitnumber;elsecout是否需要预约endl;cout是(1) 否(2)ch;switch(ch)case 1:pli.inn();pli.flagpli.getn()=-1;break;case 2:break;default:cout你敲错了!endl;if(num=0)cout没有此航班endl;退票函数:(1) 用于乘客退定机票并就乘客的操作管理机票(2) 具体语句为:void back()int number,day,n,nu,sitnumber,num=0;/航班号,日期,退票数目,订票数目,座位号,标志量coutday;coutnumber;for(int i=0;in;i+)if(day=pli.getday()&(number=pli.getnumber()/日期与航班是否满足num+;/日期与航班满足coutn;cout退票成功endl;pli.inleft(n);/该种飞机票增加,即已退票for(int j=0;j=pli.getn();j+)/顺序查询客户订票状态if(pli.flagj=-1)/客户是否为预定状态coutnu;if(nu=pli.getleft()/余票额是否满足要求cout此航班有票endl;pli.flagj=1;cout订票成功endl; pli.deleft(nu);for(int k=0;knu;k+)cout座位号sitnumber;cout余票额为pli.getleft()endl;elsecout没有预约订票!余票额为pli.getleft()endl;if(num=0)cout没有此票endl;3.4 菜单的设计int showmenu()int ch;coutendl;cout请选择你要执行的功能endl;cout1:查询航线endl;cout2:承办订票业务endl;cout3:承办退票业务endl;cout0:退出程序的运行ch;return ch;4 设计结果及分析4.1 测试数据航班号飞机号星期几最近一天航班日期余票额目的地217513103015北京236517503125广州251419303065武汉4.2 测试结果图4-1 程序运行后显示的菜单5 总结大一第二学期,我学习了c+程序设计基础,初步了解了如何利用c+语言编写面向过程的程序。大二第一学期,我又学习了c+面向对象程序设计,更进一步熟悉了c+语言,以及面向对象程序设计的思想与方法。在这两门课程的学习过程中,我常常对c+灵活多变的编程风格感到难以适应,对于创建一个可编程模型来解决实际问题感到无从下手,对如何运用所学过的算法与常见结构去解决编程问题感到困惑,对类的设计,程序结构的设计更感到茫然。这一年的c+编程学习,可以说是在痛苦中渡过的,每当我无法解决非常初等的程序设计问题时,每当我连十几行的程序代码都写不出来时,我觉得编程太难了。我多次在心里对学习与掌握好计算机编程产生过畏难情绪,甚至产生过放弃这门课程学习的念头。好在老师在这一年里一直在鼓励着我们。他告诉我们,每一个程序员在成长过程中,都有过类似的经历与感受,使我克服了畏难与自卑心理;他还告诉我们,掌握编程需要累积薄发,需要多动手实验,在实验中去感悟,终会有水滴石穿、云开日出、豁然开朗的那一刻;他还要求我们向士兵突击这部电视剧中主人翁许三多学习,“不抛弃,不放弃”,让我们坚持到对编程“开窍”的那一天。老师为了让我们练好编程,为我们开设了许多练习编程的实验课,让我们不断地磨砺自已的意志品质与思维灵犀,借他山之石,攻已之玉。老师的这些话,我感到有一定的道理,心里却仍存疑虑,将信将疑。但也不好拂却了老师的好意与付出,于是,我只好硬着头皮坚持着,坚持了一年。这次课程设计,是我与同学一起第一次合作完成较大的程序编写,开始时,我们心里根本没底,想都不敢想自已能写出一点东西来,并真正地解决这一实际问题。但随着工作的逐渐深入,对问题的理解越来越透彻,想写的东西越来越多,信心越来越足,程序越编越大,系统的功能越做越强。当我们洋洋洒洒地撰写完千余行代码,将一个又一个功能模块实现出来,并将它们调试通过之后,那种喜悦感、幸福感、成就感让我感到兴奋。我终于等到了所谓“开窍”的这一刻,原来它是这样的一种感觉。此时此刻,回想一年来学习编程的经历,我明白了这样一个道理:此时的喜悦感、幸福感、成就感,不正好是过去的沮丧、痛苦、自卑所带来的馈赠吗!其实,这种道理对我们这个年龄段的青年人,谁人不知又谁人不晓呢,它所应证的不就是那几句老名言吗?不经历风雨,怎么能见彩虹宝剑锋从磨砺出,梅花香自苦寒来让我们值得进一步思考的是,为什么我们一碰到困难,就忘记了这些至理名言呢?为什么我们一遇到挫折,总希望别人来安慰与鼓励,甚至是扶你前行呢?做完这次课程设计,我感到自己成熟起来了,我也明白了,大一时,老师在c+程序设计基础教学中,赠与我们的那一段话的良苦用心。古今之成大事业大学问者,必经过三种之境界。 “昨夜西风凋碧树,独上高楼,望尽天涯路。”此第一境界也; “衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也; “从里寻她千百度,蓦然回首,那人却在灯火栏珊处。”此第三境界也。 航空货物托运费计算程序已开发完成了,它实现了我们在需求分析中所提出的功能,但它仍有许多需要改进的地方。致谢一份课程设计的总结,一份对老师的感谢。虽然我们课程设计程序代码在这学期开始的时候已经有了,但是在明天即将给老师的时刻,程序代码也发生了许多变化,功能也逐渐提高;一些变化,一些收获。老师说过:“道虽远,不行不至;事虽难,不为不成。”这专业真的很累,老师们累,学生们也累,谢谢老师们和我们一起坚持着。明天结果如何是无法知道的,而今天我们都努力过。参考文献1 吴文虎,清华大学出版社.2 张俊,张彦铎.c+面向对象程序设计m.北京:中国铁路出版社,2008.附录 程序代码#include #include #includefstream.h#define m 5/每种飞机票的总数目#define n 3/飞机票的总数目class planeprivate:char name40;/终点站名int number;/航班号int number;/飞机号int week;/星期几飞行int day;/日期int left;/余票额int n;/与数组flag一起确定客户订票状态public:int flag20;/订票状态数组,-1为预订票,1为已定票,0为初始化状态plane()/构造函数name0=0;number=0;number=0;week=0;day=0;left=m;n=0;/数组从0开始计数for(int i=0;i20;i+)flagi=0;void init()/初始化每种飞机票coutname;coutnumber;coutnumber;coutweek;coutday;plane();/析构函数char *getname()return name;/获得终点站名int getnumber()return number;/获得航班号int getnumber()return number;/获得飞机号int getweek()return week;/获得星期几飞行int getday()return day;/获得日期int getleft()return left;/获得余票额int getn()return n;/获得旅客数目void inleft(int n)left=left+n;/余票额增加函数void deleft(int n)left=left-n;/余票额减少函数void inn()n+;/旅客数目增加函数;plane pln;void init();int showmenu();/菜单函数void start();/初始化函数void query();/查询函数void make();/订票函数void back();/退票函数void writetofile();int main()cout这是民航售票处的计算机系统程序endl;while(1)int choice;choice=showmenu();switch(choice)case 1:start();break;case 2:query();break;case 3:make();break;case 4:back();break;case 5:writetofile();break;case 0:return 0;default:cout你敲错了!n;return 0;int showmenu()int ch;coutendl;cout请选择你要执行的功能endl;cout1:录入数据endl;cout2:查询航线endl;cout3:承办订票业务endl;cout4:承办退票业务endl;cout5:将数据写入文件endl;cout0:退出程序的运行ch;return ch;void start()for(int i=0;in;i+)pli.init();coutendl;void query()int i,num=0;char name40;coutendl;coutname;for(i=0;i=n;i+)if(strcmp(name,pli.getname()=0)num+;cout航班号:pli.getnumber()endl;cout飞机号:pli.getnumber()endl;cout星期:pli.getweek()飞行endl;cout航班日期:pli.getday()endl;cout余票额:pli.getleft()endl;break;if(num=0)cout没有此航班endl;void make()int number,n,sitnumber,nu,ch,num=0;coutnumber;coutn;for(int i=0;in;i+)if(number=pli.getnumber()num+;if(n=pli.getleft()cout此航班有票endl;pli.deleft(n);pli.inn();pli.flagpli.getn()=1;for(i=0;in;i+)coutsitnumber;elsecout余票额少于订票额,请重新输入订票数额,订票数额应该少于或等于nu;if(nu=pli.getleft()cout此航班有票endl;pli.deleft(nu);pli.inn();pli.flagpli.getn()=1;for(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025农产品买卖合同模板
- 水闸消防安全知识培训课件
- 水粉画草丛中的鸭子课件
- 乡镇水源保护方案
- 小升初语文古诗鉴赏知识点衔接-《曲》练习(含答案)
- 桥梁检测设备选型与使用方案
- 学生宿舍节能设计与技术应用方案
- 水电验收课件第五元素
- 水电站业务知识培训课件简报
- 二零二五年度新能源设备采购及运营合作协议
- 陕西省特种设备隐患排查清单(2025年)
- 快递行业交通安全培训
- 货款转让协议书
- 燃气公司加气站操作规程及安全要求
- 装修砸墙安全协议书
- DB4407∕T 70-2021 地理标志产品 新会陈皮
- 送水工劳务合同协议
- 读博协议和合同
- 2025CACA子宫颈癌诊疗指南解读
- 2025年第34届全国中学生物理竞赛预赛试卷及答案(完整版)
- 骨科护理10分钟小讲课
评论
0/150
提交评论