面向对象C++航空售票系统_第1页
面向对象C++航空售票系统_第2页
面向对象C++航空售票系统_第3页
面向对象C++航空售票系统_第4页
面向对象C++航空售票系统_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大 连 科 技 学 院面向对象程序设计课程设计题 目 航空售票管理系统 学生姓名 李易霖 专业班级 计算机10-1 指导教师 刘瑞杰 职 称讲师 所在单位 信息科学系软件工程教研室 教学部主任 王立娟 完成日期 2012年7月6日课程设计报告单学号1001020112姓名李易霖专业班级计算机10-1考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思

2、路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2012年7月6日面向对象程序设计课程设计任务书一、课程设计任务及要求:任务:针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。要求: (1) 根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。可以分组进行,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。(2)提交课程设计报告。(3)指标: 要求完成课程设计

3、报告3000字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。二、工作量2周(10个工作日)时间三、计划安排第1个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第2个工作日第4个工作日:设计程序结构、模块图。第5个工作日第9个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。指导教师签字:2012年6月25日目录题目:11.需求分析12.概要设计13.详细设计24.编码25.调试分析46.测试结果及运行效果47.系统开发所用到的技术118.课程设计

4、总结11参考文献12附录 全部代码13题目:航空售票管理系统1.需求分析航空售票管理系统可以根据乘客和管理人员的要求,进行方便快速的查询、购票、退票和管理等工作。本系统可以在功能上实现更新航班信息 浏览航班信息查询,以及航班信息订票和退票这四个主要的功能。2.概要设计程序的结构图如下读取文件保存文件删除全部删除信息修改信息插入信息重新创建信息库订票 和 退票查询航班信息浏览航班信息更新航班信息主函数图1流程图如上图,程序中各功能模块所需的数据都直接取自文件,这样保证了各模块的独立性和数据的安全性。并且只有相应的模块进行写的操作,并且数据的写入不必依赖其他模块,这样使用户可以仅使用其中某一项功能

5、,而不必进行多余的操作。3.详细设计首先根据问题描述抽象出一个航班类,封装了航班的数据信息和方法。数据里主要有航班的航班号、起飞时间、站点等信息,方法主要是对该类中数据的值的输入、输出对本班次机票的管理,对时间、站名等的核对,另外为了方便对文件的输出和读取,还以友元的形式重载了提取和插入运算符。该系统总共包含四大功能模块:1更新航班信息功能模块该模块为对航班信息的操作,仅向管理员开放使用,普通用户不能使用该功能对航班信息进行操作,故进入该功能需进行身份验证。可不定时地增加航班数据。该模块又被分为五个子功能模块信息库的重建、信息的插入、修改、删除和清空数据。2浏览航班信息浏览航班信息,可显示出所

6、有航班,如果当前系统时间超过了某航班的起飞时间,则显示“此次航班已发出”的提示信息,完成将文件中的航班信息按照要求格式全部输出。3查询航班信息可以实现按航班号和按站点的查询并将查询到的信息输出。4订票和退票系统A:查询航班编号或站点。当剩余座位数大于0,并且当前系统时间小于起飞时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的班次,当本班航班未发出时才能退票,退票后自动更新剩余座位数。该模块根据订票和退票操作的相似性,将这两种操作放在一起。另外,由于各模块函数是直接对文件进行操作,所以各功能模块是相互独立的。4.编码int main()Traffic_system civil_a

7、viation;/若文件不存在,则新建文件ofstream newfile( "flight information.txt", ios:app );if (!newfile)cerr << "文件"flight information.txt"无法打开!n"exit(2);newfile.close();int tab;while(1)cout << "n>>>>>>>>>>>>>>>>>>&

8、gt;>>>>>>>欢迎进入航空售票管理系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << "* 主菜单: *" << "* 1更新航班信息(需管理员身份验证) 2浏览航班信息 *" << "* 3查询航班信息 4订票 和 退票 *" <<

