c++课程设计航班订票系统docWord格式.docx

上传人:b****8 文档编号:22263521 上传时间:2023-02-03 格式:DOCX 页数:22 大小:65.11KB
下载 相关 举报
c++课程设计航班订票系统docWord格式.docx_第1页
第1页 / 共22页
c++课程设计航班订票系统docWord格式.docx_第2页
第2页 / 共22页
c++课程设计航班订票系统docWord格式.docx_第3页
第3页 / 共22页
c++课程设计航班订票系统docWord格式.docx_第4页
第4页 / 共22页
c++课程设计航班订票系统docWord格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

c++课程设计航班订票系统docWord格式.docx

《c++课程设计航班订票系统docWord格式.docx》由会员分享,可在线阅读,更多相关《c++课程设计航班订票系统docWord格式.docx(22页珍藏版)》请在冰豆网上搜索。

c++课程设计航班订票系统docWord格式.docx

"

constintF=0,constintP=0,constintD=0,constintM=0,constintL=0);

//对已订票的客户的信息的操作的类

classPOList

private:

voidinit();

PsgOn*head;

PsgOn*tail;

PsgOn*fence;

intleftcnt;

intrightcnt;

intFli;

POList(intsize=10);

voidclear();

boolinsert(charN[20],constintB,constintR);

boolappend(charN[20],constintB,constintR);

boolremove(char*N,int&

B);

voidsetStart();

voidsetEnd();

voidprev();

voidnext();

intleftLength()const;

intrightLength()const;

boolgerValue(char*N,int&

B,int&

R)const;

intn=0;

voidShowAllFlight(FlightNode*F,POList*B);

voidaddFlight(FlightNode*F,POList*B);

voidShowOneFlight(FlightNode*F);

voidBookTicket(FlightNode*F,POList*B);

voidReturnTicket(FlightNode*F,POList*B);

#endif

//PsgOn中的函数的实现

PsgOn:

:

PsgOn(charN[20],constintB,constintR,PsgOn*Ne)

{for(inti=0;

i<

=20;

i++)

{

Name[i]=N[i];

}

Booknum=B;

Rank=R;

next=Ne;

}

PsgOn(PsgOn*Ne)

{next=Ne;

//POList中的函数的实现

voidPOList:

init()

fence=tail=head=newPsgOn;

leftcnt=rightcnt=0;

}

POList:

