飞机订票系统.docx
- 文档编号:4281143
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:14
- 大小:17.02KB
飞机订票系统.docx
《飞机订票系统.docx》由会员分享,可在线阅读,更多相关《飞机订票系统.docx(14页珍藏版)》请在冰豆网上搜索。
飞机订票系统
主函数:
#include"stdafx.h"
#include
#include
#include
#include
#include
#include"dingpiao.h"
externHangxian*L;
externYidingmingdan*H;
externlinkqueueQ;
intmain(intargc,char*argv[])
{
H=(Yidingmingdan*)malloc(sizeof(Yidingmingdan));
Q.front=Q.rear=(queue)malloc(sizeof(Houbukehu));
LinklistInitLinklist();
intn;
do{
printf("\n");
printf("欢迎使用航空客运订票系统\n");
printf("+++++++++++++++++++++++++\n");
printf("1.录入功能\n");
printf("2.查询功能\n");
printf("3.订票功能\n");
printf("4.退票功能\n");
printf("5.退出\n");
printf("++++++++++++++++++++++++++\n");
printf("请选择:
");
scanf("%d",&n);printf("\n");
switch(n)
{
case1:
lurugongneng();
break;
case2:
search();
break;
case3:
dingpiaogongneng();
break;
case4:
tuipiaogongneng();
break;
default:
exit(0);
}
}while(n==1||n==2||n==3||n==4);
return0;
}
声明函数
typedefstructYidingmingdan{
charname[15];
intdingpiaoshu;
structYidingmingdan*next1;
}Yidingmingdan,*Link;
typedefstructHoubukehu{
charname[15];
intyudingpiao;
structHoubukehu*next2;
}Houbukehu,*queue;
typedefstruct{
queuefront;
queuerear;
}linkqueue;
typedefstructHangxian{
charhangbanhao[15];
charfeijihao[15];
intfeixingriqi;
intchenkerenshu;
intyupiaoshu;
charzhongdianzhan[15];
structHangxian*next;
structYidingmingdan*yiding;
structHoubukehu*yudingkehu;
}Hangxian,*Linklist;
voidhbhchaxun();
voidmddchaxun();
voidlurugongneng();
voidsearch();
voiddingpiaogongneng();
voidtuipiaogongneng();
LinklistInitLinklist();
intInsertLinklist(Linklist&head1);
调用函数
#include"stdafx.h"
#include
#include
#include
#include
#include
#include"dingpiao.h"
structHangxian*L=NULL;
structYidingmingdan*H;
linkqueueQ;
voidlurugongneng()
{
intj=1,m;
do
{
InsertLinklist((Linklist)L);
printf("是否要输入下一个航线记录?
\n");
printf("是请输入1\n");
printf("否请输入2\n");
scanf("%d",&m);
}while(m==1);
}
LinklistInitLinklist()
{
L=(Linklist)malloc(sizeof(Hangxian));
L->next=NULL;
return(L);
}
intInsertLinklist(Linklist&L)
{
Linklistp;
p=(Linklist)malloc(sizeof(Hangxian));
printf("请依次输入下面几项内容:
\n\n");
printf("航班号\n");
gets(p->hangbanhao);
gets(p->hangbanhao);
printf("飞机号\n");
gets(p->feijihao);
printf("终点站\n");
gets(p->zhongdianzhan);
printf("飞行日期\n");
scanf("%d",&p->feixingriqi);
printf("乘客总数\n");
scanf("%d",&p->chenkerenshu);
printf("余票数\n");
scanf("%d",&p->yupiaoshu);
p->yiding=(structYidingmingdan*)malloc(sizeof(Yidingmingdan));
p->yudingkehu=Q.front=Q.rear=(queue)malloc(sizeof(Houbukehu));
if(L==0)
{L=p;}
else
p->next=L->next;
L->next=p;
return
(1);
}
voidsearch()
{
intn;
printf("查找航线信息\n");
printf("++++++++++++++++++++++++++\n");
printf("1.通过目的地查询\n");
printf("2.通过航班号查询\n");
printf("++++++++++++++++++++++++\n");
printf("请选择:
");
scanf("%d",&n);
printf("\n");
switch(n)
{
case1:
mddchaxun();
break;
case2:
hbhchaxun();
break;
default:
break;
}
}
voidmddchaxun()
{
charc[15];
intm;
Linklistp=L;
printf("请输入要查询的目的地:
");
gets(c);
gets(c);
printf("\n");
do{
p=p->next;
if(p)
{
m=strcmp((*p).zhongdianzhan,c);
if(m==0)
{
printf("航班信息:
\n");
printf("航班号:
%s\n",p->hangbanhao);
printf("飞机号:
%s\n",p->feijihao);
printf("飞行时间(星期):
%d\n",p->feixingriqi);
printf("余票量:
%d\n",p->yupiaoshu);
}
else
{
printf("对不起没有你要找的目的地:
\n");
}
m=0;
}
}while(m!
=0);
}
voidhbhchaxun()
{
charc[15];
intm;
Linklistp=L;
printf("请输入要查询的航班号:
");
gets(c);
gets(c);
printf("\n");
do{
p=p->next;
if(p)
{
m=strcmp((*p).hangbanhao,c);
if(m==0)
{
printf("航班信息:
\n");
printf("航班号:
%s\n",p->hangbanhao);
printf("飞机号:
%s\n",p->feijihao);
printf("飞行时间(星期):
%d\n",p->feixingriqi);
printf("余票量:
%d\n\n",p->yupiaoshu);
}
else
{
printf("对不起没有你要找的航班号:
\n");
}
m=0;
}
}while(m!
=0);
}
voiddingpiaogongneng()
{
H=(structYidingmingdan*)malloc(sizeof(Yidingmingdan));
Linklistp=L;
Yidingmingdan*h=H,*h1;
linkqueueq=Q;
charc[15];
intm=1,piao,ydpiao=0,yd=0,n;
printf("请输入终点站名:
");
gets(c);
gets(c);
printf("\n");
p=L->next;
if(p)
{
do
{
m=strcmp(p->zhongdianzhan,c);
if(m!
=0)
{
printf("对不起,没有你要找的航班:
\n\n");
gotoloop1;
}
if(m==0)
{
printf("航班信息:
\n");
printf("航班号:
%s\n",p->hangbanhao);
printf("飞机号:
%s\n",p->feijihao);
printf("飞行时间(星期):
%d\n",p->feixingriqi);
printf("余票量:
%d\n",p->yupiaoshu);
}
elsep=p->next;
}while(m!
=0);
if(m==0)
{
do
{
printf("\n请输入你要订的票数:
");
scanf("%d",&piao);
if(piao<=p->yupiaoshu)
{
h=p->yiding;
if(h)
{
h1=h;
h=h->next1;
h=(structYidingmingdan*)malloc(sizeof(Yidingmingdan));
printf("请输入你的名字:
");
gets(h->name);
gets(h->name);
h->dingpiaoshu=piao;
h->next1=h1->next1;
h1->next1=h;
p->yupiaoshu=p->yupiaoshu-piao;
printf("订票成功:
\n");m=2;
}
}
else
{
printf("余票量:
%d\n",p->yupiaoshu);
printf("对不起,余票%d张不足,不能完成订票\n\n",p->yupiaoshu);
printf("是否要重新订票?
\n");
printf("需要请输入1否则请按2预订请输入3:
");
scanf("%d",&m);
printf("\n");
if(m==3)gotoloop3;
}
}while(m==1);
}
}
elseif(!
p)
{
loop3:
structHoubukehu*q3;
printf("对不起,该航班的票已售完\n");
q.front=p->yudingkehu;
if(q.front==q.rear)
printf("没有人预订票,是否要预订?
\n");
elseif(q.front!
=q.rear)
printf("已有人预订票,是否要预订?
\n");
printf("预订请输入1否则输入2:
");
scanf("%d",&n);
printf("\n");
if(n==1)
{
q3=(queue)malloc(sizeof(Houbukehu));
printf("请输入你的姓名");
gets(q3->name);
gets(q3->name);
printf("请输入订票数");
scanf("%d",&q3->yudingpiao);
q3->next2=NULL;
q.rear->next2=q3;
q.rear=q3;
printf("你已经预订了!
\n");
}
}
loop1:
;
}
voidtuipiaogongneng()
{
Linklistp=L;
Yidingmingdan*h=H,*h1,*h2;
linkqueueq=Q;
charc[15],name1[15];
intm=1,piao,n;
printf("请输入航班号:
");
gets(c);
gets(c);
p=L;
if(p)
{
do
{
if(!
p)
{
printf("\n对不起,没有你要找的航班:
\n");
gotoloop1;
}
m=strcmp(p->hangbanhao,c);
if(m==0)
{
printf("航班信息:
\n");
printf("航班号:
%s\n",p->hangbanhao);
printf("飞机号:
%s\n",p->feijihao);
printf("飞行时间(星期):
周%d\n",p->feixingriqi);
printf("余票量:
%d\n",p->yupiaoshu);
}
elsep=p->next;
}while(m!
=0);
if(m==0)
{
do
{
h=p->yiding;
if(h)
{
printf("请输入你的姓名:
");
gets(name1);
gets(name1);
printf("请输入你订的票数:
");
scanf("%d",&piao);
scanf("%d",&piao);
printf("\n");
h1=h;
h=h->next1;
if(strcmp(h->name,name1)==0&&h->dingpiaoshu==piao)
{
p->yupiaoshu+=h->dingpiaoshu;
h2=h;
h1->next1=h->next1;
free(h2);
printf("你取消订票成功:
\n\n");
structHoubukehu*q3;
q.front=p->yudingkehu;
if(q.front==q.rear)
{
printf("没有人预订票:
\n");gotoloop1;
}
if((p->yupiaoshu)>=(q.front->next2->yudingpiao))
{
h2=(structYidingmingdan*)malloc(sizeof(Yidingmingdan));
strcpy(h2->name,q.front->next2->name);
h2->dingpiaoshu=q.front->next2->yudingpiao;
n=p->yupiaoshu-q.front->next2->yudingpiao;
p->yupiaoshu=n;
q3=Q.front->next2;
q.front->next2=q3->next2;
if(q.rear==q3)q.rear=q.front;
free(q3);
printf("链队中删除成功\n");
h2->next1=h->next1;
h->next1=h2;
printf("为预订的客户订票成功\n");
}
elseprintf("余票数不够,不能为预订客户订票!
\n");
}
else
{
printf("对不起,该航班没有人订票或者是你没有订该航班的票\n");
printf("是否要重新查找并取消订票?
\n");
printf("需要请输入1否则请按2");
scanf("%d",&m);
printf("\n");
}
}
}while(m==1);
}
}
loop1:
;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 系统