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