航空订票系统代码

合集下载

航空订票系统代码

航空订票系统代码

航空订票系统代码集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)#include <iostream.h>#include <string.h>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]; //姓名eint 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<<endl;cout<<" ***************【欢迎使用航空订票系统】***************"<<endl;cout<<" "<<endl;cout<<" ***************【按1】增加航班路线***************"<<endl;cout<<" "<<endl;cout<<" ***************【按2】查询航班路线***************"<<endl;cout<<" "<<endl;cout<<" ***************【按3】修改航班路线***************"<<endl;cout<<" "<<endl;cout<<" ***************【按4】预订飞机票***************"<<endl;cout<<" "<<endl;cout<<" ***************【按5】退订飞机票***************"<<endl;cout<<" "<<endl;cout<<" ***************【按6】清空系统***************"<<endl;cout<<" "<<endl;cout<<" ***************【按7】已订票名单***************"<<endl;cout<<" "<<endl;cout<<" ***************【按8】退出系统***************"<<endl;cout<<" "<<endl;cout<<" *提示:当前为主菜单"<<endl;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<<"*提示:抱歉,请选择正确的操作!"<<endl;cout<<endl;cout<<endl;break;}}}void FlightInsert() //航班录入{/*int i=2;while(i!=1){*/Flight *p;p=new Flight;cout<<"****正在设定新的路线****"<<endl; cout<<endl;cout<<"1.请设定起点站名:"<<endl; cin>>p->From;cout<<"2.请设定终点站名:"<<endl; cin>>p->Des;cout<<"3.请设定航班号:"<<endl;cin>>p->FlightNum;cout<<"4.请设定飞机号:"<<endl;cin>>p->PlaneNum;cout<<"5.请设定飞行周日:"<<endl; cin>>p->Week;cout<<"6.请设定乘员定额:"<<endl; cin>>p->Ration;p->FreeTicket=p->Ration;cout<<"7.请设定一等舱的价格:"<<endl; cin>>p->Price[0];cout<<"8.请设定二等舱的价格:"<<endl; cin>>p->Price[1];cout<<"9.请设定三等舱的价格:"<<endl; 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<<"设置成功!"<<endl;cout<<"***********************"<<endl;cout<<endl;/*cout<<"【按1】返回主菜单【按2】继续"<<endl;cin>>i;}*/}void FlightLookup() //查询航班号{Flight *p,*q;char FlightNum[10];p=head;int i=0;while (i!=1){cout<<"请输入需要查询的航班号:"<<endl;cin>>FlightNum;while (p->next && strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班号,请核实您的信息!"<<endl;}else{cout<<"以下是您所查的车次信息:"<<endl;cout<<"************************"<<endl;cout<<"* 1.航班号: "<<q->FlightNum<<endl;cout<<"* 2.飞机号: "<<q->PlaneNum<<endl;cout<<"* 3.起点站: "<<q->From<<endl;cout<<"* 4.目的地: "<<q->Des<<endl;cout<<"* 5.飞机周日: "<<q->Week<<endl;cout<<"* 6.成员定额: "<<q->Ration<<endl;cout<<"* 7.剩余票数: "<<q->FreeTicket<<"张"<<endl;cout<<"* 8.候补乘客数: "<<q->ReplacePas<<"人"<<endl;cout<<"* 9.一等舱的价格: "<<q->Price[0]<<"元"<<endl;cout<<"* 10.二等舱的价格: "<<q->Price[1]<<"元"<<endl;cout<<"* 11.三等舱的价格: "<<q->Price[2]<<"元"<<endl;cout<<"************************"<<endl;}cout<<"您还需要其他的操作么?"<<endl;cout<<endl;cout<<"【按1】返回主菜单【按2】继续操作"<<endl;cin>>i;cout<<"************************"<<endl;cout<<endl;}}void FlightRework() //修改航班路线信息{int Customer_Number ;Flight *p,*q;char FlightNum[10];int i=0;int a=1;p=head;cout<<"请输入需要修改的航班:"<<endl;cin>>FlightNum;while (p->next&&strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while(a){cout<<" *******【请输入需要修改的数据】*******"<<endl;cout<<" "<<endl;cout<<" 【按1】航班号"<<endl;cout<<" "<<endl;cout<<" 【按2】飞机号"<<endl;cout<<" "<<endl;cout<<" 【按3】起始站"<<endl;cout<<" "<<endl;cout<<" 【按4】目的地"<<endl;cout<<" "<<endl;cout<<" 【按5】每周出站日期"<<endl;cout<<" "<<endl;cout<<" 【按6】成员定额"<<endl;cout<<" "<<endl;cout<<" 【按7】一等舱的价格"<<endl;cout<<" "<<endl;cout<<" 【按8】二等舱的价格"<<endl;cout<<" "<<endl;cout<<" 【按9】三等舱的价格"<<endl;cout<<" "<<endl;cout<<" 【按10】退出"<<endl;cout<<" "<<endl;cout<<"**************************************"<<endl;cin>>i;switch(i){case 1:cout<<"1.请输入航班号:"<<endl;cin>>q->FlightNum;break;case 2:cout<<"2.请输入飞机号:"<<endl;cin>>q->PlaneNum;break;case 3:cout<<"3.请输入起始站:"<<endl;cin>>q->From;break;case 4:cout<<"4.请输入目的地:"<<endl;cin>>q->Des;break;case 5:cout<<"5.请输入飞机周日:"<<endl;cin>>q->Week;break;case 6:cout<<"6.请输入乘员定额:"<<endl;Customer_Number=q->Ration-q->FreeTicket;cin>>q->Ration;q->FreeTicket=q->Ration-Customer_Number;break;case 7:cout<<"7.请输入一等舱的价格:"<<endl;cin>>q->Price[0];break;case 8:cout<<"8.请输入二等舱的价格:"<<endl; cin>>q->Price[1];break;case 9:cout<<"9.请输入三等舱的价格:"<<endl;cin>>q->Price[2];break;case 10:a=0;break;default:cout<<"*提示:对不起,请选择正确的操作!"<<endl;cout<<endl;cout<<endl;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<<"请输入目的地:"<<endl;cin>>Des;p=head;while (p->next&&strcmp(p->next->Des,Des)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while(i!=1){cout<<"请输入需要购买的票数:"<<endl;cin>>Ticket_Amount;while(Ticket_Amount==0 && Ticket_Amount<0){cout<<"*提示:对不起,请输入正确的票数!"<<endl;cout<<endl;cout<<"请输入需要够买的票数:"<<endl;cin>>Ticket_Amount;}if (Ticket_Amount<=q->FreeTicket){Buyticket(q,Ticket_Amount);}else{int n;cout<<"*提示:抱歉!剩余票数小于定票数,是否需要列入候补名单?(【按1】是【按2】否)"<<endl;cin>>n;Buyreplace(q,Ticket_Amount,n);}cout<<endl;cout<<"【按1】返回主菜单【按2】继续"<<endl;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<<"**********************************"<<endl;while (i!=1){cout<<"请输入需要退定的航班号:"<<endl;cin>>FlightNum;p=head;while (p->next&&strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while (i!=2){cout<<"请输入所查姓名:"<<endl;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<<"*提示:对不起,查无此人,请核实您的信息!"<<endl;cout<<endl;}else{if(j->next==NULL){ //当删除最后一个结点Cusrear=h;}h->next=h->next->next;q->FreeTicket+=j->Amount;delete j;cout<<"*提示:退票成功!"<<endl;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<<"*提示:"<<endl;cout<<endl;cout<<"候补乘客:"<<rep->Name<<" 已经成功买票! "<<endl;cout<<endl;cout<<"航班号:"<<Cus2->FlightNum<<endl;cout<<"舱位等级为:"<<rep->Level<<"(1一等舱,2二等舱,3三等舱)"<<endl;cout<<"座位号为:"<<endl;for(int i=1;i<=(rep->Amount);i++){cout<<"No."<<Cus2->SeatNum++<<" ";}cout<<endl;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】返回主菜单,或按任意键返回【继续退票操作】!"<<endl;cout<<endl;cin>>i;}}void Flightclean()//清空{head->next=rear->next;cout<<"*提示:系统已经清空!"<<endl;cout<<endl;}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.请输入姓名:"<<endl;cin>>Cus2->Name;cout<<"2.请输入购买票的类型:"<<endl;cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<<endl;cin>>Cus2->Level;cout<<"*提示:订票成功!"<<endl;cout<<endl;cout<<"舱位等级:"<<" "<<Cus2->Level<<endl;cout<<"座位号为:"<<endl;for(int i=1;i<=Ticket_Amount;i++){cout<<"No."<<Cus2->SeatNum++<<" ";}cout<<endl;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.请输入姓名:"<<endl;cin>>Rep2->Name;cout<<"2.请输入购买票的类型:"<<endl;cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<<endl;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<<"*提示:抱歉,该项目还在开发!"<<endl;cout<<endl;int i;cout<<"【按1】返回至主菜单"<<endl;cin>>i;while(i=1){break;}/*Customer *h,*j;char Customer_Name[10];int i;while (i!=2){cout<<"请输入所查姓名:"<<endl;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<<"*提示:对不起,查无此人,请核实您的信息!"<<endl;cout<<endl;}else{cout<<}*///Customer *p;//cout<<"已买票的乘客有:"<<endl;//cout<<endl;//cout<<"姓名:"<<p->Name<<"航班号:"<<p->FlightNum<<"订票数:"<<p->Amount<<endl;//cout<<"舱位等级:"<<p->Level<<"座位号"<<p->SeatNum;//Flight *q;//char FlightNum[10];//cout<<"以下是您所查的车次信息:"<<endl;//cout<<"************************"<<endl;//cout<<"* 姓名: "<<q->Name<<endl;//cout<<"* 航班号: "<<q->FlightNum<<endl;//cout<<"* 飞机号: "<<q->PlaneNum<<endl;//cout<<"* 起点站: "<<q->From<<endl;//cout<<"* 目的地: "<<q->Des<<endl;//cout<<"* 飞机周日: "<<q->Week<<endl;//cout<<"* 舱位等级: "<<q->Level<<endl;}*************************************************************** ***************************************#include "AirLineSystem.h"#include<iostream.h>void main() //主程序{Cusrear=new Customer;Reprear=new Replace;head=rear=new Flight;head->next=NULL;MainMenu();}。

