航空订票系统代码Word格式.docx
《航空订票系统代码Word格式.docx》由会员分享,可在线阅读,更多相关《航空订票系统代码Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
typedefstructFlight//航班路线信息
charFrom[10];
//起点站名
charDes[10];
//终点站名
//航班号
charPlaneNum[10];
//航班
charWeek[20];
//飞机周日
intRation;
//乘员定额
intFreeTicket;
//剩余票数
floatPrice[3];
//票价
intReplacePas;
//候补乘客数
Replace*ReplName;
//该航班的候补乘客名单
Customer*CustName;
//该航班的已定票乘客名单
structFlight*next;
//指示下一航班路线结点
}Flight,*PFlight;
intRation=0;
//乘客总数
Flight*head;
//建立航班路线头结点
Flight*rear;
//建立航班路尾结点
Customer*Cusrear;
Replace*Reprear;
voidMainMenu()
inti=0;
while(i!
=8)
{
cout<
<
endl;
"
***************【欢迎使用航空订票系统】***************"
"
***************【按1】增加航班路线***************"
cout<
***************【按2】查询航班路线***************"
***************【按3】修改航班路线***************"
***************【按4】预订飞机票***************"
***************【按5】退订飞机票***************"
***************【按6】清空系统***************"
***************【按7】已订票名单***************"
***************【按8】退出系统***************"
*提示:
当前为主菜单"
cin>
>
i;
switch(i)
{
case1:
FlightInsert();
break;
//增加航班路线
case2:
FlightLookup();
//查询航班路线
case3:
FlightRework();
//修改航班路线
case4:
FlightBuyticket();
//预订飞机票
case5:
FlightCancelticket();
//退订飞机票
case6:
Flightclean();
//清空系统
case7:
Display();
case8:
;
break;
default:
cout<
*提示:
抱歉,请选择正确的操作!
}
}
}
voidFlightInsert()//航班录入
/*inti=2;
while(i!
=1)
{*/
Flight*p;
p=newFlight;
****正在设定新的路线****"
1.请设定起点站名:
p->
From;
2.请设定终点站名:
Des;
3.请设定航班号:
FlightNum;
4.请设定飞机号:
PlaneNum;
5.请设定飞行周日:
Week;
6.请设定乘员定额:
Ration;
p->
FreeTicket=p->
7.请设定一等舱的价格:
Price[0];
8.请设定二等舱的价格:
Price[1];
9.请设定三等舱的价格:
Price[2];
ReplName=newReplace;
CustName=newCustomer;
CustName->
next=NULL;
ReplName->
ReplacePas=0;
rear->
next=p;
rear=p;
设置成功!
***********************"
/*cout<
【按1】返回主菜单【按2】继续"
}*/
voidFlightLookup()//查询航班号
Flight*p,*q;
p=head;
请输入需要查询的航班号:
while(p->
next&
&
strcmp(p->
next->
FlightNum,FlightNum))
p=p->
next;
q=p->
if(q==NULL)
对不起,不存在此航班号,请核实您的信息!
else
以下是您所查的车次信息:
************************"
*1.航班号:
q->
FlightNum<
*2.飞机号:
PlaneNum<
*3.起点站:
From<
*4.目的地:
Des<
*5.飞机周日:
Week<
*6.成员定额:
Ration<
*7.剩余票数:
FreeTicket<
张"
*8.候补乘客数:
ReplacePas<
人"
*9.一等舱的价格:
Price[0]<
元"
*10.二等舱的价格:
Price[1]<
*11.三等舱的价格:
Price[2]<
您还需要其他的操作么?
【按1】返回主菜单【按2】继续操作"
voidFlightRework()//修改航班路线信息
intCustomer_Number;
inta=1;
请输入需要修改的航班:
cin>
while(p->
next&
strcmp(p->
p=p->
q=p->
if(q==NULL)
对不起,不存在此航班,请核实您的信息!
else
while(a)
*******【请输入需要修改的数据】*******"
【按1】航班号"
【按2】飞机号"
【按3】起始站"
【按4】目的地"
【按5】每周出站日期"
【按6】成员定额"
【按7】一等舱的价格"
【按8】二等舱的价格"
【按9】三等舱的价格"
【按10】退出"
**************************************"
cin>
switch(i)
{
case1:
cout<
1.请输入航班号:
cin>
case2:
2.请输入飞机号:
case3:
3.请输入起始站:
case4:
4.请输入目的地:
case5:
5.请输入飞机周日:
case6:
6.请输入乘员定额:
Customer_Number=q->
Ration-q->
FreeTicket;
FreeTicket=q->
Ration-Customer_Number;
case7:
7.请输入一等舱的价格:
case8:
8.请输入二等舱的价格:
case9:
9.请输入三等舱的价格:
case10:
a=0;
break;
default:
对不起,请选择正确的操作!
}
voidFlightBuyticket()//订票
intTicket_Amount;
voidBuyticket(PFlight,int);
voidBuyreplace(PFlight,int,int);
inti=2;
请输入目的地:
Des,Des))
while(i!
cout<
请输入需要购买的票数:
Ticket_Amount;
while(Ticket_Amount==0&
Ticket_Amount<
0)
{
cout<
对不起,请输入正确的票数!
请输入需要够买的票数:
cin>
}
if(Ticket_Amount<
=q->
FreeTicket)
Buyticket(q,Ticket_Amount);
else
intn;
抱歉!
剩余票数小于定票数,是否需要列入候补名单?
(【按1】是【按2】否)"
n;
Buyreplace(q,Ticket_Amount,n);
voidFlightCancelticket()//退票
Customer*h,*j;
charFlightNum[6];
charCustomer_Name[10];
intReplace1_Amount;
//候补第一个人的定票数
inti;
**********************************"
请输入需要退定的航班号:
p=head;
while(i!
=2)
请输入所查姓名:
Customer_Name;
h=q->
CustName;
while(h->
strcmp(h->
Name,Customer_Name))
h=h->
j=h->
if(j==NULL)
对不起,查无此人,请核实您的信息!
if(j->
next==NULL)
{//当删除最后一个结点
Cusrear=h;
}
h->
next=h->
q->
FreeTicket+=j->
Amount;
deletej;
退票成功!
if(q->
next!
=NULL)
{
Replace1_Amount=q->
if(Replace1_Amount<
{
Replace*rep;
rep=q->
Customer*Cus2;
Cus2=newCustomer;
Cus2->
SeatNum=q->
FreeTicket+1;
strcpy(Cus2->
FlightNum,q->
FlightNum);
Name,rep->
Name);
Amount=rep->
Level=rep->
Level;
cout<
候补乘客:
rep->
Name<
已经成功买票!
航班号:
Cus2->
舱位等级为:
Level<
(1一等舱,2二等舱,3三等舱)"
座位号为:
for(inti=1;
i<
=(rep->
Amount);
i++)
{
cout<
No."
SeatNum++<
}
if(q->
Cusrear=q->
Cusrear->
next=Cus2;
Cusrear=Cus2;
else
q->
FreeTicket-=rep->
next=q->
ReplacePas--;
deleterep;
}
}
【按1】返回主菜单,或按任意键返回【继续退票操作】!
voidFlightclean()//清空
head->
next=rear->
系统已经清空!
voidBuyticket(PFlightq,intTicket_Amount)//买票
intn=Ticket_Amount;
Customer*Cus2;
Cus2=newCustomer;
Cus2->
strcpy(Cus2->
Amount=Ticket_Amount;