《数据结构课程机场订票》由会员分享,可在线阅读,更多相关《数据结构课程机场订票(13页珍藏版)》请在金锄头文库上搜索。
1、航空客运订票系统程序要求:1、问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一 个航空客运订票系统,以使上述业务可以借助计算机完成。2、要求1) 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、 乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级 1、2、3) 以及等候替补的客户名单;2)系统实现的功能如下:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数 据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城 市,航班票价,票价折扣,确定航班是否满仓);可以输
2、入起飞抵达城市,查询 飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该 航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订 票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操 作按队列的操作来实现。程序流程图:退票成功详细代码:#in elude #i nclude #in elude #in elude #define m 43 架飞机#define n 5/每架飞机5张票struct nodechar n
3、 ame21;char id21;int seat,pla ne,date;node *n ext,*pre;struct waitchar n ame21;char id21;char phon e8;int seat,pla ne,date,co unt;wait *n ext,*pre;struct piaoint seat n+1;void make nu 11();void make nu ll_piao();void make nullnformatio n();void list_me nu();void list_piao();void make nu ll_wait();vo
4、id list_i nformatio n();void pla ne_in formati on(node *head);void book();void add_ in formatio n(node *head,i nt x,i nt y);void add_wait(i nt x,i nt y);void search_delete(i nt x);void write_to_file();void show_wait();bool comp (node *x,no de*y);node *head1,*head2,*head3,*q; wait *wait_head,*wait_en
5、d; char c;piao am;void main()makenull();do list_menu();coutendlc;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);
6、coutExit System ;void makenull()makenull_piao(); makenull_information(); makenull_wait();void list_menu()*0 .查看排队情况*n*1 .订票*n*2 .退票*n*3 .查看剩余票*n*4 .查看飞机信息*n*5 .查看乘客信息*6 .退出*n菜单;* * coutendl; coutendl coutendl coutendl coutendl coutendl coutendl coutendl coutendl coutendl coutendl coutendl;void maken
7、ull_piao()FILE *fp;int i;if(fp=fopen(piao.dat,r) = NULL )fp=fopen(piao.dat,w);for (i=1;i=m-1;i+)fwrite(&ai,sizeof(piao),1,fp); fclose(fp); fp=fopen(piao.dat,r);for(i=1;ipre=NULL; head1-next=NULL; head2-pre=NULL; head2-next=NULL;head3-pre=NULL; head3-next=NULL; q=head1;for(i=1;inext=r;r-pre=q; r-next
8、=NULL; q=q-next; fclose(fp);if(i=a1.seat0+1) head2-next=q; q-pre-next=NULL; q-pre=head2; if(i=a1.seat0+a2.seat0+1) head3-next=q; q-pre-next=NULL; q-pre=head3;void makenull_wait()wait *tempw;FILE *fp;tempw=new wait;int i;if(fp=fopen(wait.txt,r) =NULL )fp=fopen(wait.txt,w);fclose(fp);wait_end=new wait
9、; wait_head=new wait; 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;icount;i+) fread(tempw,sizeof(wait),1,fp); wait_end-next=tempw; tempw-pre=wait_end; tempw-next=NULL; wait_end=tempw;void list_piao()int
10、 i,j;for(i=1;i=m-1;i+)if(ai.seat0!=n)coutendl 第 i 架飞机剩余的票 :endl; for(j=1;j=n;j+)if (ai.seatj=0) cout j;coutendl;else coutendlThe i plane is full !endlendl;void list_information()int x;do coutendlx;coutendl;while(x=m); coutendl 第 x 架飞机的信息如下 next!=NULL)q=head-next;else q=NULL;cout 飞机空 ,无预订票 !endl;whil
11、e(q!=NULL)endl;coutendldate=q-plane;cout 日期 :dateendl; cout 座位号 : seatendl; cout 姓名 : name; coutendlID 号 : id; q=q-next;x+;if (x % 3 =0) ch=getch();coutendl;void book()int i,j,p; coutendli;if (i=m) coutendl* 超出范围! *endl 请重新输入: ;elsecoutendl 你要订的是到 i 地的飞机 endl; coutendl 第 i 架飞机剩余的票 :endl; for(p=1;p=n;p+)if (ai.seatp=0) cout p; coutendl;break;while(1);coutendlj;if (jn) coutendl