1、typedef struct Flight /航班路线信息 char From10; /起点站名 char Des10; /终点站名 /航班号 char PlaneNum10; /航班 char Week20; /飞机周日 int Ration; /乘员定额 int FreeTicket; /剩余票数 float Price3; /票价 int ReplacePas; /候补乘客数 Replace *ReplName; /该航班的候补乘客名单 Customer *CustName; /该航班的已定票乘客名单 struct Flight *next; /指示下一航班路线结点Flight,*PFl
2、ight;int Ration=0; /乘客总数Flight *head; /建立航班路线头结点Flight *rear; /建立航班路尾结点 Customer *Cusrear;Replace *Reprear;void MainMenu() int i=0; while (i!=8) coutendl; *【欢迎使用航空订票系统】* *【按1】增加航班路线 * couti; switch(i) case 1: FlightInsert(); break; /增加航班路线 case 2: FlightLookup(); /查询航班路线 case 3: FlightRework(); /修改航
3、班路线 case 4: FlightBuyticket(); /预订飞机票 case 5: FlightCancelticket(); /退订飞机票 case 6: Flightclean(); /清空系统 case 7: Display(); case 8:;break; default: coutFrom;2.请设定终点站名:Des;3.请设定航班号:FlightNum;4.请设定飞机号:PlaneNum;5.请设定飞行周日:Week;6.请设定乘员定额:Ration; p-FreeTicket=p-7.请设定一等舱的价格:Price0;8.请设定二等舱的价格:Price1;9.请设定三等
4、舱的价格:Price2;ReplName=new Replace;CustName=new Customer;CustName-next=NULL;ReplName-ReplacePas=0; rear-next=p; rear=p;设置成功!* /*coutnext & strcmp(p-next-FlightNum,FlightNum) p=p-next; q=p- if (q=NULL)对不起,不存在此航班号,请核实您的信息! else以下是您所查的车次信息:* 1.航班号:q-FlightNum* 2.飞机号:PlaneNum* 3.起点站:From* 4.目的地:Des* 5.飞机周
5、日:Week* 6.成员定额:Ration* 7.剩余票数:FreeTicket张* 8.候补乘客数:ReplacePas人* 9.一等舱的价格:Price0元* 10.二等舱的价格:Price1* 11.三等舱的价格:Price2 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
6、】退出 * cin switch(i) case 1:cout case 2:2.请输入飞机号: case 3:3.请输入起始站: case 4:4.请输入目的地: case 5:5.请输入飞机周日: case 6:6.请输入乘员定额: Customer_Number=q-Ration-q-FreeTicket;FreeTicket=q-Ration-Customer_Number; case 7:7.请输入一等舱的价格: case 8:8.请输入二等舱的价格: case 9:9.请输入三等舱的价格: case 10:a=0; break; default:对不起,请选择正确的操作! void
7、 FlightBuyticket() /订票 int Ticket_Amount; void Buyticket(PFlight ,int ); void Buyreplace(PFlight ,int ,int ); int i=2;请输入目的地:Des,Des) while(i! cout请输入需要购买的票数:Ticket_Amount; while(Ticket_Amount=0 & Ticket_Amount0) cout if (Ticket_AmountFreeTicket) Buyticket(q,Ticket_Amount); else int n;抱歉!剩余票数小于定票数,是
8、否需要列入候补名单?(【按1】是 【按2】否)n; Buyreplace(q,Ticket_Amount,n);void FlightCancelticket() /退票 Customer *h,*j; char FlightNum6; char Customer_Name10; int Replace1_Amount; /候补第一个人的定票数 int i;*请输入需要退定的航班号: p=head; while (i!=2)请输入所查姓名:Customer_Name; h=q-CustName; while (h-strcmp(h-Name,Customer_Name) h=h- j=h- i
9、f(j=NULL)对不起,查无此人,请核实您的信息! if(j-next=NULL) /当删除最后一个结点 Cusrear=h; h-next=h- q-FreeTicket+=j-Amount; delete j;退票成功! if(q-next!=NULL) Replace1_Amount=q- if (Replace1_Amount Customer *Cus2; Cus2=new Customer; Cus2-SeatNum=q-FreeTicket+1; strcpy(Cus2-FlightNum, q-FlightNum );Name, rep-Name );Amount=rep-L
10、evel=rep-Level; coutName舱位等级为:Level(1一等舱,2二等舱,3三等舱)座位号为: for(int i=1;iAmount);i+) coutNo.SeatNum+ Cusrear=q- Cusrear-next=Cus2; Cusrear=Cus2; else q-FreeTicket-=rep-next=q-ReplacePas-; delete rep; 【按1】返回主菜单,或按任意键返回【继续退票操作】!void Flightclean()/清空 head-next=rear-系统已经清空!void Buyticket(PFlight q,int Ticket_Amount) /买票 int n=Ticket_Amount; Customer *Cus2; Cus2=new Customer; Cus2- strcpy(Cus2-FlightNu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1