飞机订票系统.docx
《飞机订票系统.docx》由会员分享,可在线阅读,更多相关《飞机订票系统.docx(6页珍藏版)》请在冰豆网上搜索。
飞机订票系统
飞机订票系统
#include
#include
#defineOK1
#defineERROR0
typedefstructairline{
charair_num[8];
charplane_num[8];
charend_place[20];
int total;
int left;
structairline*next;
}airline;
typedefstructcustomer{
charname[8];
charair_num[8];
int seat_num;
structcustomer*next;
}customer;
airline*start_air()
{
airline*a;
a=(airline*)malloc(sizeof(airline));
if(a==NULL)
a->next=NULL;
returna;
}
customer*start_cus()
{
customer*c;
c=(customer*)malloc(sizeof(customer));
if(c==NULL)
c->next=NULL;
returnc;
}
airline*modefy_airline(airline*l,char*air_num)
{
airline*p;
p=l->next;
for(;p!
=NULL;p=p->next)
{
if(strcmp(air_num,p->air_num)==0)
{
p->left++;
returnl;
}
printf("NOtheairline!
");
return0;
}
}
intinsert_air(airline**p,char*air_num,char*plane_num,char*end_place,inttotal,intleft)
{
airline*q;
q=(airline*)malloc(sizeof(airline));
strcpy(q->air_num,air_num);
strcpy(q->plane_num,plane_num);
strcpy(q->end_place,end_place);
q->total=total;
q->left=left;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
returnOK;
}
int insert_cus(customer**p,char*name,char*air_num,intseat_num)
{
customer*q;
q=(customer*)malloc(sizeof(customer));
strcpy(q->name,name);
strcpy(q->air_num,air_num);
q->seat_num=seat_num;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
returnOK;
}
intbook(airline*a,char*air_num,customer*c,char*name)
{
airline*p=a;
customer*q=c->next;
p=a->next;
for(;q->next!
=NULL;q=q->next){}
for(;p->next!
=NULL;p=p->next)
{
if(p->left>0)
{
printf("Yourseatnumberis%d",(p->total-p->left+1));
insert_cus(&q,name,air_num,p->total-p->left+1);
p->left--;
returnOK;
}
else
{
printf("seatisfull");
return0;
}
}
}
intdel_cus(customer*c,airline*l,char*name)
{
customer*p,*pr;
charair_num[8];
pr=c;
p=pr->next;
while(p!
=NULL)
{
if(strcmp(p->name,name)==0)
{
strcpy(air_num,p->air_num);
l=modefy_airline(l,air_num);
pr->next=p->next;
p=pr->next;
printf("finish!
");
returnOK;
}
pr=pr->next;
p=pr->next;
}
printf("NOthecustomer!
");
returnERROR;
}
intsearch_air(airline*head)
{
airline*p=head->next;
printf("air_num plane_num end_place total left\n");
for(;p!
=NULL;p=p->next)
{
printf("%s %-10s%-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
}
returnOK;
}
intsearch_cus(customer*head)
{
structcustomer*q=head->next;
printf("name air_num seat_num\n");
for(;q!
=NULL;q=q->next)
{
printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);
}
returnOK;
}
intcreat_air(airline**l)
{
airline*p=*l;
inti=0;
char*air_num[3]={"007af","008af","009af"};
char*plane_num[3]={"plane1","plane2","plane3"};
char*end_place[3]={"Beijing","Shanghai","Tianjin"};
inttotal[3]={100,100,100};
intleft[3]={52,54,76};
for(i=0;i<3;i++)
insert_air(&p,air_num[i],plane_num[i],end_place[i],total[i],left[i]);
returnOK;
}
intcreat_cus(customer**l)
{
customer*p=*l;
inti=0;
char*name[3]={"zhsan","lisi","wangwu"};
char*air_num[3]={"007af","008af","009af"};
intseat_num[3]={2,5,7};
for(i=0;i<3;i++)
insert_cus(&p,name[i],air_num[i],seat_num[i]);
returnOK;
}
voidmain()
{
intt=1;
customer*cus=start_cus();
airline *air=start_air();
charname[8],air_num[8],ch;
creat_air(&air);
creat_cus(&cus);
while(t==1)
{
printf("\n");
printf("*********************************\n");
printf("* Welcometoairfirm!
*\n");
printf("* book--------1 *\n");
printf("* cancel------2 *\n");
printf("* search------3 *\n");
printf("* exit--------4 *\n");
printf("*********************************\n");
ch=getch();
if(ch=='1')
{
printf("Pleaseinputaairlinenumber:
");
scanf("%s",air_num);
printf("Pleaseinputaname:
");
scanf("%s",name);
book(air,air_num,cus,name);
}
else
if(ch=='2')
{
printf("Pleaseinputthecancelname:
");
scanf("%s",name);
del_cus(cus,air,name);
}
else
if(ch=='3')
{
search_air(air);
printf("\n");
search_cus(cus);
}
else
if(ch=='4')
{
t=0;
}
}
}任务:
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:
(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:
当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;