航空订票系统代码.docx
- 文档编号:20743371
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:23
- 大小:18.99KB
航空订票系统代码.docx
《航空订票系统代码.docx》由会员分享,可在线阅读,更多相关《航空订票系统代码.docx(23页珍藏版)》请在冰豆网上搜索。
航空订票系统代码
#include
#include
voidFlightInsert();//增加路线
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<<"***************【按4】预订飞机票***************"< cout<<""< cout<<"***************【按5】退订飞机票***************"< cout<<""< cout<<"***************【按6】清空系统***************"< cout<<""< cout<<"***************【按7】已订票***************"< cout<<""< cout<<"***************【按8】退出系统***************"< 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< cout< break; } } } voidFlightInsert()//航班录入 { /*inti=2; while(i! =1) {*/ Flight*p; p=newFlight; cout<<"****正在设定新的路线****"< cout< cout<<"1.请设定起点站名: "< cin>>p->From; cout<<"2.请设定终点站名: "< cin>>p->Des; cout<<"3.请设定航班号: "< cin>>p->FlightNum; cout<<"4.请设定飞机号: "< cin>>p->PlaneNum; cout<<"5.请设定飞行周日: "< cin>>p->Week; cout<<"6.请设定乘员定额: "< cin>>p->Ration; p->FreeTicket=p->Ration; cout<<"7.请设定一等舱的价格: "< cin>>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<<"************************"< cout<<"*1.航班号: "< cout<<"*2.飞机号: "< cout<<"*3.起点站: "< cout<<"*4.目的地: "< cout<<"*5.飞机周日: "< cout<<"*6.成员定额: "< cout<<"*7.剩余票数: "< cout<<"*8.候补乘客数: "< cout<<"*9.一等舱的价格: "< cout<<"*10.二等舱的价格: "< cout<<"*11.三等舱的价格: "< cout<<"************************"< } cout<<"您还需要其他的操作么? "< cout< cout<<"【按1】返回主菜单【按2】继续操作"< cin>>i; cout<<"************************"< 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<<"*提示: 对不起,不存在此航班,请核实您的信息! "< } else { 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.请输入航班号: "< cin>>q->FlightNum;break; case2: cout<<"2.请输入飞机号: "< cin>>q->PlaneNum;break; case3: cout<<"3.请输入起始站: "< cin>>q->From;break; case4: cout<<"4.请输入目的地: "< cin>>q->Des;break; case5: cout<<"5.请输入飞机周日: "< cin>>q->Week;break; case6: cout<<"6.请输入乘员定额: "< Customer_Number=q->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<<"请输入需要购买的票数: "< cin>>Ticket_Amount; while(Ticket_Amount==0&&Ticket_Amount<0) { cout<<"*提示: 对不起,请输入正确的票数! "< cout< cout<<"请输入需要够买的票数: "< cin>>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】继续"< cin>>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<<"请输入所查: "< cin>>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<<"候补乘客: "< "< cout< cout<<"航班号: "< cout<<"舱位等级为: "<