数据结构航空客运订票系统.docx

上传人:b****5 文档编号:30698511 上传时间:2023-08-19 格式:DOCX 页数:24 大小:97.69KB
下载 相关 举报
数据结构航空客运订票系统.docx_第1页
第1页 / 共24页
数据结构航空客运订票系统.docx_第2页
第2页 / 共24页
数据结构航空客运订票系统.docx_第3页
第3页 / 共24页
数据结构航空客运订票系统.docx_第4页
第4页 / 共24页
数据结构航空客运订票系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据结构航空客运订票系统.docx

《数据结构航空客运订票系统.docx》由会员分享,可在线阅读,更多相关《数据结构航空客运订票系统.docx(24页珍藏版)》请在冰豆网上搜索。

数据结构航空客运订票系统.docx

数据结构航空客运订票系统

航空客运订票系统

程序要求:

1、问题描述

航空客运订票的业务活动包括:

查询航线、客票预订和办理退票等。

设计一个航空客运订票系统,以使上述业务可以借助计算机完成。

2、要求

1)每条航线所涉及的信息有:

终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;

2)系统实现的功能如下:

通过此系统可以实现如下功能:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;

订票:

(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;

退票:

可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:

当航班信息改变可以修改航班数据文件

存储结构:

航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。

程序流程图:

 

 

 

 

 

 

 

详细代码:

#include<>

#include<>

#include<>

#include<>

#definem4查看排队情况*";

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

}

voidmakenull_piao()

{

FILE*fp;

inti;

if((fp=fopen("","r"))==NULL)

{

fp=fopen("","w");

for(i=1;i<=m-1;i++)

fwrite(&a[i],sizeof(piao),1,fp);

fclose(fp);

fp=fopen("","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("","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("","r"))==NULL)

{

fp=fopen("","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("","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<>x;cout<=m);

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<<"日期:

"<date<

cout<<"座位号:

"<seat<

cout<<"姓名:

"<name;

cout<

"<id;

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<

cout<

"<

for(p=1;p<=n;p++)

if(a[i].seat[p]==0)cout<<""<

cout<

break;}

}while

(1);

cout<

";

do{

cin>>j;

if(j<1||j>n){

cout<

****"<

";

}

else

{

q->date=i;

cout<

"<date<

break;

}

}while

(1);

if(a[i].seat[j]==0){

a[i].seat[j]=1;

cout<

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

{cout<

add_wait(i,j);

}

}

voidadd_wait(intx,inty)

{

wait*tempw;

tempw=newwait;

tempw->next=NULL;

cout<<"请输入个人信息"<

cout<

cout<<"姓名:

";cin>>tempw->name;

cout<<"ID号:

";cin>>tempw->id;

cout<<"电话:

";cin>>tempw->phone;

tempw->seat=y;

tempw->plane=x;

wait_end->next=tempw;

tempw->pre=wait_end;

wait_end=wait_end->next;

cout<

wait_head->count++;

write_to_file();

}

voidshow_wait()

{

wait*tempw;

tempw=wait_head->next;

if(tempw==NULL)cout<

"<

while(tempw!

=NULL)

{

cout<name<<"-";

tempw=tempw->next;

}

}

voidadd_information(node*head,intx,inty)

{

node*temp;

temp=newnode;

temp->pre=NULL;

temp->next=NULL;

cout<<"请输入个人信息"<

cout<

cout<<"姓名:

";cin>>temp->name;

cout<<"ID号:

";cin>>temp->id;

temp->seat=y;

temp->plane=x;

temp->next=head->next;

temp->pre=head;

if(head->next!

=NULL)head->next->pre=temp;

head->next=temp;

write_to_file();

cout<

}

voidsearch_delete(intx)

{

node*p,*q,*r;

wait*tempw,*tempw2,*tempw3;

intstep=1,t1,t2,i;

charch;

p=newnode;

tempw=newwait;

tempw2=newwait;

tempw3=newwait;

q=head1;

cout<

cout<<"*************"<

cout<

";cin>>p->name;

do{

q=q->next;

if((q!

=NULL)&&

(comp(q,p)))

{

cout<

q->date=q->plane;

cout<<"Located!

"<

cout<<"****************";

cout<

"<name;

cout<

"<id;

cout<

"<seat;

cout<

"<plane;

cout<

"<date<

if(x==1){

cout<<"删除该纪录[Y/N]";

cin>>ch;

if(ch=='Y'||ch=='y'){

t1=q->plane;

t2=q->seat;

a[t1].seat[t2]=0;

a[t1].seat[0]--;

r=q;q=q->pre;

r->pre->next=r->next;

if(r->next!

=NULL)r->next->pre=r->pre;

delete(r);

cout<<"****记录删除成功!

****";

write_to_file();

tempw=wait_head;

for(i=0;icount;i++)

{

tempw=tempw->next;

if(tempw==NULL)break;

if((tempw->plane==t1)&&(tempw->seat==t2))

{

strcpy(tempw3->name,tempw->name);

strcpy(tempw3->phone,tempw->phone);

cout<

"<

cout<

"<name;

cout<

"<id<

a[t1].seat[0]++;

a[t1].seat[t2]=1;

if(tempw->plane==1)add_information(head1,1,tempw->seat);

if(tempw->plane==2)add_information(head2,2,tempw->seat);

if(tempw->plane==3)add_information(head3,3,tempw->seat);

tempw2=tempw->pre;

tempw2->next=tempw->next;

if(tempw->next==NULL)wait_end=tempw2;

elsetempw->next->pre=tempw2;

delete(tempw);

wait_head->count--;

write_to_file();

cout<name<<"已经成功订票,已经由电话"<phone<<"通知了"<

break;

}

}

}

}continue;

}

else

{

if(q==NULL)

{

step++;

if(step==2)q=head2;

if(step==3)q=head3;

if(step==4){cout<

}

}

}while

(1);

}

boolcomp(node*x,node*y)

{

node*p,*q;

inti,j,k;

p=x;

q=y;

i=j=0;

do

{

while((p->name[i]!

=q->name[j])&&(p->name[i]!

='\0'))i++;

if(p->name[i]=='\0'){return(false);break;}

else

{

k=i;

while((p->name[k]==q->name[j])&&(q->name[j]!

='\0')){k++;j++;}

if(q->name[j]=='\0')return(true);

else

{

j=0;

i++;

}

}

}while((q->name[j]!

='\0')&&(p->name[i]!

='\0'));

return(false);

}

voidwrite_to_file()

{

FILE*fp;

inti,j;

intx[m];

node*p;

wait*tempw;

tempw=newwait;

tempw=wait_head;

fp=fopen("","w");

for(i=1;i<=m-1;i++)

{

fwrite(&a[i],sizeof(piao),1,fp);

}

fclose(fp);

fp=fopen("","w");

x[0]=0;x[1]=a[1].seat[0];

for(i=0,j=1;j<=m-1;j++){i=i+a[j].seat[0];x[j]=a[j].seat[0]+x[j-1];}

j=1;p=head1->next;

for(j=1;j<=i;j++)

{

if(j==x[1]+1)p=head2->next;

if(j==x[2]+1)p=head3->next;

if(p==NULL)break;

fwrite(p,sizeof(node),1,fp);

p=p->next;

}

fclose(fp);

fp=fopen("","w");

for(j=0;j<=wait_head->count;j++)

{

if(tempw==NULL)break;

fwrite(tempw,sizeof(wait),1,fp);

tempw=tempw->next;

}

fclose(fp);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1