C++航空客运订票系统 第4页
cout<<"\n\t\t\t 请输入普通舱票价:";
cin>>p2->Price[1];
cout<<"\n\t\t\t 请输入经济舱票价:";
cin>>p2->Price[2];
p2->Free_Amount=p2->Customer_Amount; //剩余票数与乘员定额相同
p2->CustName=NULL; //该航线定票乘客头指针为空
p2->ReplName=NULL; //初始候补名单为空
if(Continue()=='n')
{
p2->Next=NULL; //航线的下一结点为空
return;
}
}
}若图片无法显示请联系QQ752018766,本论文免费,转发请注明源于www.youerw.com
int Empty_Flight()//航线是否为空函数
{
if(Head==NULL)
{
cout<<"\n\n\n\n\n\n\n\n\t\t 对不起,没有相关航线。按任意键返回..."<<endl;
getch();
return 1;
}
else
return 0;
}
void Line_See()//航线查看函数
{
int Day;
Flight *p1;
p1=Head;
char *Week_Day[]={"星期一","星期二","星期三","星期四","星期五","星期优","星期日"};
if(Empty_Flight()) //航班线为空
return;
prefix("航班查看");
while(p1!=NULL)
{
Day=p1->Week_Day-'0'-1; //数字转换相应星期数
cout<<"\n\t\t\t 终点站名:"<<p1->Des_Name<<endl;
cout<<"\n\t\t\t 航 班 号:"<<p1->Flight_No<<endl;
cout<<"\n\t\t\t 飞 机 号:"<<p1->Plane_No<<endl;
cout<<"\n\t\t\t 飞行周日:"<<Week_Day[Day]<<endl;
cout<<"\n\t\t\t 乘员定额:"<<p1->Customer_Amount<<endl;
cout<<"\n\t\t\t 剩余票数:"<<p1->Free_Amount<<endl;
cout<<"\n\t\t\t 票 价:头舱 "<<p1->Price[0]<<endl;
cout<<"\n\t\t\t 普舱 "<<p1->Price[1]<<endl;
cout<<"\n\t\t\t 经舱 "<<p1->Price[2]<<endl;
p1=p1->Next;
if(p1!=NULL)
cout<<"继续查看航班信息!"<<endl;
}
cout<<" 航班信息查看完毕!"<<endl;
cout<<"\n\t\t\t 按任意键返回子菜单..."<<endl;
getch();
}
void Sub1Menu()
{
char *MenuItem[]={"&& 航空客运航线管理子菜单 &&","& &[1]. 航 线增 设 & &","& &[2]. 航 线 查 看 & &","& &[3]. 返 回主 菜 单 & &"};
while(1)
switch(ModelMenu(MenuItem,4))
{
case '1':{Line_Add();break;}
case '2':{Line_See();break;}
case '3':{return;}
}
}
void Sub2Menu()//订票办理函数
{
int Ticket_Count,Seat_No,i,flag=0;
int Flight_No=0; //记录满足条件的航线的定票结点
Flight *p1; //记下满足条件的航线结点地址
Customer *p2; //临时性定票乘员结点
Replace *p3; //临时性候补乘员结点
char answer[7]; //用户输入的航班数据
char temp;
int tag=0; //候补乘客标志位
int Amount;
int IsRepl=0; //是否执行候补操作标志位
if(Empty_Flight()) //航班线为空
return;
while(1)
{
prefix("订票办理");
flag=0; //标志位清零以重新作出判断
Flight_No=0;
tag=0;
cout<<"\n\t\t\t 请输入航班号:";
cin>>answer;
if(Find_Line(Head,answer,p1,Flight_No)) //调用航线查找函数,若存在则进行以下操作
{
while(1) //数据合法性检验
{
cout<<"\n\t\t\t 请输入定票数:";
cin>>Ticket_Count;
if(Ticket_Count==0)
{
cout<<"\n\t\t\t请输入大于零的数,按任意键继续输入."<<endl;
getch();
}
else
break;
}
if(p1->Free_Amount>=Ticket_Count)
{
Customer_Count++; //定票乘客总数增1
flag=1; //表明进入了订票实际操作
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;
if(!(Custp1[Flight_No]->Rank>='1'&&Custp1[Flight_No]->Rank<='3'))
{
cout<<"\n\t\t输入出错,请输入1-3之间的数,按任意键继续输入."<<endl;
getch();
}
else
break;
}
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页