(完整word版)数据结构航空客运订票系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

航空客运订票系统程序要求:1、问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一个航空客运订票系统,以使上述业务可以借助计算机完成。2、要求1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;2)系统实现的功能如下:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。程序流程图:Switch(1)录入功能请按次序输入航班号,飞机号,终点站,飞行日期,乘客总数,余票数等信息Switch(1)请输入要查询的目的地Switch(2)Switch(3)订票功能请输入您需要的订票数订票数余票数查询功能通过目的地查询Switch(2)通过航班号查询请输入要查询的航班号订票成功Switch(4)退票功能输入你的名字输入你定的票数订票数余票数退票成功详细代码:#includeiostream.h#includestdio.h#includestring.h#includeconio.h#definem4//3架飞机#definen5//每架飞机5张票structnode{charname[21];charid[21];intseat,plane,date;node*next,*pre;};structwait{charname[21];charid[21];charphone[8];intseat,plane,date,count;wait*next,*pre;};structpiao{intseat[n+1];};voidmakenull();voidmakenull_piao();voidmakenull_information();voidlist_menu();voidlist_piao();voidmakenull_wait();voidlist_information();voidplane_information(node*head);voidbook();voidadd_information(node*head,intx,inty);voidadd_wait(intx,inty);voidsearch_delete(intx);voidwrite_to_file();voidshow_wait();boolcomp(node*x,node*y);Switch(5)退出系统node*head1,*head2,*head3,*q;wait*wait_head,*wait_end;charc;piaoa[m];voidmain(){makenull();do{list_menu();coutendlchooseanoperation:;cinc;if(c!='6')switch(c){case'0':show_wait();break;case'1':{list_piao();book();}break;case'2':search_delete(1);break;case'3':list_piao();break;case'4':list_information();break;case'5':search_delete(0);break;default:break;}}while(c!='6');coutExitSystem;}voidmakenull(){makenull_piao();makenull_information();makenull_wait();}voidlist_menu(){coutendl;coutendl菜单;coutendl************************;coutendl*0.查看排队情况*;coutendl*1.订票*;coutendl*2.退票*;coutendl*3.查看剩余票*;coutendl*4.查看飞机信息*;coutendl*5.查看乘客信息*;coutendl*6.退出*;coutendl************************;coutendl;}voidmakenull_piao(){FILE*fp;inti;if((fp=fopen(piao.dat,r))==NULL){fp=fopen(piao.dat,w);for(i=1;i=m-1;i++)fwrite(&a[i],sizeof(piao),1,fp);fclose(fp);fp=fopen(piao.dat,r);}for(i=1;i=m-1;i++)fread(&a[i],sizeof(piao),1,fp);fclose(fp);}voidmakenull_information(){node*r;FILE*fp;inti,j,sum;sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0];fp=fopen(information.dat,r);head1=newnode;head2=newnode;head3=newnode;head1-pre=NULL;head1-next=NULL;head2-pre=NULL;head2-next=NULL;head3-pre=NULL;head3-next=NULL;q=head1;for(i=1;i=sum;i++){j=0;r=newnode;fread(r,sizeof(node),1,fp);q-next=r;r-pre=q;r-next=NULL;q=q-next;fclose(fp);if(i==a[1].seat[0]+1){head2-next=q;q-pre-next=NULL;q-pre=head2;}if(i==a[1].seat[0]+a[2].seat[0]+1){head3-next=q;q-pre-next=NULL;q-pre=head3;}}}voidmakenull_wait(){wait*tempw;FILE*fp;tempw=newwait;inti;if((fp=fopen(wait.txt,r))==NULL){fp=fopen(wait.txt,w);fclose(fp);}wait_end=newwait;wait_head=newwait;wait_end-next=NULL;wait_end-pre=NULL;wait_head=wait_end;wait_head-count=0;fp=fopen(wait.txt,r);fread(wait_head,sizeof(wait),1,fp);for(i=1;i=wait_head-count;i++){fread(tempw,sizeof(wait),1,fp);wait_end-next=tempw;tempw-pre=wait_end;tempw-next=NULL;wait_end=tempw;}}voidlist_piao(){inti,j;for(i=1;i=m-1;i++){if(a[i].seat[0]!=n){coutendl第i架飞机剩余的票:endl;for(j=1;j=n;j++)if(a[i].seat[j]==0)coutj;coutendl;}elsecoutendlTheiplaneisfull!endlendl;}}voidlist_information(){intx;do{coutendl显示哪架飞机的信息?;cinx;coutendl;}while(x1||x=m);coutendl第x架飞机的信息如下endl;if(x==1)plane_information(head1);if(x==2)plane_information(head2);if(x==3)plane_information(head3);}voidplane_information(node*head){node*q;charch;intx=0;if(head!=NULL&&head-next!=NULL)q=head-next;else{q=NULL;cout飞机空,无预订票!endl;}while(q!=NULL){coutendl*******************endl;q-date=q-plane;cout日期:q-dateendl;cout座位号:q-seatendl;cout姓名:q-name;coutendlID号:q-id;q=q-next;x++;if(x%3==0)ch=getch();}coutendl;}voidbook(){inti,j,p;coutendl请选择地点:(1、2、3);do{cini;if(i1||i=m){coutendl****超出范围!****endl请重新输入:;}else{coutendl你要订的是到i地的飞机endl;coutendl第i架飞机剩余的票:endl;for(p=1;p=n;p++)if(a[i].seat[p]==0)coutp;coutendl;break;}}while(1);coutendl请选择座位号:;do{cinj;if(j1||jn){coutendl****超出范围!****endl请重新输入:;}else{q-date=i;coutendl您的订票日期:q-dateendl;break;}}while(1);if(a[i].seat[j]==0){a[i].seat[j]=1;coutendl;a[i].seat[0]++;if(i==1)add_information(head1,1,j);if(i==2)add_information(head2,2,j);if(i==3)add_information(head3,3,j);}else{coutendl****对不起,该座位已被预订,您被安排到订票等候队列****endl;add_wait(i,j);}}voidadd_wait(intx,inty){wait*tempw;tempw=newwait;tempw-next=NULL;cout请输入个人信息endl;coutendl*************endl;cout姓名:;cintempw-name;coutID号:;cintempw-id;cout电话:;cintempw-phone;tempw-seat=y;tempw-plane=x;wait_end-next=tempw;tempw-pre=wait_end;wait_end=wait_end-next;coutendl****正在排队等候****en

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功