航空系统代码

航空系统代码
int grade;
ClientNode *next;
}ClientNode;
typedef struct {//已订票客户单链表(按ID有序)
ClientNode *client;
int length;
}ClientLink;
typedef struct WClientNode{//侍订票客户结点
if(!LF.flight){printf("无法找到指向航线结点的指针\n");exit(ERROR);}
LF.flight->airline="fuzhou--beijing"; //头结点赋值
LF.flight->client=CL1;
LF.flight->flight_no="FU127";
//形参number查看时输入的航班号
//引用航班顺序线性表LF
flightnode *p=LF.flight;
while(p){
if(number==p->number)break;//查看的航班号是否在LF的航班号里有
p=p->next;
if(!p){printf("申请不到航线结点\n");exit(ERROR);}
LF.flight->next=p;
ClientLink CL2;
InitList_CL(CL2);
WClientQueue WCQ2;
InitList_WCQ(WCQ2);
if(!CL.client)exit(ERROR);
CL.length=0;
CL.client->next=NULL;

c语言 航空订票系统代码

c语言 航空订票系统代码
return q;
}
void order()
/*办理订票业务*/
{ struct airline *info;
int amount,grade;
char name[10];
info=start;
if(!(info=find())) return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/
#include &quot;malloc.h&quot;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
}
void list()/*打印全部航线信息*/
{ struct airline *info;
int i=0;
info=start;
printf(&quot;终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n&quot;);
while(i&lt;MAXSIZE)
{
display(info);
char date[7];/*飞行日期(星期几)*/
int tkt_amt;/*乘员定额*/
int tkt_sur;/*余票量*/
linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/
linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/
{ printf(&quot;\n请输入您的姓名(排队订票客户):&quot;);

机票预订系统代码

机票预订系统代码

%<
>%
%<
>%
%<
>dt/<位座余剩>dt< >dt/<:点终>dt< >dt/<:点起>dt< >rt< >"FF0000#"=rolocredrob "espalloc :espalloc-redrob"=elyts "1"=gnicapsllec "%001"=htdiw "1"=redrob elbat< >dt< >rt< >rt/< >dt/<>tnof/<息信线航>"5"=ezis tnof<>"retnec"=ngila dt< >rt< >"000000#"=rolocredrob "espalloc :espalloc-redrob"=elyts "1 "=gnicapsllec "267"=htdiw "1"=redrob elbat< >retnec< >ydob< >daeh/< >eltit/<息信线航>eltit< >"2132bg=tesrahc ;lmth/txet"=tnetnoc "epyT-tnetnoC"=viuqe-ptth atem< >"nc-hz"=tnetnoc "egaugnaL-tnetnoC"=viuqe-ptth atem< >daeh< >lmth< >% )"naiXgnaH morF * tceleS"(etucexE.nnoc=sdr tes sd r m id %< >--"psa.nnoc"=eliF edulcni#-- !< >%639=egaPedoC "tpircSBV"=egaugnaL@ %< 码代线航看查 >lmth/< >retnec/< >ydob/< >elbat/< >rt/< >dt/< >p< >% f i dne %< >mrof/< >p/<>"4B"=eman "置重"=eulav "teser"=epyt tupni<>"3B"=eman "交提"=eulav "timbus"=epyt tupni< >rb<>"02"=ezis ;psbn& 密 "saPA"=eman "drowssap"=epyt tupni< � 码

航空订票系统代码

航空订票系统代码

Airline.h#pragma once#include<string>using std::string;#include<iostream>using std::istream;using std::ostream;#include<string>using std::endl;using std::cout;using std::cin;#include"DataStructure.h"#include"Passenger.h"class AirLine;ostream &operator<<(ostream &output ,const AirLine& line);class AirLine{friend void InitAirLine(AirLine *line);friend ostream &operator<<(ostream &output,const AirLine& line); public:AirLine(void);~AirLine(void);string GetEndPoint();int GetSeatNum(int);int GetSeatRemain(int);void SetSeatRemain(int num,int whickWeek);string GetFlightNum(void);void InsertPassenger(Passenger& temp);bool IsFly(int whichWeek) const;void InsertAwait(Passenger& temp);bool DeletePassenger(Passenger&);int IfAwaitBook(int tiNum, int whichWeek);private:string endPoint;string flightNum;string airNum;bool week[8];int seatNum[8];int seatRemain[8];MyList<Passenger> pList;MyQueue<Passenger> pQueue;};Airline.cpp#include"AirLine.h"AirLine::AirLine(void){for(int i=0;i<8;i++)week[i]=false;}AirLine::~AirLine(void){}string AirLine::GetEndPoint(){return endPoint;}ostream &operator<<(ostream &output,const AirLine &line){output<<"终点站: "<<line.endPoint<<"\n\n"<<"航班号: "<<line.flightNum<<"\n\n"<<"飞机号: "<<line.airNum<<"\n\n"<<"剩余票数:\n";for(int i=1;i<8;i++)if(line.IsFly(i))output<<"周"<<i<<" "<<line.seatRemain[i]<<endl;string weekName[8]={" ","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sund ay"};output<<"飞行日:";for(int i=1;i<8;i++)if(line.week[i])output<<weekName[i]<<"\t";cout<<endl;return output;}int AirLine::GetSeatNum(int whichWeek){return seatNum[whichWeek];}int AirLine::GetSeatRemain(int whichWeek){return seatRemain[whichWeek];}void AirLine::SetSeatRemain(int num,int whichWeek) {seatRemain[whichWeek]-=num;}string AirLine::GetFlightNum(void){return flightNum;}void AirLine::InsertPassenger(Passenger& temp) {pList.InsertNode(temp);}bool AirLine::IsFly(int whichWeek) const{return week[whichWeek];}void AirLine::InsertAwait(Passenger& temp){pQueue.EnQueue(temp);}bool AirLine::DeletePassenger(Passenger& temp) {seatRemain[temp.GetWeek()]+=temp.GetTickets();return pList.DeleteNode(temp);}int AirLine::IfAwaitBook(int tiNum, int whichWeek) {if(pQueue.Empty())return 0;Passenger node,tnode;MyQueue<Passenger> tempQueue;while(!pQueue.Empty()){pQueue.DnQueue(node);if(node.GetTickets()<tiNum&&node.GetWeek()==whichWeek) break;tempQueue.EnQueue(node);}while(!tempQueue.Empty()){tempQueue.DnQueue(tnode);pQueue.EnQueue(tnode);}if(node.GetTickets()<tiNum&&node.GetWeek()==whichWeek) return node.GetTickets();elsereturn 0;}Passenger.h#pragma once#include<string>using std::string;enum TicketGrade{AA,BB,CC};class Passenger{public:~Passenger(void);Passenger(const string &passengerName=" ",int tick=0,int g=1,int w=1);bool operator==(Passenger & d);int GetTickets();int GetWeek();private:string name;int tickets;TicketGrade grade;int flightWeek;};Passenger.cpp#include"Passenger.h"Passenger::~Passenger(void){}Passenger::Passenger(const string &passengerName,int tick,int g,int w) {name=passengerName;tickets=tick;switch(g){case 1:grade=AA;break;case 2:grade=BB;break;case 3:grade=CC;break;default:break;}flightWeek=w;}bool Passenger::operator==(Passenger & d){if(d.tickets!=tickets)return false;if(!=name)return false;if(d.flightWeek!=flightWeek)return false;if(d.grade!=grade)return false;return true;//TODO: insert return statement here }int Passenger::GetTickets(){return tickets;}int Passenger::GetWeek(){return flightWeek;}DataStructure.h#include<cstdlib>//LQNode classtemplate<typename T>class MyList;template<typename T>class MyQueue;template<typename T>class LQNode{friend class MyList<T>;friend class MyQueue<T>;public:LQNode();LQNode(T);~LQNode();private:T data;LQNode<T> *next;};template<typename T> LQNode<T>::LQNode(){//data=T(0);next=NULL;}template<typename T> LQNode<T>::LQNode(T node) {data=node;next=NULL;}template<typename T> LQNode<T>::~LQNode(){}//MyList classtemplate<typename LT> class MyList{public:MyList();~MyList();void InsertNode(LT &);bool DeleteNode(LT &);private:LQNode<LT> *head;};template<typename LT> MyList<LT>::MyList(){head=new LQNode<LT>;head->next=NULL;}template<typename LT>MyList<LT>::~MyList(){}template<typename LT>void MyList<LT>::InsertNode(LT &temp){LQNode<LT> *node=new LQNode<LT>(temp);node->next=head->next;head->next=node;}template<typename LT>bool MyList<LT>::DeleteNode(LT &temp){LQNode<LT> *p,*q;p=head->next;q=head;while(p!=NULL){if(p->data==temp){q->next=p->next;free(p);return true;}q=p;p=p->next;}return false;}//MyQueue classtemplate<typename QT>class MyQueuepublic:MyQueue();~MyQueue();void EnQueue(QT &);void DnQueue(QT &);bool Empty();private:LQNode<QT> *front;LQNode<QT> *rear;};template<typename QT>MyQueue<QT>::MyQueue(){front=rear=new LQNode<QT>;}template<typename QT>MyQueue<QT>::~MyQueue(){}template<typename QT>void MyQueue<QT>::EnQueue(QT &temp){LQNode<QT> *node=new LQNode<QT>(temp);rear->next=node;node->next=NULL;rear=rear->next;}template<typename QT>void MyQueue<QT>::DnQueue(QT &temp){if(Empty())cout<<"对空"<<endl;elsetemp=front->next->data;return;}template<typename QT>bool MyQueue<QT>::Empty()return front->next==NULL;}Main.cpp#include"AirLine.h"#include<iostream>using std::cout;using std::cin;using std::endl;#include<iomanip>using std::setw;using std::setfill;void InitAirLine(AirLine *line);void InquireAirLine(AirLine* line);void BookTicket(AirLine *line);void ReturnTicket(AirLine *line);void IfAwait(AirLine &line,int tiNum,int whichWeek);void TransactBookTicket(AirLine &line,int tiNum,int whichWeek);void IfBookTicket(AirLine *line,string fiNum,int tiNum,int whichWeek); bool IsQuit();const int size=7;const int maxSeatNum=120;int main(){AirLine line[size];int select;InitAirLine(line);bool flag=false;while(!flag){cout<<"-------------------------------------------------------------------"<<endl;cout<<" 航空客运订票系统"<<endl;cout<<" 1 查询航线"<<endl<<" 2 订票业务"<<endl<<" 3 退票业务"<<endl;cout<<"-------------------------------------------------------------------"<<endl;cin>>select;while(cin.fail()||select<1||select>3){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>select;}switch(select){case 1:InquireAirLine(line);break;case 2:BookTicket(line);break;case 3:ReturnTicket(line);break;default:cout<<"error";break;}system("pause");flag=IsQuit();system("cls");}return 0;}bool IsQuit(){char change;cout<<"是否退出该系统Y/y是N/n否"<<endl;while(true){cin>>change;switch(change){case'Y':case'y':return true;break;case'n':case'N':return false;break;default:cout<<"输入错误,重新输入"<<endl;break;}}return true;}void InquireAirLine(AirLine *line){string inquirePoint;cout<<"输入终点名:"<<endl;cin>>inquirePoint;for(int i=0;i<size;i++)if(line[i].GetEndPoint()==inquirePoint){cout<<line[i];return;}cout<<"对不起,没有到达该地的航班"<<endl; }void BookTicket(AirLine *line){int tiNum;int whichWeek;string fiNum;cout<<"输入航班号:"<<endl;cin>>fiNum;for(int i=0;i<size;i++)if(line[i].GetFlightNum()==fiNum){cout<<line[i];cout<<"输入订票额:"<<endl;cin>>tiNum;while(cin.fail()){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>tiNum;}if(tiNum>maxSeatNum){cout<<"对不起,本公司暂时没有这么大的客机,请分开订票"<<endl;return;}cout<<"输入订票时间:"<<endl;cout<<"1星期一、星期二..."<<endl;cin>>whichWeek;while(cin.fail()||whichWeek>8||whichWeek<1||!line[i].IsFly(whichW eek)){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>whichWeek;}if(tiNum>line[i].GetSeatRemain(whichWeek))IfAwait(line[i],tiNum,whichWeek);elseTransactBookTicket(line[i],tiNum,whichWeek);return;}cout<<"对不起,没有到达该地的航班"<<endl;}void ReturnTicket(AirLine *line){cout<<"为您办理退票业务:"<<endl;string fiNum;int whichWeek;int tiNum;int i;string name;cout<<"输入名字"<<endl;cin>>name;cout<<"输入航班号:"<<endl;cin>>fiNum;for(i=0;i<size;i++)if(line[i].GetFlightNum()==fiNum)break;if(i==size){cout<<"无此航班,请核对后输入"<<endl;return;}cout<<"输入订票时间:"<<endl;cout<<"1星期一、星期二..."<<endl;cin>>whichWeek;while(cin.fail()||whichWeek>8||whichWeek<1||!line[i].IsFly(whichW eek)){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>whichWeek;}cout<<"输入订票额:"<<endl;cin>>tiNum;while(cin.fail()){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>tiNum;}Passenger temp(name,tiNum,1,whichWeek);if(line[i].DeletePassenger(temp)==true){cout<<"办理退票完毕,谢谢合作"<<endl;IfBookTicket(line,fiNum,tiNum,whichWeek);}elsecout<<"您没有订票或输入信息错误,请核实后办理"<<endl; }void IfAwait(AirLine &line,int tiNum,int whichWeek){cout<<"空座不够,是否排队候补?Y/y是N/n否"<<endl;char change;bool flags=true;while(flags){cin>>change;switch(change){case'Y':case'y':{flags=false;Passenger temp(" ",tiNum,1,whichWeek);line.InsertAwait(temp);cout<<"已为您登记排队候补,请耐心等候"<<endl;}break;case'n':case'N':flags=false;cout<<"谢谢合作,再见。

机票操作系统代码

机票操作系统代码

操作系统代码1,查询航班:A VH/紧跟输入城市段、日期(数字)、月份(英文)后回车查看。

如果查询指定航空公司月份后加“/”再加航空公司代号。

2,订座:SD后紧跟序号计划预定仓位跟人数后回车。

(如果显示JET代表待定航班)3.人名:NM1后紧跟客人姓名,如果多个个客人,人名雨人名之间用数字1隔开(国际航班必须输入英文,中国人姓在前后加/,外国人名在前)4,联系方式:CT后输入联系电话5,预留时间:TKTL/后跟几点/日期月份BJS…(代码)6,封口:@IK(封口号码为5位数字)7,提记录:RT后紧跟封口号码8,取消订票:XEPNR\9,价格查询:FD:城市段(只使用于国内查询) PA T:A 查国内税和价格10:查询那些航空公司飞:SKPEK紧跟目的地11,查询指定日期直达航班:A V:城市段/日期月份12,查询经停点:IT:航班号/日期月份13,查询航班经停的城市起降时间和机型:FF:航班号/日期月份(没有经停的不显示)14,查税(价格):QTE:/承运人(航空公司)(必须输入完行程封口或达到上面第二步),如果出来很多仓位,在输入XSFSQ后跟代表仓位代码的序号。

(共享的航班不能查税)15, 查询学生机票的税和价格QTE:SD/航空公司16,查询移民机票价:QTE:EM/航空公司17,查询青年机票价格:QTE:ZZ/航空公司18,OPE票的预定指令:SN:承运人---舱位---出发地与目的地19,查询SPA价格的指令:NFAD:城市段/CA (只能用于国航联运协议的航空公司。

国际段的查询)20,查汇率:XS(空格跟FSC后跟币种代码/人民币(可以互换)21,查代码代表城市:CD:跟城市代码22,用姓名查找记录:RT/旅客姓的拼音/航班号/日月年23,SK:城市段/日期查询在特定周期内所有航班的信息,所显示的航班信息时间为指定时间的前后三天一周的时间24,查看是否出票:提记录后,输入PG1回车,有票号证明已经出票完毕。

航空售票ETERM操作指令

航空售票ETERM操作指令

操作手册1.航班信息查询AV:城市对/日期/起飞时间/航空公司代码/经停标志/座位等级“+”表示明天“N”表示经停“D”表示直达2.航班经停点及起降时间的显示 FF:航班号/日期例:FF:1321/19MAY3.票价查询 FD:城市对/航空公司代码例:FD:PEKSHA/CA从已有的AV中查询票价 FD:序号4.订票:(注:请一次性封口)(成人)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算1管理(名字中间用数字1隔开)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)SSR FOID MU HK/NI545123152(身份证)(回车)CT4524545(联系电话)(回车)@或\ F12(输入)(儿童)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算CHD1管理CHD(名字中间用数字1隔开,在名字后面加上CHD标志)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)CT4524545(联系电话)(回车)@或\ F12(输入)(婴儿)与大人在同一个记录,但是婴儿不占座位(回车)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算1管理(名字中间用数字1隔开)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)XN:IN/名字INF(出生月和年)/P1(回车)SSR FOID MU HK/NI545123152(身份证)(回车)CT4524545(联系电话)(回车)@或\ F12(输入)5.订票:(成人)SD1(航段)Y(舱位)/1(人数)(F12)NM1计算1管理(名字中间用数字1隔开)(F12)TKTL(预定时间)/1200/19MAY/SIA000(F12).SSR FOID MU HK/NI545123152(身份证)(F12)CT4524545(联系电话)(F12)@或\ F12(输入)(儿童)SD1(航段)Y(舱位)/1(人数)(F12)NM1计算CHD1管理CHD(名字中间用数字1隔开,在名字后面加上CHD标志)(F12)TKTL(预定时间)/1200/19MAY/SIA000(F12)CT4524545(联系电话)(F12)@或\ F12(输入)(婴儿)与大人在同一个记录,但是婴儿不占座位(F12)SD1(航段)Y(舱位)/1(人数)(F12)NM1计算1管理(名字中间用数字1隔开)(F12)TKTL(预定时间)/1200/19MAY/SIA000(F12)XN:IN/名字INF(出生月和年)/P1(F12)SSR FOID MU HK/NI545123152(身份证)(F12)CT4524545(联系电话)(F12)@或\ F12(输入)6.做假RRRTSKIKS(记录编号)(输入)XE(出票时限项)(回车)TKT/999-0000000000(假票号)(回车)2RR(把航程项做RR) 输入7.PNR取消整个记录:XEPNR@SKSKI(加记录编号)取消记录中的一个人:XEP1(1代表所取消的第几个人)PNR的历史记录.,先提记录,RTU1要往下翻页:RTC|记录|PN如果是记录往下翻只能翻两次:第一次:RT记录|PN 第二次:RT记录|PN|PN8.团队定位(注请一次性封口)例: AV查询航班(输入)SD1(航段)Y(舱位)/25(人数)(回车)GN:25kxun (回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)CT4524545(联系电话)(回车)@或\ F12(输入)生成记录后再输入名单(注在输入名单的时候最多只能输入一行,然后穿入,不能回车接着输入)团队取消:XEG 取消一人 XEGP1(1是指第几个人)RTN团队记录里已入的名单9.团队订票(独占30秒订票,必须在规定时间内完成订票)10.用短信方法通知客人定票信息首先提出记录编号(输入)RMK MP 电话号码(输入)SMS I/记录编号(输入)11航班时刻显示 SK:选择项/城市对/日期/时间/航空公司代码/舱位例:SK PEKCAN/19MAY 指定日期前后三天内航班信息12 0查询三字代码 CNTD:T/BEIJING查询城市名称 CD:PEK13特殊服务信息(OSI/SSR)国航知音卡 SSR FQTV CA HK/NN………/P1特殊餐食的输入法例:SSR SPML CA NN1 LOW SALT/P1例:SSR VGML CA NN1 P1/S2或:SSR SPML CA NN1 PEKSHA CA1501 Y 19MAY LOW SALT/P1 餐食代码:SPML 特殊餐食申请 VGML 素食(不含奶,蛋制食品)AVML 亚洲素食 VLML 素食(专门牛奶,蛋)LSML 低盐餐 MOML 穆斯林餐ORML 东方餐 BBML 婴儿,儿童餐CHML 儿童餐申请定位SSR OTHS MU(航空公司代码)KK,V(舱位)THANKS计算功能CO加数天气预报WF加所查城市例:WFSIA14儿童,婴儿及豁免的外交官免税输入方法FM:FCNY…../SCNY…../C…../TEXEMPTCN15.国际票定座(注请一次性封口)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算1管理(名字中间用数字1隔开)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)SSR FOID MU HK/NI545123152(身份证)(回车)CT4524545(联系电话)(回车)@或\ F12(输入)16国际运价RT记录QTE: 输入注:1.QTE指令最多可以计算16个航段的运价,当航程段超过8段时,QTE后,系统不能立即算出其结果,而是给出一个编码,然后再使用XS FSI/编码,找到其结果2.如果使用XS FSI/编码依然没有结果时,2分钟之后再使用XS FSI/编码提取结果QTE指令的实质是XS FSP或XS FSI指令国际运价NFI显示运价附加规则:XS FSG2 2是QTE中票价的序号17.注共享出来的帐号,可以出电子客票!指令:1.RT记录编号 PAT:A F12输入2.TXE(预出票时限前的序号) F12输入3.ETDZ:2(打票机号) F12输入4.航段RR F12输入先出票在做“RR”18.PID共享出来的帐号可以支持纵横中国的票价及其它指令指令:PAT:#YZZS PAT:#3UZZ 儿童价格输入:PAT:*CH TKTV:打票机号独占30秒指令:30LOCK 永久独占指令:MXLOCK 释放独占:UNLOCK F12输入销售日子查询指令:tsl:c/打票机号翻页:PN做假RR后的出票指令rt记录编号|票号序号at/城市对/./bjs001(代号)|etdz: 打票机号PID服务器共享用户,支持虚拟支付账户,通过eterm在线支付出票虚拟帐户余额查询 fare F12 输入虚拟帐户在线出票指令:1.RT记录编号 PAT:A F12输入2.*记录编号支付指令(如果PID共享里有多个航信配置时,*记录编号&指定office号) F12输入19.大记录转换小记录指令:rrt:v/记录/航班号/日期|rrt:ok20.如果PAT:A穿出来没有票价或是需要修改的票价的,PAT:A穿入不能出来新的FN FC FP,得手工输入FN FC FP1:直接pn:fd tsl nfd nfi tktv qt2:限制xe: 在共享帐号的指令限制里选择LXE,该帐号就只能xe本office号的记录。

飞机订票系统源代码

飞机订票系统源代码

飞机订票系统源代码#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<stdlib.h> //包含动态存储与释放函数头文件#define N 10000struct air //定义结构体数组{int num;char start[20];char over[20];char time[10];int count;}s[N];int i;int m=0;#define PRINT "%-d%12s%12s%10s%12d",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count // 定义输出格式void input(); //输入航班信息void print(); //输出航班信息void save(); //保存航班信息void read(); //读取航班信息void search(); //查找航班信息void shanchu(); //删除航班信息void dingpiao(); //订票信息void tuipiao(); //退票信息void xiugai(); //修改信息void main(){int j; printf(" ?---您好,欢迎进入中国民航治理系统~---? \n");printf("============================================================ ==================== \n");{printf(" -------- ? 1.输入航班信息 ?-------- \n"" -------- ? 2.浏览航班信息 ?-------- \n"" -------- ? 3.修改航班信息 ?-------- \n"" -------- ? 4.查找航班信息 ?-------- \n"" -------- ? 5.删除航班信息 ?-------- \n"" -------- ? 6.订票信息 ?-------- \n"" -------- ? 7.退票信息 ?--------\n "" -------- ? 0.退出 ?--------\n ");printf("============================================================ ===================\n ");printf("请在0-7中选择以回车键结束: ");scanf("%d",&j);switch(j){case 1: input();//调用输入模块break;case 2:print();//调用打印模块break;case 3:xiugai();//调用修改模块break;case 4:search();//调用查找模块break;case 5:shanchu(); //调用删除模块break;case 6:dingpiao();//调用订票模块break;case 7:tuipiao();//调用退票模块break;case 0:;break;}}while(j!=0); //判定结束printf("谢谢使用,再见~ "); }//主函数结束void input()//打印模块程序{char f[]="2008china"; //设置密码int y;printf("请输入密码并以回车键结束: ");scanf("%s",f); //读取密码if(strcmp(f,"2008china")==0){printf("请依次输入航班信息(机票数位0结束输入): ""完成输入信息请键入w以回车键结束 "); //打印提示信息printf("-------------------------------------------------------------------------- ");for(i=0;i<N;i++){printf("请输入航班号: ");scanf("%d",&s[i].num); //读取航班号printf("请输入起始站: ");scanf("%s",s[i].start);//读取起始站printf("请输入终点站: ");scanf("%s",s[i].over);//读取终点站printf("请输入时间: ");scanf("%s",s[i].time);//读取时间printf("请输入机票数(机票数为0结束输入): ",m);scanf("%d",&s[i].count);//读取机票数m++;printf("第%d个信息已经输完是否继续?按任意键继续,按 0结束",m);scanf("%d",&y);if(y==0)printf("请输入密码!");}}elseprintf("输入密码错误!请检查您的密码是否正确!谢谢!再见! "); } void save()//保存模块程序{FILE *fp,*fp1;//定义文件指针if((fp=fopen("chen.dat","wb"))==NULL)//打开文件并判定是否出错{printf("创建文件失败! ");//打印出错提示getchar();return;}if((fp1=fopen("hao.dat","wb"))==NULL)//打开文件并判定是否出错{printf("创建文件失败! ");//打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判定是否出错printf("向文件输入数据失败! ");fprintf(fp1,"%d",m);fclose(fp);//关闭文件fclose(fp1);//关闭文件}void read()//从文件读取信息模块{FILE *fp,*fp1;//定义文件指针if((fp=fopen("chen.dat","rb"))==NULL)//打开文件,并判定是否出错if((fp1=fopen("hao.dat","rb"))==NULL)//打开文件并判定是否出错{printf("创建文件失败! ");//打印出错提示getchar();return;}fscanf(fp1,"%d",&m);fclose(fp1);//关闭文件for(i=0;i<m;i++)fclose(fp);//关闭文件}void print()//打印模块{char w[10];read();//调用读取文件函数printf("航班号起始站终点站时间机票数 ");for(i=0;i<m;i++){printf(PRINT);//打印信息}printf("请按任意键回车键结束返回上层菜单以: "); scanf("%s",w); }void search()//查询模块{char name1[20];char name2[20];char ii[10];int n,no;do{printf("请选择查找方式: ");//打印查询方式菜单printf("1.按航班号查找 ""2.按终点站查找 ""3.按航线查找 ""0.返回 ");printf("请在0-3中选择: ""按其他键以回车键结束返回主菜单: ");scanf("%d",&n);//读取查找方式if(n==0)break;switch(n){case 1:printf("请输入航班号: "); scanf("%d",&no);//航班号break;case 2:printf("请输入终点站名称: "); scanf("%s",name2);//读取终点站break;case 3:printf("请输入起始站名称: "); scanf("%s",name1);//读取起始站printf("请输入终点站名称: "); scanf("%s",name2);//终点站break;}read();//调用读取函数for(i=0;i<m;i++){if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)//按终点站起始站判定输出条件{printf(" 查找航班信息成功! ");printf("航班号起始站终点站时间机票数 ");printf(PRINT);//打印信息break;}if(s[i].num==no)//按航班号判定输出条件{printf(" 查找航班信息成功! ");printf("航班号起始站终点站时间机票数 ");printf(PRINT);//打印信息break;}}no=0;//将航班号赋值为0printf("没有您需要的信息或查找完毕: ""是否继续查找?请键入yes或no以回车键结束 ");scanf("%s",ii); }while(strcmp(ii,"yes")==0);//判定结束 } void shanchu()//删除模块{char name1[20];char name2[20];char ii[10];char f[]="2008china";//设置密码int no,n;printf("请输入密码并以回车键结束: ");scanf("%s",f);//读取密码if(strcmp(f,"2008china")==0) //判定密码是否正确{do{printf("请选择删除以方式回车键结束: ");//打印删除方式菜单printf("*1.按航班号删除 ""*2.按航线删除 ""*0.返回 ");printf("请在0-2中选择以回车键结束: ");scanf("%d",&n);//读取删除方式if(n==0)break; //跳出循环switch(n){case 1:printf("请输入航班号: ");scanf("%d",&no);//读取航班号read();//调用读取函数break;//跳出循环case 2:printf("请输入起始站名称: ");scanf("%s",name1);//读取起始站printf("请输入终点站名称: ");scanf("%s",name2);//读取终点站read();//调用读取函数break;//跳出循环}for(i=0;i<m;i++){printf("查找完毕或没有这个信息 ");printf("是否继续删除 ");}printf("请键入yes或no以回车键结束 ");scanf("%s",ii); //读取是否继续信息save(); //调用读取函数if(!strcmp(ii,"yes")) //判定是否继续删除printf("请按任意键以回车键结束返回上层菜单: ");break;}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判定结束}elseprintf("对不起密码错误!您不是治理员,不能使用此项功能!谢谢!再见! "); }void dingpiao()//订票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要订的机票数以回车键结束: "); scanf("%d",&n);//读取所订机票数if(n<0){printf("请输入有效的机票数~ ");//判定机票数是否出错break;}if(s[i].count!=0&&s[i].count>=n)//判定是否出错{s[i].count=s[i].count-n;save();//调用保存函数printf("订票成功! ");break;}if(s[i].count<n)//判定是否出错{printf("请输入有效的机票数: ");break;}printf("是否继续, 请输入yes或no以回车键结束: ");//判定是否继续订票scanf("%s",a);}while(!strcmp(a,"yes"));//判定结束} void tuipiao()//退票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要退的机票数目: ");scanf("%d",&n);//输入所退票数if(n<0) //判定票数是否有效printf("请输入有效的机票数~ ");s[i].count=s[i].count+n;save(); //调用保存模块printf("退票成功! ");printf("是否继续, 请键入yes或no以回车键结束: ");//判定是否继续退票scanf("%s",a);}while(!strcmp(a,"yes"));//判定并跳出循环 getchar();}void xiugai() //修改模块{struct xiu //定义结构体{int no;char name1[20];char name2[20];char time[20];int count;}x[1];char j[10];char f[]="2008china";//设置密码int n;printf("请输入密码并以回车键结束: "); scanf("%s",f);//读取密码if(strcmp(f,"2008china")==0)//判定是否出错{read();//调用读取模块do{printf( "请选择修改方式: ""*1,按航班号修改: ""*2,按航线修改: ");printf("请在1---2中修改以回车键结束: "); scanf("%d",&n);//读取修改方式switch(n){case 1:printf("请输入航班号: ");scanf("%d",&x[0].no);//读取航班号break;case 2:printf("请输入起始站: ");scanf("%s",x[0].name1);//读取起始站printf("请输入终点站: ");scanf("%s",x[0].name2);//读取终点站break;}for(i=0;i<m;i++){if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0) //判定输出条件{printf("航班号起始站终点站时间机票数 ");printf(PRINT);break;}if(s[i].num==x[0].no)//判定输出条件{printf("航班号起始站终点站时间机票数 ");printf(PRINT);break;}}x[0].no=0; //将结构体中的号为零printf("请输入新航班号、起始站、终点站、时间(星期几)、机票数: ");scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].co unt);//定义输入格式s[i].num=x[0].no;//替换航班号strcpy(s[i].start,x[0].name1);//替换其始站strcpy(s[i].over,x[0].name2);//替换终点站strcpy(s[i].time,x[0].time);//替换时间s[i].count=x[0].count;//替换机票数save();//调用保存模块printf("是否继续,请键入yes或no以回车键结束: ");scanf("%s",j);}while(strcmp(j,"yes")==0); //判定结束}elseprintf("对不起密码错误!您不是治理员,不能使用此项功能!谢谢!再见! ");}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <iostream.h>#include <string.h>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]; //姓名eint 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<<endl;cout<<" ***************【欢迎使用航空订票系统】***************"<<endl;cout<<""<<endl;cout<<" ***************【按1】增加航班路线***************"<<endl;cout<<""<<endl;cout<<" ***************【按2】查询航班路线***************"<<endl;cout<<""<<endl;cout<<" ***************【按3】修改航班路线***************"<<endl;cout<<""<<endl;cout<<" ***************【按4】预订飞机票***************"<<endl;cout<<""<<endl;cout<<" ***************【按5】退订飞机票***************"<<endl;cout<<""<<endl;cout<<" ***************【按6】清空系统***************"<<endl;cout<<""<<endl;cout<<" ***************【按7】已订票名单***************"<<endl;cout<<""<<endl;cout<<" ***************【按8】退出系统***************"<<endl;cout<<""<<endl;cout<<" *提示:当前为主菜单"<<endl;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<<"*提示:抱歉,请选择正确的操作!"<<endl;cout<<endl;cout<<endl;break;}}}void FlightInsert() //航班录入{/*int i=2;while(i!=1){*/Flight *p;p=new Flight;cout<<"****正在设定新的路线****"<<endl;cout<<endl;cout<<"1.请设定起点站名:"<<endl;cin>>p->From;cout<<"2.请设定终点站名:"<<endl;cin>>p->Des;cout<<"3.请设定航班号:"<<endl;cin>>p->FlightNum;cout<<"4.请设定飞机号:"<<endl;cin>>p->PlaneNum;cout<<"5.请设定飞行周日:"<<endl;cin>>p->Week;cout<<"6.请设定乘员定额:"<<endl;cin>>p->Ration;p->FreeTicket=p->Ration;cout<<"7.请设定一等舱的价格:"<<endl;cin>>p->Price[0];cout<<"8.请设定二等舱的价格:"<<endl;cin>>p->Price[1];cout<<"9.请设定三等舱的价格:"<<endl;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<<"设置成功!"<<endl;cout<<"***********************"<<endl;cout<<endl;/*cout<<"【按1】返回主菜单【按2】继续"<<endl;cin>>i;}*/}void FlightLookup() //查询航班号{Flight *p,*q;char FlightNum[10];p=head;int i=0;while (i!=1){cout<<"请输入需要查询的航班号:"<<endl;cin>>FlightNum;while (p->next && strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班号,请核实您的信息!"<<endl;}else{cout<<"以下是您所查的车次信息:"<<endl;cout<<"************************"<<endl;cout<<"* 1.航班号:"<<q->FlightNum<<endl;cout<<"* 2.飞机号:"<<q->PlaneNum<<endl;cout<<"* 3.起点站:"<<q->From<<endl;cout<<"* 4.目的地:"<<q->Des<<endl;cout<<"* 5.飞机周日:"<<q->Week<<endl;cout<<"* 6.成员定额:"<<q->Ration<<endl;cout<<"* 7.剩余票数:"<<q->FreeTicket<<""<<endl;cout<<"* 8.候补乘客数:"<<q->ReplacePas<<"人"<<endl;cout<<"* 9.一等舱的价格:"<<q->Price[0]<<"元"<<endl;cout<<"* 10.二等舱的价格:"<<q->Price[1]<<"元"<<endl;cout<<"* 11.三等舱的价格:"<<q->Price[2]<<"元"<<endl;cout<<"************************"<<endl;}cout<<"您还需要其他的操作么?"<<endl;cout<<endl;cout<<"【按1】返回主菜单【按2】继续操作"<<endl;cin>>i;cout<<"************************"<<endl;cout<<endl;}}void FlightRework() //修改航班路线信息{int Customer_Number ;Flight *p,*q;char FlightNum[10];int i=0;int a=1;p=head;cout<<"请输入需要修改的航班:"<<endl;cin>>FlightNum;while (p->next&&strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while(a){cout<<" *******【请输入需要修改的数据】*******"<<endl;cout<<" "<<endl;cout<<" 【按1】航班号"<<endl;cout<<" "<<endl;cout<<" 【按2】飞机号"<<endl;cout<<" "<<endl;cout<<" 【按3】起始站"<<endl;cout<<" "<<endl;cout<<" 【按4】目的地"<<endl;cout<<" "<<endl;cout<<" 【按5】每周出站日期"<<endl;cout<<" "<<endl;cout<<" 【按6】成员定额"<<endl;cout<<" "<<endl;cout<<" 【按7】一等舱的价格"<<endl;cout<<" "<<endl;cout<<" 【按8】二等舱的价格"<<endl;cout<<" "<<endl;cout<<" 【按9】三等舱的价格"<<endl;cout<<" "<<endl;cout<<" 【按10】退出"<<endl;cout<<" "<<endl;cout<<" **************************************"<<endl;cin>>i;switch(i){case 1:cout<<"1.请输入航班号:"<<endl;cin>>q->FlightNum;break;case 2:cout<<"2.请输入飞机号:"<<endl;cin>>q->PlaneNum;break;case 3:cout<<"3.请输入起始站:"<<endl;cin>>q->From;break;case 4:cout<<"4.请输入目的地:"<<endl;cin>>q->Des;break;case 5:cout<<"5.请输入飞机周日:"<<endl;cin>>q->Week;break;case 6:cout<<"6.请输入乘员定额:"<<endl;Customer_Number=q->Ration-q->FreeTicket;cin>>q->Ration;q->FreeTicket=q->Ration-Customer_Number;break;case 7:cout<<"7.请输入一等舱的价格:"<<endl;cin>>q->Price[0];break;case 8:cout<<"8.请输入二等舱的价格:"<<endl;cin>>q->Price[1];break;case 9:cout<<"9.请输入三等舱的价格:"<<endl;cin>>q->Price[2];break;case 10:a=0;break;default:cout<<"*提示:对不起,请选择正确的操作!"<<endl;cout<<endl;cout<<endl;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<<"请输入目的地:"<<endl;cin>>Des;p=head;while (p->next&&strcmp(p->next->Des,Des)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while(i!=1){cout<<"请输入需要购买的票数:"<<endl;cin>>Ticket_Amount;while(Ticket_Amount==0 && Ticket_Amount<0){cout<<"*提示:对不起,请输入正确的票数!"<<endl;cout<<endl;cout<<"请输入需要够买的票数:"<<endl;cin>>Ticket_Amount;}if (Ticket_Amount<=q->FreeTicket){Buyticket(q,Ticket_Amount);}else{int n;cout<<"*提示:抱歉!剩余票数小于定票数,是否需要列入候补名单?(【按1】是【按2】否)"<<endl;cin>>n;Buyreplace(q,Ticket_Amount,n);}cout<<endl;cout<<"【按1】返回主菜单【按2】继续"<<endl;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<<"**********************************"<<endl;while (i!=1){cout<<"请输入需要退定的航班号:"<<endl;cin>>FlightNum;p=head;while (p->next&&strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while (i!=2){cout<<"请输入所查姓名:"<<endl;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<<"*提示:对不起,查无此人,请核实您的信息!"<<endl;cout<<endl;}else{if(j->next==NULL){ //当删除最后一个结点Cusrear=h;}h->next=h->next->next;q->FreeTicket+=j->Amount;delete j;cout<<"*提示:退票成功!"<<endl;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<<"*提示:"<<endl;cout<<endl;cout<<"候补乘客:"<<rep->Name<<"已经成功买票!"<<endl;cout<<endl;cout<<"航班号:"<<Cus2->FlightNum<<endl;cout<<"舱位等级为:"<<rep->Level<<"(1一等舱,2二等舱,3三等舱)"<<endl;cout<<"座位号为:"<<endl;for(int i=1;i<=(rep->Amount);i++){cout<<"No."<<Cus2->SeatNum++<<" ";}cout<<endl;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】返回主菜单,或按任意键返回【继续退票操作】!"<<endl;cout<<endl;cin>>i;}}void Flightclean()//清空{head->next=rear->next;cout<<"*提示:系统已经清空!"<<endl;cout<<endl;}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.请输入姓名:"<<endl;cin>>Cus2->Name;cout<<"2.请输入购买票的类型:"<<endl;cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<<endl;cin>>Cus2->Level;cout<<"*提示:订票成功!"<<endl;cout<<endl;cout<<"舱位等级:"<<" "<<Cus2->Level<<endl;cout<<"座位号为:"<<endl;for(int i=1;i<=Ticket_Amount;i++){cout<<"No."<<Cus2->SeatNum++<<" ";}cout<<endl;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.请输入姓名:"<<endl;cin>>Rep2->Name;cout<<"2.请输入购买票的类型:"<<endl;cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<<endl;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<<"*提示:抱歉,该项目还在开发!"<<endl;cout<<endl;int i;cout<<"【按1】返回至主菜单"<<endl;cin>>i;while(i=1){break;}/*Customer *h,*j;char Customer_Name[10];int i;while (i!=2){cout<<"请输入所查姓名:"<<endl;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<<"*提示:对不起,查无此人,请核实您的信息!"<<endl;cout<<endl;}else{cout<<}*///Customer *p;//cout<<"已买票的乘客有:"<<endl;//cout<<endl;//cout<<":"<<p->Name<<"航班号:"<<p->FlightNum<<"订票数:"<<p->Amount<<endl;//cout<<"舱位等级:"<<p->Level<<"座位号"<<p->SeatNum;//Flight *q;//char FlightNum[10];//cout<<"以下是您所查的车次信息:"<<endl;//cout<<"************************"<<endl;//cout<<"* :"<<q->Name<<endl;//cout<<"* 航班号:"<<q->FlightNum<<endl;//cout<<"* 飞机号:"<<q->PlaneNum<<endl;//cout<<"* 起点站:"<<q->From<<endl;//cout<<"* 目的地:"<<q->Des<<endl;//cout<<"* 飞机周日:"<<q->Week<<endl;//cout<<"* 舱位等级:"<<q->Level<<endl;}******************************************************************************************************#include "AirLineSystem.h"#include<iostream.h>void main() //主程序{Cusrear=new Customer;Reprear=new Replace;head=rear=new Flight;head->next=NULL;MainMenu();}。

相关文档
最新文档