9、; "* 5清 屏 0退 出 系 统 *" << "*" << "你需要做什么?(选择04)" << endl;cin >> tab;while(!(tab = 1 | tab = 2 | tab = 3 | tab = 4 | tab = 5 | tab = 0)cout << "请输入正确选择(04):"cin >> tab;switch(tab)case 1:civil_aviation.Manage();break; /航线管理case

10、 2:civil_aviation.Scan();break; /订票办理case 3:civil_aviation.Search();break; /退票办理case 4:civil_aviation.BookRefund();break;case 5: system("cls"); break;case 0:return 0; /退出系统5.调试分析程序编写完成后,主要出现的是各种语法错误,如字母打错了,字母少打了,字母大小写错了,符号错了或少打了等等一系列错误。有时候一个小小的错误会让程序运行不了,在反复的调试检查的过程中,我把这些细小的错误全部都找出来,最后程序终于

11、能执行了。还有就是存储问题了。在开始的时候我一直按照书上的直接用输出流对象来存储到文件里面,后来打开文件,里面确实有数据,但是在调出数据,也就是在查询客户信息的时候,尽管我输入的是已经存在的客户姓名,但是系统却找不到客户信息。我存储的时候数据间没有间隔,在读取的时候就不能分别数据了,应该在存储的时候在每个数据间加入一个空格符号,来分开每一个数据。系统能正常识别数据了。6.测试结果及运行效果1、首先进入系统提示是否是第一次进入,如果是第一次就进行初始化,讲预先的几个乘客信息存档。否则直接进入主菜单:图2登录界面第一次进入,初始化!并且进入主菜单:提示输入业务代码,如果输入的不是以上业务代码则提示

12、输入错误:图3 输入代码图4 输入错误2、进行第一个功能选项:订票业务:如果已经存在此客户的信息则会出现下面情况:图5 客户重复则提示已经定过航班,问是否进入主菜单。如果输入的客户在档案里面没有则进行正常订票:图6 订票成功3、第二项功能:退票业务:输入客户姓名和航班,将其信息删除。并提示是否返回主菜单。图7 成功退票为了验证是否删除了客户信息,可以进行查询客户信息业务和查询全部信息业务:图8 查询信息确认显示没有刚刚已经退订客户的信息。显示出没有刚刚已退订客户的信息,并且航班的信息随之调整,订票数和余票数自动修改为正确值。图9 查询信息确认4、下面为第三个功能选项:查询客户信息,输入客户姓名

13、,就会自动输出客户的相关信息。图10 输入姓名图11 所要查找的信息如果没有客户信息则输出以下内容,并且提示是否进入到主菜单。图12 没有查找的信息5、查询全部信息:包括所有客户信息和所有航班的信息图13 全部信息 6、退出系统:退出:7.系统开发所用到的技术这个航空售票管理系统中,应用的是C+程序设计语言。C+和C的不同在于C+的功能更强大更完善,支持中文输入,是兼顾面向对象的特点的程序设计语言。为了方便编写程序,我采用了比较简单的方法,从main主函数中指向5个函数,并且全部定义为void型,可以指向任意类型的数据,提高兼容性。用switch选择语句来指向调用函数,再对5个调用函数进行定义

14、。这样函数之间彼此循环构成了一个完整的函数。8.课程设计总结经过这次的课程设计,我认识到把课堂上老师讲的知识运用到实际操作中的重要性。我这次课程设计的题目是航空订票系统,在开始阶段,根本无从下手,后来通过查阅一些相关资料和老师的耐心讲解,最终成功完成整个程序的设计。通过这次课设我对C+语言中的类的定义、运算符重载等知识有了进一步的理解,对流程图的画法更加熟练,对程序的开发思路有了一定的理解,我想这在以后的学习和工作中都会有帮助的,更使我意识到了学习C+语言的重要性。另外,对程序的不断调试,是我的查错能力有了很大的提高。本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课

15、堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识。C+设计实践是对之前学过的知识的加深和巩固,之前学得较浅,实践的机会不多,这次实践让我对C+程序有了更加深入的了解,心理也由原来的不喜欢到喜欢,感觉很有意思也很有用,可也设计一些有用的或者是自己喜欢的程序。最令我收益的是写程序的过程和调试修改的过程,因为之前我们就学了几章,没有把知识学习全面,因此编写起来是有难度的,在预先想好程序结构后,就开是卡看书,一个函数一个函数来编写,不懂的地方就上网搜或是请教一下同学,当终于把程序写出来的时候,内心里又有一种说不出来的激动,我感觉这很符合大学的教育观念,是对个人自主学习能力的一个锻

16、炼。在接下来就是调试,虽然出了很多的错误。但在我不断找错下现在程序终于能较好的运行出来了,当然,还存在一些瑕疵,但通过这近两周的实践学习,我收获的不仅仅是这一个程序,我的自学能力,以及寻找问题解决问题的能力也得到了很好的锻炼,使我的专业水平提高了不少。从这次课程设计中我付出了很多也收获了很多。参考文献1C+程序设计谭浩强,清华大学出版社2Visual C+面向对象程序设计程刘瑞新主编,曹建春,沈淑娟,张连堂等编著,机械工业出版社3 C+程序设计吴乃陵,况迎辉北京:高等教育出版社附录 全部代码#include <iostream>#include<string>#incl

17、ude <fstream>using namespace std;struct flightint fligh;int num;char place10;int dticket;int yticket;fl10=101,01,"北京",1,99,102,02,"上海",1,99,103,03,"广州",1,99;struct customerchar name10; int seat; int num;cu300="张三",01,101,"李四",01,102,"王麻子&q

18、uot;,01,103; /定义结构体int cnum=3; /定义客户编号void list();void dingpiao();void tuipiao();void chaxun(); void chaxun();void chaxunquanbu();void caidan1(); /函数声明void caidan2();void chushi();void main()cout<<"欢迎使用航空订票系统 制作者 李易霖版权所有,盗版必究"<<endl<<endl; caidan2(); /主函数void caidan1()int

19、 i; cout<<"* 航空订票系统v2012 *"<<endl; cout<<"* *"<<endl; cout<<"* 1.订票业务 2.退票业务 *"<<endl; cout<<"* 3.查询客户信息 4.查询全部信息 *"<<endl; cout<<"* 5.退出系统 *"<<endl; cout<<"* *"<<endl;

20、 cout<<"* 如果是第一次使用本系统,请载入初始信息谢谢 *"<<endl; cout<<"*"<<endl;ifstream infile1("airline.dat");ifstream infile2("customer.dat");for(i=0;i<3;i+) infile1>>fli.fligh>>fli.num>>fli.place>>fli.dticket>>fli.yticket

21、;for(i=0;i<300;i+) infile2>>>>cui.num>>cui.seat>>cnum; infile1.close();infile2.close(); /读取数据cout<<"请输入业务代码:"list(); /菜单1void caidan2()int t; cout<<"第一次启动本软件请输入1,否则请输入2:"cin>>t; if(t=1)chushi();else caidan1(); /菜单2void chushi()

22、int i; ofstream outfile("airline.dat"); ofstream file("customer.dat"); for (i=0;i<3;i+) outfile<<fli.fligh <<" " <<fli.num<<" " <<fli.place<<" " <<fli.dticket<<" " <<fli.yticket<&l

23、t;endl;file<<<<" "<<cui.num<<" "<<cui.seat<<" "<<cnum<<endl; outfile.close();file.close();cout<<"初始化已完毕!"<<endl<<endl;caidan1(); /存储数据void list()int a;cin>>a;cout<<endl;switc

24、h(a)case 1:dingpiao();break; case 2:tuipiao();break; case 3:chaxun();break; case 4:chaxunquanbu();break; case 5:;break; default:cout<<"输入错误,请重新输入正确的代码:"list(); /输入代码void dingpiao()/ 订票char name10;int num,i,t,j,k,temp;int x;cout<<"请输入你的姓名和想订的航班号:"<<endl<<en

25、dl;cout<<"姓名:"cin>>name;cout<<endl;cout<<"航班号:"cin>>num;for(i=0;i<300;i+)if(strcmp(name,)=0)cout<<"您已经定过航班,要返回主菜单吗?(1.返回/2.退出)" cin>>t;switch(t) case 1:caidan1();break; default :break; for(i=0;i<300;i+)if (name!=cu

26、)for(j=0;j<10;j+)if(flj.fligh=num)temp=j; if(fltemp.yticket<=100) cout<<"此航班还有余票,要订票吗?(1.是/2.否)" cin>>x; switch(x) case 1: for (k=0;k<3;k+) if (flk.fligh=num) flk.dticket=flk.dticket+1;flk.yticket=flk.yticket-1;cnum=cnum+1; strcpy(,name);cucnum.num=num

27、; cucnum.seat=flk.dticket; ofstream outfile1("airline.dat"); for(j=0;j<3;j+) outfile1<<flj.fligh<<" "<<flj.num<<" "<<flj.place<<" "<<flj.dticket<<" "<<flj.yticket<<endl; ofstream outfile2

28、("customer.dat",ios:app); outfile2<<<<" "<<cucnum.num<<" "<<cucnum.seat<<" "<<cnum<<endl; /打开文件并存储数据cout<<"订票成功!"<<endl<<endl<<"客户信息:"<<<

29、<'t'<<"航班号:"<<cucnum.num<<'t'<<"座位号:"<<cucnum.seat<<endl;outfile1.close();outfile2.close();cout<<" 1.返回主菜单 2.退出 :"cin>>temp;if(temp=1) caidan1();else; ;break; default :caidan1();break;else cout<<&q

30、uot;此航班票已经售完,请订其他航班次的票" / /订票void tuipiao()/ 退票char name10;int i,temp,t,num,a,j;struct tmp;cout<<"请输入您的姓名和航班号:"<<endl;cout<<"姓名:"cin>>name;cout<<"航班号:"cin>>num;cout<<endl;for(i=0;i<300;i+)if (strcmp(,name)=0)a=0;

31、cout<<"确定退订吗?(1.是 2.否):"cin>>temp; if(temp=1) ofstream outfile1("airline.dat"); ofstream outfile2("customer.dat");for(j=0;j<=i;j+) outfile2<<<<" "<<cuj.num<<" "<<cuj.seat<<" "<&l

32、t;j<<endl; for(t=0;t<3;t+)if(flt.fligh=num) flt.dticket=flt.dticket-1;flt.yticket=flt.yticket+1; for(t=0;t<3;t+) outfile1<<flt.fligh<<" "<<flt.num<<" "<<flt.place<<" "<<flt.dticket<<" "<<flt.yti

33、cket<<endl; else a!=0; if (a!=0) cout<<"没有你的信息,请查证后再操作!"cout<<"返回主菜单?1.是2.否:"cin>>temp;if(temp=1)caidan1();/ 退票void chaxun()char name10;int temp,i,a;cout<<"请输入你的姓名:"cin>>name;for(i=0;i<300;i+)if (strcmp(,name)=0)temp=i;a=0;cout<<"*乘客信息*"<<endl<<"姓名:"<<<<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论