
飞机航班号
-
2023年2月20日发(作者:)#include之南宫帮珍创作
#include
voidFlightInsert();//增加路线
voidFlightDelete();//删除路线
voidFlightLookup();//航班查询
voidFlightRework();//航班路线修改
voidFlightBuyticket();//买票
voidFlightCancelticket();//取消订票
voidFlightclean();//清空
voidMainMenu();//主函数
voidDisplay();//显示订票信息
typedefstructCustomer//已定票乘客信息
{
charName[10];//姓名
intAmount;//定票数
intLevel;//舱位等级
intSeatNum;//座位号
charFlightNum[10];//所定航班号
structCustomer*next;
}Customer;
typedefstructWordStr//侯补乘客信息
{
charName[10];//姓名e
intAmount;//定票数
intLevel;//舱位等级
charFlightNum[10];//所定航班号
structWordStr*next;
}WordStr;
typedefstructFlight//航班路线信息
{
charFrom[10];//起点站名
charDes[10];//终点站名
charFlightNum[10];//航班号
charPlaneNum[10];//航班
charWeek[20];//飞机周日
intRation;//乘员定额
intFreeTicket;//剩余票数
floatPrice[3];//票价
intWordStrPas;//候补乘客数
WordStr*ReplName;//该航班的候补乘客名单
Customer*CustName;//该航班的已定票乘客名单
structFlight*next;//指示下一航班路线结点
}Flight,*PFlight;
intRation=0;//乘客总数
Flight*head;//建立航班路线头结点
Flight*rear;//建立航班路尾结点
Customer*Cusrear;
WordStr*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=newWordStr; p->CustName=newCustomer; p->CustName->next=NULL; p->ReplName->next=NULL; p->WordStrPas=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); voidBuyWordStr(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_AmountFreeTicket) { Buyticket(q,Ticket_Amount); } else { intn; cout<<\"*提示:抱愧!剩余票数小于定票数,是 否需要列入候补名单?(【按1】是【按2】否)\"< cin>>n; BuyWordStr(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]; intWordStr1_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) { WordStr1_Amount=q->ReplName->next- >Amount; if(WordStr1_AmountFreeTicket) { WordStr*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<<\"航班号:\"< >FlightNum< cout<<\"舱位等级为:\"< >Level<<\"(1一等舱,2二等舱,3三等舱)\"<