#include
#include
void FlightInsert(); //增加路线
void FlightDelete();//删除路线
void FlightLookup();//航班查询
void FlightRework();//航班路线修改
void FlightBuyticket();//买票
void FlightCancelticket();//取消订票
void Flightclean();//清空
void MainMenu();//主函数
void Display();//显示订票信息
typedef struct Customer //已定票乘客信息
{
char Name[10]; //姓名
int Amount; //定票数
int Level; //舱位等级
int SeatNum; //座位号
char FlightNum[10]; //所定航班号
struct Customer *next;
}Customer;
typedef struct Replace //侯补乘客信息
{
char Name[10]; //姓名e
int Amount; //定票数
int Level; //舱位等级
char FlightNum[10]; //所定航班号
struct Replace *next;
}Replace;
typedef struct Flight //航班路线信息
{
char From[10]; //起点站名
char Des[10]; //终点站名
char FlightNum[10]; //航班号
char PlaneNum[10]; //航班
char Week[20]; //飞机周日
int Ration; //乘员定额
int FreeTicket; //剩余票数
float Price[3]; //票价
int ReplacePas; //候补乘客数
Replace *ReplName; //该航班的候补乘客名单
Customer *CustName; //该航班的已定票乘客名单
struct Flight *next; //指示下一航班路线结点
}Flight,*PFlight;
int Ration=0; //乘客总数
Flight *head; //建立航班路线头结点
Flight *rear; //建立航班路尾结点
Customer *Cusrear;
Replace *Reprear;
void MainMenu()
{
int i=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)
{
case 1:
FlightInsert();
break; //增加航班路线
case 2:
FlightLookup();
break; //查询航班路线
case 3:
FlightRework();
break; //修改航班路线
case 4:
FlightBuyticket();
break; //预订飞机票
case 5:
FlightCancelticket();
break; //退订飞机票
case 6:
Flightclean();
break; //清空系统
case 7:
Display();
break;
case 8:;break;
default:
cout<<"*提示:抱歉,请选择正确的操作!"<
cout<
cout<
break;
}
}
}
void FlightInsert() //航班录入
{
/*int i=2;
while(i!=1)
{*/
Flight *p;
p=new Flight;
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=new Replace;
p->CustName=new Customer;
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;
}*/
}
void FlightLookup() //查询航班号
{
Flight *p,*q;
char FlightNum[10];
p=head;
int i=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<
}
}
void FlightRework() //修改航班路线信息
{
int Customer_Number ;
Flight *p,*q;
char FlightNum[10];
int i=0;
int a=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)
{
case 1:cout<<"1.请输入航班号:"<
cin>>q->FlightNum;break;
case 2:cout<<"2.请输入飞机号:"<
cin>>q->PlaneNum;break;
case 3:cout<<"3.请输入起始站:"<
cin>>q->From;break;
case 4:cout<<"4.请输入目的地:"<
cin>>q->Des;break;
case 5:cout<<"5.请输入飞机周日:"<
cin>>q->Week;break;
case 6:cout<<"6.请输入乘员定额:"<
Customer_Number=q->Ration-q->FreeTicket;
cin>>q->Ration;q->FreeTicket=q->Ration-Customer_Number;break;
case 7:cout<<"7.请输入一等舱的价格:"<
cin>>q->Price[0];break;
case 8:cout<<"8.请输入二等舱的价格:"<
cin>>q->Price[1];break;
case 9:cout<<"9.请输入三等舱的价格:"<
cin>>q->Price[2];break;
case 10:a=0;
break;
default:cout<<"*提示:对不起,请选择正确的操作!"<
cout<
cout<
break;
}
}
}
}
void FlightBuyticket() //订票
{
int Ticket_Amount;
void Buyticket(PFlight ,int );
void Buyreplace(PFlight ,int ,int );
Flight *p,*q;
char Des[10];
int i=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
{
int n;
cout<<"*提示:抱歉!剩余票数小于定票数,是否需要列入候补名单?(【按1】是 【按2】否)"<
cin>>n;
Buyreplace(q,Ticket_Amount,n);
}
cout<
cout<<"【按1】返回主菜单 【按2】继续"<
cin>>i;
}
}
}
}
void FlightCancelticket() //退票
{
void Buyticket(PFlight ,int );
Flight *p,*q;
Customer *h,*j;
char FlightNum[6];
char Customer_Name[10];
int Replace1_Amount; //候补第一个人的定票数
int i;
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;
delete j;
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=new Customer;
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<<"舱位等级为:"<
cout<<"座位号为:"<
for(int i=1;i<=(rep->Amount);i++)
{
cout<<"No."<
}
cout<
if (q->CustName->next==NULL)
{
Cusrear=q->CustName;
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
else
{
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
q->FreeTicket-=rep->Amount;
q->ReplName->next=q->ReplName->next->next;
q->ReplacePas--;
delete rep;
}
}
}
break;
}
}
cout<<"【按1】返回主菜单,或按任意键返回【继续退票操作】!"<
cout<
cin>>i;
}
}
void Flightclean()//清空
{
head->next=rear->next;
cout<<"*提示:系统已经清空!"<
cout<
}
void Buyticket(PFlight q,int Ticket_Amount) //买票
{
int n=Ticket_Amount;
Customer *Cus2;
Cus2=new Customer;
Cus2->SeatNum=q->Ration-q->FreeTicket+1;
strcpy(Cus2->FlightNum, q->FlightNum );
Cus2->Amount=Ticket_Amount;
cout<<"1.请输入姓名:"<
cin>>Cus2->Name;
cout<<"2.请输入购买票的类型:"<
cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<
cin>>Cus2->Level;
cout<<"*提示:订票成功!"<
cout<
cout<<"舱位等级:"<<" "<
cout<<"座位号为:"<
for(int i=1;i<=Ticket_Amount;i++)
{
cout<<"No."<
}
cout<
if (q->CustName->next==NULL)
{
Cusrear=q->CustName;
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
else{
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
q->FreeTicket-=Ticket_Amount;
}
void Buyreplace(PFlight q,int Ticket_Amount,int n) //进入候补队列
{
Replace *Rep2;
Rep2=new Replace;
if(n==1)
{
q->ReplacePas+=Ticket_Amount;
strcpy(Rep2->FlightNum,q->FlightNum);
Rep2->Amount=Ticket_Amount;
cout<<"1.请输入姓名:"<
cin>>Rep2->Name;
cout<<"2.请输入购买票的类型:"<
cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<
cin>>Rep2->Level;
if(q->ReplName->next==NULL)
{
Reprear=q->ReplName;
Reprear->next=Rep2;
Reprear=Rep2;
Reprear->next=NULL;
}
else{
Reprear->next=Rep2;
Reprear=Rep2;
Reprear->next=NULL;
}
}
}
void Display()//显示订票信息
{
cout<<"*提示:抱歉,该项目还在开发!"<
cout<
int i;
cout<<"【按1】返回至主菜单"<
cin>>i;
while(i=1)
{
break;
}
/*Customer *h,*j;
char Customer_Name[10];
int i;
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
{
cout<<
}*/
//Customer *p;
//cout<<"已买票的乘客有:"<
//cout<
//cout<<"姓名:"<
//cout<<"舱位等级:"<
//Flight *q;
//char FlightNum[10];
//cout<<"以下是您所查的车次信息:"<
//cout<<"************************"<
//cout<<"* 姓名: "<
//cout<<"* 航班号: "<
//cout<<"* 飞机号: "<
//cout<<"* 起点站: "<
//cout<<"* 目的地: "<
//cout<<"* 飞机周日: "<
//cout<<"* 舱位等级: "<
}
******************************************************************************************************
#include "AirLineSystem.h"
#include
void main() //主程序
{
Cusrear=new Customer;
Reprear=new Replace;
head=rear=new Flight;
head->next=NULL;
MainMenu();
}
¥29.8
¥9.9
¥59.8