航空客运订票系统
程序要求:
1、 问题描述
航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一
个航空客运订票系统,以使上述业务可以借助计算机完成。
2、 要求
1) 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、
乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级 1、2、3)
以及等候替补的客户名单;
2) 系统实现的功能如下:
通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数
据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城
市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询
飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该
航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订
票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件
存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操
作按队列的操作来实现。
程序流程图:
Switch(1)
录入功能
请按次序输入航班号,飞机号,终点站,飞行日期,乘客总数,余票数等信息
Switch(2)
查询功能
Switch(1)
Switch(2)
通过目的地查询
请输入要查询的目的地
通过航班号查询
请输入要查询的航班号
Switch(3)
订票功能
请输入您需要的订票数
订票数<余票数
订票成功
Switch(4)
退票功能
输入你的名字
输入你定的票数
订票数<余票
退票成功
node *head1,*head2,*head3,*q;
wait *wait_head,*wait_end;
char c;
piao a[m];
void main()
{
makenull();
do
{
list_menu();
cout<
>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<<"Exit System ";
}
void makenull()
{
makenull_piao();
makenull_information();
makenull_wait();
}
void list_menu()
{
cout<}
void makenull_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(&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);
}
void makenull_information()
{
node *r;
FILE *fp;
int i,j,sum;
sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0];
fp=fopen("information.dat","r");
head1=new node;
head2=new node;
head3=new node;
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=new node;
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;
}
}
}
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;
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;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;
{
}
}
void list_piao()
{
int i,j;
for(i=1;i<=m-1;i++)
{
}
if(a[i].seat[0]!=n)
{
cout<
>x;cout<=m);
cout<next!=NULL)
q=head->next;
else {
q=NULL;
cout<<"飞机空,无预订票 !"<date=q->plane;
cout<<"日期 :"<date<seat<name;
cout<id;
q=q->next;x++;
if (x % 3 ==0) ch=getch();
}
cout<void book()
{
int i,j,p;
cout<>i;
if (i<1 || i>=m) {
cout<>j;
if (j<1 || j>n) {
cout<date=i;
cout<date<