航空订票系统代码.docx

上传人:PIYPING 文档编号:10567462 上传时间:2021-05-23 格式:DOCX 页数:18 大小:30.38KB
返回 下载 相关 举报
航空订票系统代码.docx_第1页
第1页 / 共18页
航空订票系统代码.docx_第2页
第2页 / 共18页
航空订票系统代码.docx_第3页
第3页 / 共18页
航空订票系统代码.docx_第4页
第4页 / 共18页
航空订票系统代码.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《航空订票系统代码.docx》由会员分享,可在线阅读,更多相关《航空订票系统代码.docx(18页珍藏版)》请在三一文库上搜索。

1、Airline.h#pragma once#include using std:string;#include using std:istream;using std:ostream;#include using std:endl;using std:cout;using std:cin;#include DataStructure.h#include Passenger.hclass AirLine;ostream &operator(ostream &output ,const AirLine& line);class AirLinefriend void InitAirLine(AirL

2、ine *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 whichWe

3、ek) const;void InsertAwait(Passenger& temp);bool DeletePassenger(Passenger&);int IfAwaitBook(int tiNum, int whichWeek);private:string endPoint;string flightNum;string airNum;bool week8;int seatNum8;int seatRemain8;MyList pList;MyQueue pQueue;Airline.cpp#include AirLine.hAirLine:AirLine(void)for(int