POList(intsize){init();

boolPOList:

insert(charN[20],constintB,constintR)

fence->

next=newPsgOn(N,B,R,fence->

next);

if(tail==fence)tail=fence->

next;

rightcnt++;

returntrue;

append(charN[20],constintB,constintR)

tail=tail->

next=newPsgOn(N,B,R,NULL);

rightcnt++;

returntrue;

remove(char*N,int&

B)

if(fence->

next==NULL)returnfalse;

N=fence->

next->

Name;

B=fence->

Booknum;

PsgOn*ltemp=fence->

next=ltemp->

if(tail==ltemp)tail=fence;

deleteltemp;

rightcnt--;

setStart()

{fence=head;

rightcnt+=leftcnt;

leftcnt=0;

setEnd()

{fence=tail;

leftcnt+=rightcnt;

rightcnt=0;

prev()

PsgOn*temp=head;

if(fence==head)return;

while(temp->

next!

=fence)temp=temp->

fence=temp;

leftcnt--;

rightcnt++;

next()

if(fence!

=tail)

{fence=fence->

rightcnt--;

leftcnt++;

intPOList:

leftLength()const

{returnleftcnt;

rightLength()const

{returnrightcnt;

gerValue(char*N,int&

R)const

if(rightLength()==0)returnfalse;

R=fence->

Rank;

FlightNode:

FlightNode(charT[20],constintF,constintP,constintD,constintM,constintL)

Terminus[i]=T[i];

Flight=F;

Plane=P;

Day=D;

Maxnum=M;

Left=L;

//列举全部航线

voidShowAllFlight(FlightNode*F,POList*B)

cout<

<

---------------------------------------------"

endl;

航班号"

\t"

终点站"

飞行日"

for(inti=1;

n;

{

cout<

F[i].Flight<

F[i].Terminus<

F[i].Day<

你可以进行以下操作:

1.查看单条航线;

<

2.录入新的航班信息"

3.返回上一级.\n"

请选择:

;

intchioce;

top2:

cin>

>

chioce;

if(chioce==1)

ShowOneFlight(F);

elseif(chioce==2)

addFlight(F,B);

elseif(chioce==3)

return;

else

输入错误!

请重新选择:

gototop2;

voidaddFlight(FlightNode*F,POList*B)

inti=0;

while(n<

50){

请输入航班的信息:

endl

<

请输入新航班的终点站名:

cin>

F[n].Terminus;

do{cout<

请输入新航班的航班号:

F[n].Flight;

if(F[n].Flight%5!

=0)

{cout<

输入有误,请重新输入."

i=1;

else{

for(intj=0;

j<

j++)

if(F[n].Flight==F[j].Flight)

{cout<

航班号已存在,请重新输入。

i=1;

break;

}while(i);

请输入新航班的飞机号:

F[n].Plane;

请输入新航班的飞行日:

F[n].Day;

请输入新航班的成员定额:

F[n].Maxnum;

请输入如新航班的余票量:

F[n].Left;

B[n].Fli=F[n].Flight;

录入成功"

n++;

是否继续录入(y/n)"

charch;

top10:

ch;

if(ch=='

y'

elseif(ch=='

n'

gototop10;

//查询单条航线

voidShowOneFlight(FlightNode*F)

charT[20];

intchoice;

cout<

请输入终点站名称:

\n"

cin>

T;

FlightNodetemp[50];

intm=0;

for(inti=0;

=n;

{

if(strcmp(T,F[i].Terminus)==0)

{temp[m]=F[i];

m++;

}

if(m==0)cout<

无此终点站"

else

{

FlightNodetemp1=temp[0];

cout<

航班号:

temp[0].Flight<

ends<

飞机号:

temp[0].Plane<

飞行日:

temp[0].Day<

余票额:

temp[0].Left<

for(intj=1;

m;

{

if(temp[j].Day!

{

cout<

temp[j].Flight<

temp[j].Plane<

temp[j].Day<

temp[j].Left<

if((temp[j].Day>

=3)&

&

(temp[j-1].Day>

temp[j].Day))temp1=temp[j];

}

}

最近一天的航班:

<

temp1.Flight<

temp1.Plane<

temp1.Day<

temp1.Left<

}

请选择所要的操作:

1.继续查询2.返回上一级\n"

top3:

choice;

if(choice==1)

ShowOneFlight(F);

elseif(choice==2)

return;

gototop3;

voidBookTicket(FlightNode*F,POList*B)

intflag=0;

intFl;

intN;

charNa[20];

intchoice;

inttemp;

请输入需乘坐的航班号:

top6:

Fl;

if(!

(Fl%5==0))

无此航班号,请重新输入:

gototop6;

请输入订票额:

N;

请输入您的名字:

Na;

for(inti=0;

if(Fl==B[i].Fli){temp=i;

flag=1;

if(flag==0){cout<

无此航班\n"

return;

if(F[temp].Left>

=N)

charchoice1;

尚有余票,"

F[temp].Day<

F[temp].Plane<

你要订"

N<

张票,确定订票?

(N/Y)"

cin>

choice1;

switch(choice1)

case'

Y'

B[temp].append(Na,N,1);

F[temp].Left=F[temp].Left-N;

cout<

订票成功!

default:

return;

else

余票不足,订票失败"

请选择下一步操作:

1.继续订票2.退票3.返回上一级\n"

top4:

if(choice==1)

BookTicket(F,B);

elseif(choice==2)

ReturnTicket(F,B);

elseif(choice==3)

return;

gototop4;

voidReturnTicket(FlightNode*F,POList*B)

intFtemp;

charNtemp[20];

intBoNum;

intflag1=0;

boolflag2;

flag=0;

intLength;

intLengthR;

请输入要退票的航班号:

Ftemp;

请输入你的名字:

Ntemp;

if(Ftemp==B[i].Fli){temp=i;

flag1=1;

if(flag1==0){cout<

B[temp].setEnd();

Length=B[temp].leftLength();

Length<

B[temp].setStart();

for(intj=0;

=Length;

if(strcmp(B[temp].fence->

Name,Ntemp)==0)

B[temp].prev();

B[temp].remove(Ntemp,BoNum);

F[temp].Left+=BoNum;

flag=1;

B[temp].next();

if(flag==1)

退票成功!

elsecout<

对不起,没有你订票的记录!

1.继续退票2.订票3.返回上级菜单\n"

top5:

ReturnTicket(F,B);

BookTicket(F,B);

elseif(choice==3)

gototop5;

voidmain()

{

FlightNodeF[50];

POListB[50];

//定义各条航线的详细信息

F[0]=FlightNode("

NULL"

1000,1,1,0,0);

B[0]=100;

F[1]=FlightNode("

北京"

1005,100,4,100,100);

B[1].Fli=1005;

F[2]=FlightNode("

哈尔滨"

1010,101,5,100,100);

B[2].Fli=1010;

F[3]=FlightNode("

长春"

1015,102,4,100,100);

B[3].Fli=1015;

F[4]=FlightNode("

天津"

1020,103,2,100,100);

B[4].Fli=1020;

F[5]=FlightNode("

西安"

1025,104,1,100,100);

B[5].Fli=1025;

F[6]=FlightNode("

拉萨"

1030,105,6,100,100);

B[6].Fli=1030;

F[7]=FlightNode("

杭州"

1035,106,7,100,100);

B[7].Fli=1035;

F[8]=FlightNode("

海口"

1040,107,1,100,100);

B[8].Fli=1040;

F[9]=FlightNode("

台北"

1045,108,2,100,100);

B[9].Fli=1045;

F[10]=FlightNode("

东京"

1050,109,3,100,100);

B[10].Fli=1050;

F[11]=FlightNode("

伦敦"

1055,110,4,100,100);

B[11].Fli=1055;

F[12]=FlightNode("

纽约"

1060,111,5,100,100);

B[12].Fli=1060;

F[13]=FlightNode("

巴黎"

1060,112,6,100,100);

B[13].Fli=1060;

F[14]=FlightNode("

悉尼"

1065,113,7,100,100);

B[14].Fli=1065;

F[15]=FlightNode("

温哥华"

1070,114,1,100,100);

B[15].Fli=1070;

F[16]=FlightNode("

华盛顿"

1075,115,2,100,100);

B[16].Fli=1075;

F[17]=FlightNode("

新加坡"

1080,116,3,100,100);

B[17].Fli=1080;

F[18]=FlightNode("

平壤"

1085,117,4,100,100);

B[18].Fli=1085;

F[19]=FlightNode("

汉城"

1090,118,5,100,100);

B[19].Fli=1090;

n=20;

while

(1)

++++++++++++++++++++++++++++++++++++++++++++++++++"

***欢迎使用航空客运订票系统!

***"

你可以进行以下的操作:

1==>

查询已有航线\n"

2==>

录入新的航线

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

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1