数据结构航空客运订票系统.docx
- 文档编号:1194567
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:24
- 大小:99.14KB
数据结构航空客运订票系统.docx
《数据结构航空客运订票系统.docx》由会员分享,可在线阅读,更多相关《数据结构航空客运订票系统.docx(24页珍藏版)》请在冰豆网上搜索。
数据结构航空客运订票系统
航空客运订票系统
程序要求:
1、问题描述
航空客运订票的业务活动包括:
查询航线、客票预订和办理退票等。
设计一个航空客运订票系统,以使上述业务可以借助计算机完成。
2、要求
1)每条航线所涉及的信息有:
终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;
2)系统实现的功能如下:
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
订票:
(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:
可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:
当航班信息改变可以修改航班数据文件
存储结构:
航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。
程序流程图:
详细代码:
#include
#include
#include
#include
#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);
node*head1,*head2,*head3,*q;
wait*wait_head,*wait_end;
charc;
piaoa[m];
voidmain()
{
makenull();
do
{list_menu();
cout< "; cin>>c; 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'); cout<<"ExitSystem"; } voidmakenull() { makenull_piao(); makenull_information(); makenull_wait(); } voidlist_menu() {cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< } 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) { cout< "< for(j=1;j<=n;j++) if(a[i].seat[j]==0)cout<<""< cout< } elsecout< "< } } voidlist_information() { intx; do{cout< ";cin>>x;cout< cout< 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<<"飞机空,无预订票! "< } while(q! =NULL) { cout< q->date=q->plane; cout<<"日期: "< cout<<"座位号: "< cout<<"姓名: "< cout< "< q=q->next;x++; if(x%3==0)ch=getch(); } cout< } voidbook() { inti,j,p; cout< (1、2、3)"; do{ cin>>i; if(i<1||i>=m){ cout< ****"< "; } else {cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 航空 客运 订票 系统