二、程序的主要功能............................3
三、程序运行环境..............................3
四、系统总枢架图..............................3
五、源程序......................................4
六、.模块分析...................................9
七、运行结果 ..................................10
八、心得体会..................................15
一、需求分析
随着旅游业的逐渐成熟发展,人民生活水平的提高航空客运量大幅度提高,国内国际的旅游航班增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断完善更新售票系统,提高航空售票系统的工作效率。
二、程序的主要功能
1、航线信息:
每条航线包括航班号,飞机号,目的地,订票数,余票数,5项
现有3条航线:目的地北京,上海,广州。飞机可乘100人(初始定票数为0,余票数为100)
2、订票业务:
(1).客户信息包括姓名,航班号,座位号(初始为0),假设已有3个客户信息
(2).有新客户订票时,先输入姓名和航班号,查询情况,如果还有余票,就为
这个客户办理订票手续,分给客户一个座位号,若无余票,则输出客户已满
3、退票业务:
根据客户提出的航班号,办理退票,并修改相应的航线的订票数和余票数
4、查询业务:
输出全部航线的信息和全部客户信息,或某条航班、某个客户信息。
5、退出系统
三、程序运行环境
Visual c++6.0
四、系统总框架图
五、源程序
#include #include #include using namespace std; struct flight {int fligh; int num; char place[10]; int dticket; int yticket; }fl[10]={{101,01,"北京",1,99}, {102,02,"上海",1,99}, {103,03,"广州",1,99}}; struct customer {char name[10]; int seat; int num; }cu[300]={{"",01,101},{"周恩来",01,102},{"",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<<" 欢迎使用航空订票系统"< caidan2(); } //主函数 void caidan1() {int i; cout<<"************* 航空订票系统 *************"< ifstream infile2("customer.dat"); for(i=0;i<3;i++) {infile1>>fl[i].fligh>>fl[i].num>>fl[i].place>>fl[i].dticket>>fl[i].yticket;} for(i=0;i<300;i++) {infile2>>cu[i].name>>cu[i].num>>cu[i].seat>>cnum;} infile1.close();infile2.close(); //读取数据 cout<<"请输入业务代码:"; list(); } //菜单1 void caidan2() {int t; cout<<"第一次启动本软件请输入1,否则请输入2:";cin>>t; if(t==1)chushi();else caidan1();} //菜单2 void chushi() {int i; ofstream outfile("airline.dat"); ofstream file("customer.dat"); for (i=0;i<3;i++) { outfile< cout<<"初始化已完毕!"< } //存储数据 void list() {int a; cin>>a;cout< {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 name[10]; int num,i,t,j,k,temp; int x; cout<<"请输入你的姓名和想订的航班号:"< cout< for(i=0;i<300;i++) if(strcmp(name,cu[i].name)==0) {cout<<"您已经定过航班,要返回主菜单吗?(1.返回/2.退出)"; cin>>t;switch(t) {case 1:caidan1();break; default :break;} } for(i=0;i<300;i++) if (name!=cu[i].name) for(j=0;j<10;j++) if(fl[j].fligh==num)temp=j; if(fl[temp].yticket<=100) {cout<<"此航班还有余票,要订票吗?(1.是/2.否)"; cin>>x; switch(x) {case 1: {for (k=0;k<3;k++) if (fl[k].fligh==num) { fl[k].dticket=fl[k].dticket+1;fl[k].yticket=fl[k].yticket-1;cnum=cnum+1; strcpy(cu[cnum].name,name);cu[cnum].num=num; cu[cnum].seat=fl[k].dticket; ofstream outfile1("airline.dat"); for(j=0;j<3;j++) outfile1< ofstream outfile2("customer.dat",ios::app); outfile2< cout<<" 1.返回主菜单 2.退出 :";cin>>temp; if(temp==1) caidan1();else; }};break; default :caidan1();break;}}else cout<<"此航班票已经售完,请订其他航班次的票~"; } ///////////////////////////////////////////////////////////////////////////////////////////////////// //订票 void tuipiao()///////////////////////////////////////////////////////////////////////////////////////// 退票 {char name[10]; int i,temp,t,num,a,j; struct tmp; cout<<"请输入您的姓名和航班号:"< {if (strcmp(cu[i].name,name)==0) {a=0;cout<<"确定退订吗?(1.是 2.否):";cin>>temp; if(temp==1) { ofstream outfile1("airline.dat"); ofstream outfile2("customer.dat"); for(j=0;j<=i;j++) outfile2< {if(fl[t].fligh==num) {fl[t].dticket=fl[t].dticket-1;fl[t].yticket=fl[t].yticket+1;}} for(t=0;t<3;t++) outfile1< } else a!=0;} if (a!=0) cout<<"没有你的信息,请查证后再操作!"; cout<<"返回主菜单?1.是2.否:";cin>>temp; if(temp==1)caidan1();} //////////////////////////////////////////////////////////////////// 退票 void chaxun() {char name[10]; int temp,i,a; cout<<"请输入你的姓名:";cin>>name; for(i=0;i<300;i++) if (strcmp(cu[i].name,name)==0){temp=i;a=0;} cout<<"*****乘客信息*****"< if(temp==1)caidan1(); } //查询客户信息 void chaxunquanbu() {int i,temp; cout<<"乘客信息:"< {if (cnum==i) temp=i;} for(i=0;i cout<<"航班号:"< if(temp==1)caidan1();} //查询全部信息 六、模块分析 1、航线信息: 每条航线包括航班号,飞机号,目的地,订票数,余票数,5项 现有3条航线:目的地北京,上海,广州。飞机可乘100人(初始定票数为0,余票数为100) 2、订票业务: (1).客户信息包括姓名,航班号,座位号(初始为0),假设已有3个客户信息 (2).有新客户订票时,先输入姓名和航班号,查询情况,如果还有余票,就为 这个客户办理订票手续,分给客户一个座位号,若无余票,则输出客户已满 3、退票业务: 根据客户提出的航班号,办理退票,并修改相应的航线的订票数和余票数 4、查询业务: 输出全部航线的信息和全部客户信息,或某条航班、某个客户信息。 5、退出系统 七.运行结果 1、首先进入系统提示是否是第一次进入,如果是第一次就进行初始化,讲预先的几个乘客信息存档。否则直接进入主菜单: 第一次进入,初始化!并且进入主菜单: 提示输入业务代码,如果输入的不是以上业务代码则提示输入错误: 2、进行第一个功能选项:订票业务: 如果已经存在此客户的信息则会出现下面情况: 则提示已经定过航班,问是否进入主菜单。 如果输入的客户在档案里面没有则进行正常订票: 输出客户信息,并且安排一个座位号,提示是否返回主菜单。 3、下面为第二个功能选项:查询客户信息 输入客户姓名,就会自动输出客户的相关信息。 如果没有客户信息则输出一下内容: 并且提示是否进入到主菜单。 4、查询全部信息:包括所有客户信息和所有航班的信息。 自动将客户编号,便于知道客户的总人数,并且在订票的时候已经修改航班信息,使得订票数和余票数吻合。 5、第4项功能:退票业务: 6、退出系统 八.心得体会 本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识,这次实践让我对C++程序有了更加深入的了解。不懂的地方就上网搜或是请教一下同学,当终于把程序写出来的时候,内心里又有一种说不出来的激动。在接下来就是调试,虽然出了很多的错误,一点点找线索,找到问题,再解决。现在程序终于能较好的运行出来了,当然,还存在一些瑕疵,但通过这两天的实践学习,我收获的不仅仅是这一个程序,我的自学能力,以及寻找问题解决问题的能力也得到了很好的锻炼。