4、i=0;i8;i+)weeki=false;AirLine:AirLine(void)string AirLine:GetEndPoint()return endPoint;ostream &operator(ostream &output,const AirLine &line)output终点站: line.endPointnn航班号: line.flightNumnn飞机号: line.airNumnn剩余票数:n;for(int i=1;i8;i+)if(line.IsFly(i)output周i line.seatRemainiendl;string weekName8= ,Mond

5、ay,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday;output飞行日:;for(int i=1;i8;i+)if(line.weeki)outputweekNameit;coutendl;return output;int AirLine:GetSeatNum(int whichWeek)return seatNumwhichWeek;int AirLine:GetSeatRemain(int whichWeek)return seatRemainwhichWeek;void AirLine:SetSeatRemain(int num,i

6、nt whichWeek)seatRemainwhichWeek-=num;string AirLine:GetFlightNum(void)return flightNum;void AirLine:InsertPassenger(Passenger& temp)pList.InsertNode(temp);bool AirLine:IsFly(int whichWeek) constreturn weekwhichWeek;void AirLine:InsertAwait(Passenger& temp)pQueue.EnQueue(temp);bool AirLine:DeletePas

7、senger(Passenger& temp)seatRemaintemp.GetWeek()+=temp.GetTickets();return pList.DeleteNode(temp);int AirLine:IfAwaitBook(int tiNum, int whichWeek)if(pQueue.Empty()return 0;Passenger node,tnode;MyQueue tempQueue;while(!pQueue.Empty()pQueue.DnQueue(node);if(node.GetTickets()tiNum&node.GetWeek()=whichW

8、eek)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 using std:string; enum TicketGradeAA,BB,CC;class Passengerpublic:Passenger

9、(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.hPassenger:Passenger(void)Passenger:Passenger(const string &passen

10、gerName,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(d.name!=name)return false;if(d.flightWeek!=flightWeek)return

11、 false;if(d.grade!=grade)return false;return true;/TODO: insert return statement hereint Passenger:GetTickets()return tickets;int Passenger:GetWeek()return flightWeek;DataStructure.h#include /LQNode classtemplateclass MyList;templateclass MyQueue;templateclass LQNodefriend class MyList;friend class

12、MyQueue;public:LQNode();LQNode(T);LQNode();private:T data;LQNode *next;templateLQNode:LQNode()/data=T(0);next=NULL;templateLQNode:LQNode(T node)data=node;next=NULL;templateLQNode:LQNode()/MyList classtemplateclass MyListpublic:MyList();MyList();void InsertNode(LT &);bool DeleteNode(LT &);private:LQN

13、ode *head;templateMyList:MyList()head=new LQNode;head-next=NULL;templateMyList:MyList()templatevoid MyList:InsertNode(LT &temp)LQNode *node=new LQNode(temp);node-next=head-next;head-next=node;templatebool MyList:DeleteNode(LT &temp)LQNode *p,*q;p=head-next;q=head;while(p!=NULL)if(p-data=temp)q-next=

14、p-next;free(p);return true;q=p;p=p-next;return false;/MyQueue classtemplateclass MyQueuepublic:MyQueue();MyQueue();void EnQueue(QT &);void DnQueue(QT &);bool Empty();private:LQNode *front;LQNode *rear;templateMyQueue:MyQueue()front=rear=new LQNode;templateMyQueue:MyQueue()templatevoid MyQueue:EnQueu

15、e(QT &temp)LQNode *node=new LQNode(temp);rear-next=node;node-next=NULL;rear=rear-next;templatevoid MyQueue:DnQueue(QT &temp)if(Empty()cout对空next-data;return;templatebool MyQueue:Empty()return front-next=NULL;Main.cpp#include AirLine.h#include using std:cout;using std:cin;using std:endl;#include usin

16、g 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

17、 *line,string fiNum,int tiNum,int whichWeek);bool IsQuit();const int size=7;const int maxSeatNum=120;int main()AirLine linesize;int select;InitAirLine(line);bool flag=false;while(!flag)cout-endl;cout航空客运订票系统endl;cout 1 查询航线endl 2 订票业务endl 3 退票业务endl;cout-select;while(cin.fail()|select3)cout输入错误,重新输入

18、select;switch(select)case 1:InquireAirLine(line);break;case 2:BookTicket(line);break;case 3:ReturnTicket(line);break;default:couterror;break;system(pause);flag=IsQuit();system(cls);return 0;bool IsQuit()char change;cout是否退出该系统Y/y是N/n否change;switch(change)case Y:case y:return true;break;case n:case N

19、:return false;break;default:cout输入错误,重新输入endl;break;return true;void InquireAirLine(AirLine *line)string inquirePoint;cout输入终点名:inquirePoint;for(int i=0;isize;i+)if(linei.GetEndPoint()=inquirePoint)coutlinei;return;cout对不起,没有到达该地的航班endl;void BookTicket(AirLine *line)int tiNum;int whichWeek;string fi

20、Num;cout输入航班号:fiNum;for(int i=0;isize;i+)if(linei.GetFlightNum()=fiNum)coutlinei;cout输入订票额:tiNum;while(cin.fail()cout输入错误,重新输入tiNum;if(tiNummaxSeatNum)cout对不起,本公司暂时没有这么大的客机,请分开订票endl;return;cout输入订票时间:endl;cout1星期一、星期二.whichWeek;while(cin.fail()|whichWeek8|whichWeek1|!linei.IsFly(whichWeek)cout输入错误,

21、重新输入whichWeek;if(tiNumlinei.GetSeatRemain(whichWeek)IfAwait(linei,tiNum,whichWeek);elseTransactBookTicket(linei,tiNum,whichWeek);return;cout对不起,没有到达该地的航班endl;void ReturnTicket(AirLine *line)cout为您办理退票业务:endl;string fiNum;int whichWeek;int tiNum;int i;string name;cout输入名字name;cout输入航班号:fiNum;for(i=0;

22、isize;i+)if(linei.GetFlightNum()=fiNum)break;if(i=size)cout无此航班,请核对后输入endl;return;cout输入订票时间:endl;cout1星期一、星期二.whichWeek;while(cin.fail()|whichWeek8|whichWeek1|!linei.IsFly(whichWeek)cout输入错误,重新输入whichWeek;cout输入订票额:tiNum;while(cin.fail()cout输入错误,重新输入tiNum;Passenger temp(name,tiNum,1,whichWeek);if(l

23、inei.DeletePassenger(temp)=true)cout办理退票完毕,谢谢合作endl;IfBookTicket(line,fiNum,tiNum,whichWeek);else cout您没有订票或输入信息错误,请核实后办理endl;void IfAwait(AirLine &line,int tiNum,int whichWeek)cout空座不够,是否排队候补?Y/y是N/n否change;switch(change)case Y:case y:flags=false;Passenger temp( ,tiNum,1,whichWeek);line.InsertAwait

24、(temp);cout已为您登记排队候补,请耐心等候endl;break;case n:case N:flags=false;cout谢谢合作,再见。endl;break;default:cout输入错误,重新输入endl;break;void TransactBookTicket(AirLine &line,int tiNum,int whichWeek)string name;/int grade;int seatNum;int seatRemain;cout输入姓名:name;/cout输入舱位等级:endl;Passenger temp(name,tiNum,1,whichWeek);

25、line.InsertPassenger(temp);seatNum=line.GetSeatNum(whichWeek);seatRemain=line.GetSeatRemain(whichWeek);cout座位号:endl;for(int i=1;i=tiNum;i+)coutsetw(4)setfill(0)seatNum-seatRemain+it;coutendl;line.SetSeatRemain(tiNum,whichWeek);cout订票完毕,祝您旅途愉快endl;void IfBookTicket(AirLine *line,string fiNum,int tiNu

26、m,int whichWeek)for(int i=0;isize;i+)if(linei.GetFlightNum()=fiNum)int ti=linei.IfAwaitBook(tiNum,whichWeek);if(ti=0)cout没有符合条件的候补客户endl;elsecout您好,您已登记候补,已有退票客户,现在为您订票:endl;TransactBookTicket(linei,ti,whichWeek);return ;void InitAirLine(AirLine *line)line0.airNum=0000;line0.endPoint=北京;line0.flight

27、Num=8000;for(int i=1;i8;i+)line0.seatNumi=maxSeatNum;line0.seatRemaini=maxSeatNum;line0.week1=true;line0.week2=true;line1.airNum=0001;line1.endPoint=济南;line1.flightNum=8001;for(int i=1;i8;i+)line1.seatNumi=maxSeatNum;line1.seatRemaini=maxSeatNum;line1.week1=true;line1.week2=true;line2.airNum=0002;li

28、ne2.endPoint=重庆;line2.flightNum=8002;for(int i=1;i8;i+)line2.seatNumi=maxSeatNum;line2.seatRemaini=maxSeatNum;line2.week1=true;line2.week2=true;line3.airNum=0003;line3.endPoint=北京;line3.flightNum=8003;for(int i=1;i8;i+)line3.seatNumi=maxSeatNum;line3.seatRemaini=maxSeatNum;line3.week1=true;line3.wee

29、k2=true;line4.airNum=0004;line4.endPoint=上海;line4.flightNum=8004;for(int i=1;i8;i+)line4.seatNumi=maxSeatNum;line4.seatRemaini=maxSeatNum;line4.week1=true;line4.week2=true;line5.airNum=0005;line5.endPoint=深圳;line5.flightNum=8005;for(int i=1;i8;i+)line5.seatNumi=maxSeatNum;line5.seatRemaini=maxSeatNum;line5.week1=true;line5.week2=true;line6.airNum=0006;line6.endPoint=大连;line6.flightNum=8006;for(int i=1;i8;i+)line6.seatNumi=maxSeatNum;line6.seatRemaini=maxSeatNum;line6.week1=true;line6.week2=true;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1