数据结构课程设计
tag=0;
cout<<\请输入航班号:\ cin>>answer;
if(Find_Line(Head,answer,p1,Flight_No)) //调用航线查找函数,若存在则进行以下操作 {
while(1) //数据合法性检验 {
cout<<\请输入定票数:\ cin>>Ticket_Count; if(Ticket_Count==0) {
cout<<\请输入大于零的数,按任意键继续输入.\
getch(); } else break; }
if(p1->Free_Amount>=Ticket_Count) {
Customer_Count++; //定票乘客总数增1
flag=1; //表明进入了订票实际操作
26
数据结构课程设计
IsRepl=1; //定票量满足,无需进入候补操作
Amount=p1->Free_Amount; //记录剩余票数
if(p1->CustName==NULL) //首个定票乘客,并记录相关属性 {
Custp1[Flight_No]=p2=new Customer; //建立该航线的首位乘客结点
p1->CustName=Custp1[Flight_No]; }
else //建立该航线的后续乘客结点 {
p2=new Customer; Custp1[Flight_No]->Next=p2; Custp1[Flight_No]=p2; }
IsEmpty=0; //定票乘员不为空
Custp1[Flight_No]->Amount=Ticket_Count; //订票数
Seat_No=p1->Customer_Amount-p1->Free_Amount+1; //算出座位号
Custp1[Flight_No]->Seat_No=Seat_No;
27
数据结构课程设计
//赋座位号
p1->Free_Amount-=Ticket_Count; //减去定票数
cout<<\请输入你的姓名:\ cin>>Custp1[Flight_No]->Name;
while(1) //数据合法性检验
{
cout<<\请输入舱位等级(1-3):\ cin>>Custp1[Flight_No]->Rank;
if(!(Custp1[Flight_No]->Rank>='1'&&Custp1[Flight_No]->Rank<='3')) {
cout<<\输入出错,请输入1-3之间的数,按任意键继续输入.\
getch(); } else break; }
cout<<\您的座位号为:\
if(Ticket_Count<10) //为显示规整,作相应处理
cout<<\ else
28
数据结构课程设计
cout<<\
for(i=1;i<=Ticket_Count;i++) //打印座位号 {
cout< cout<<\ } cout< cout<<\ IsRepl=0; } else { cout<<\\ IsRepl=0; } if(!IsRepl) { cout<<\ cin>>temp; if(temp=='y'||temp=='Y')// 满足定票数 对不起,该航线的票已经全部售完!\对不起,该航线的剩余票额数少于你的订票数。是否列入该航线候补乘客名单(Y/N)?\以下为候补操作 29 数据结构课程设计 { if(p1->ReplName==NULL) { Replp1[Flight_No]=p3=new Replace; //建立该航线的首位候补乘客结点 p1->ReplName=Replp1[Flight_No]; } else { p3=new Replace; Replp1[Flight_No]->Next=p3; Replp1[Flight_No]=p3; } IsReplace=0; //候补乘客不为空 tag=1; //已选择列入候补乘客名单 Replp1[Flight_No]->Amount=Ticket_Count; cout<<\请输入你的姓名:\ cin>>Replp1[Flight_No]->Name; Replp1[Flight_No]->Seat_No=Seat_No; //候补乘客的座位 Replp1[Flight_No]->Amount=Ticket_Count; //候补乘客的订票数 while(1) //据合法性检验 { 数30