飞机订票系统_数据结构_数据结构航空订票系统
飞机订票系统_数据结构由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构航空订票系统”。
///////////////////////////////////////////////////////////////////// #include #include #include cla Customer
//已定票乘客信息 { public:
};char Name[10];
//姓名 int Amount;
//定票数 int Level;
//舱位等级 int SeatNum;
//座位号
char FlightNum[10];
//所定航班号
Customer *next;
cla Replace
//替补乘客信息 { public: char Name[10];
//姓名
int Amount;
//定票数 int Level;
//舱位等级
char FlightNum[10];
//所定航班号
Replace *next;
};
cla Flight
//航线信息 { public:
};cla Star { public: Flight(){Ration=0;} char Des[10];
//终点站名 char FlightNum[10];
//航班号 char PlaneNum[10];
//飞机号 char Week;
//飞行周日 int Ration;
//乘员定额 int FreeTicket;
//剩余票数 float Price[3];
//舱位等级的价格 int ReplacePas;
//候补乘客数
Replace *ReplName;
//该航班的候补乘客名单
Customer *CustName;
//该航班的已定票乘客名单 Flight *next;
//指示下一航线结点
void MainMenu();void setcolor(unsigned short color);void FlightInsert();void FlightDelete();void FlightLookup();void FlightRework();void FlightBuyticket();void FlightCancelticket();void Buyreplace(Flight *q,int Ticket_Amount,int n);void Buyticket(Flight *q,int Ticket_Amount);void Flightclean();private: int Ration;
//乘客总数
Flight *head;
//建立航线头结点
Flight *rear;
//建立航线尾结点
Customer *Cusrear;
Replace *Reprear;};
void Star:: MainMenu(){
head=new Flight;rear=head;char i='0';while(i!='8'){
setcolor(10);cout
**************************航空公司客运定票系统
*************************“
cout
*
*”
cout
*
1、增加航线
5、预订机票
*“
cout
*
cout
*
2、查询航线
6、退订机票
*”
cout
*
*“
cout
*
3、修改航线
7、清空系统
*”
cout
*
*“
cout
*
4、删除航线
8、退出系统
*”
cout
*
cout
***********************************************************************“
cin>>i;system(”cls“);switch(i){ case '1':FlightInsert();break;
case '2':FlightLookup();break;
case '3':FlightRework();break;
}
} case '4':FlightDelete();break;case '5':FlightBuyticket();break;case '6':FlightCancelticket();break;case '7':Flightclean();break;case '8':;break;default:cout
void Star:: FlightInsert()
//航班插入 { setcolor(15);
Flight *p;
p=new Flight;
cout
cin>>p->Des;
cout
cin>>p->FlightNum;
cout
cin>>p->PlaneNum;
cout
cin>>p->Week;
cout
cin>>p->Ration;
p->FreeTicket=p->Ration;
cout
cout
cin>>p->Price[0];
cout
cin>>p->Price[1];
cout
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;
p->next=NULL;}
void Star:: FlightDelete()
//删除航班 {
setcolor(15);//米白 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){
if(q->next==NULL){
//当删除rear所指向的结点
rear=p;}
p->next=p->next->next;
delete q;
}
else
{ } cout
}
} cout
1、退出
2、继续”>i;void Star:: FlightLookup()
//查询航班 {
setcolor(15);//米白 Flight *p,*q;char FlightNum[10];p=head;int i=0;while(i!=1){
} cout>FlightNum;while(p->next&&strcmp(p->next->FlightNum,FlightNum)){ p=p->next;} q=p->next;if(q==NULL){ cout
coutFlightNumPlaneNumDesWeekRationFreeTicketReplacePasPrice[0]Price[1]Price[2]
1、返回主菜单
2、继续“>i;}
void Star:: FlightRework()
//修改航线信息 {
setcolor(15);//米白 int Customer_Number;Flight *p,*q;char FlightNum[10];char i='0';p=head;cout>FlightNum;while(p->next&&strcmp(p->next->FlightNum,FlightNum)){ p=p->next;} q=p->next;if(q==NULL){ cout
{setcolor(10);
cout
*****请输入需要修改的数据*****”
cout
*
1、航班号
2、飞机号
*“
cout
*
3、目的地
4、飞行周日
*”
*
5、成员定额
6、头等舱价格*“
*
7、普通舱价格
8、经济舱价格*” cout * 9、退出 *“ cout ******************************” cin>>i; switch(i){ setcolor(15);//米白 case '1':cout>q->FlightNum;break;case '2':cout cin>>q->PlaneNum;break; case '3':cout cin>>q->Des;break; case '4':cout cin>>q->Week;break; case '5':coutRation-q->FreeTicket; cin>>q->Ration;q->FreeTicket=q->Ration-Customer_Number;break; case '6':cout cin>>q->Price[0];break; case '7':cout cin>>q->Price[1];break; case '8':cout cin>>q->Price[2];break; case '9': break; default:cout } void Star:: FlightBuyticket()//订票 { setcolor(15);//米白 int Ticket_Amount;Flight *p,*q;char Des[10];int i=2;while(i!=1){ cout>Des; } } } p=head; while(p->next&&strcmp(p->next->Des,Des)) { } p=p->next;q=p->next;if(q==NULL){ } else { while(i!=1){ cout>Ticket_Amount;while(Ticket_Amount==0){ cout } } } } cin>>Ticket_Amount;} if(Ticket_AmountFreeTicket){ Buyticket(q,Ticket_Amount);} else { int n;cout 1、是 2、cin>>n;Buyreplace(q,Ticket_Amount,n);否)“ 1、返回主菜单 2、继续”>i; void Star::setcolor(unsigned short color){ } HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,color); void Star:: FlightCancelticket() //退票 { setcolor(15);Flight *p,*q; Customer *h,*j;char FlightNum[6];char Customer_Name[10];int Replace1_Amount; //候补第一个人的定票数 int i;while(i!=1){ cout>FlightNum;p=head; while(p->next&&strcmp(p->next->FlightNum,FlightNum)){ p=p->next;} q=p->next;if(q==NULL){ } else { while(i!=2){ cout>Customer_Name;h=q->CustName;while(h->next&&strcmp(h->next->Name,Customer_Name)){ h=h->next;} j=h->next;if(j==NULL){ cout if(j->next==NULL){ //当删除最后一个结点 Cusrear=h;} h->next=h->next->next;q->FreeTicket+=j->Amount;delete j; coutReplName->next!=NULL){ Replace1_Amount=q->ReplName->next->Amount;if(Replace1_AmountFreeTicket){ Replace *rep; rep=q->ReplName->next; Customer *Cus2;Cus2=new Customer; Cus2->SeatNum=q->Ration-q->FreeTicket+1;cout } } } } } strcpy(Cus2->FlightNum, q->FlightNum); strcpy(Cus2->Name, rep->Name);Cus2->Amount=rep->Amount;Cus2->Level=rep->Level; coutName for(int i=1;iAmount);i++){ } cout if(q->CustName->next==NULL){ Cusrear=q->CustName;Cusrear->next=Cus2;Cusrear=Cus2; coutSeatNum++ 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;} cout 2、退出“>i;} cout 1、返回主菜单”>i; void Star:: Flightclean(){setcolor(15);//米白 head->next=rear->next;cout void Star:: Buyticket(Flight *q,int Ticket_Amount) //买票 { setcolor(15);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>Cus2->Name;cout>Cus2->Level;cout coutSeatNum++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 Star:: Buyreplace(Flight *q,int Ticket_Amount,int n){ Replace *Rep2;Rep2=new Replace;if(n==1){ //进入候补队列 q->ReplacePas+=Ticket_Amount-q->FreeTicket;Buyticket(q,q->FreeTicket);strcpy(Rep2->FlightNum,q->FlightNum);Rep2->Amount=Ticket_Amount-q->Ration;cout>Rep2->Name;cout 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 main()//主程序 { } //Cusrear=new Customer;//Reprear=new Replace;//head=rear=new Flight;//head->next=NULL;Star a;a.MainMenu();} }