数据结构课程设计航空客运订票系统文档格式.docx

上传人:b****6 文档编号:19021391 上传时间:2023-01-03 格式:DOCX 页数:25 大小:20.27KB
下载 相关 举报
数据结构课程设计航空客运订票系统文档格式.docx_第1页
第1页 / 共25页
数据结构课程设计航空客运订票系统文档格式.docx_第2页
第2页 / 共25页
数据结构课程设计航空客运订票系统文档格式.docx_第3页
第3页 / 共25页
数据结构课程设计航空客运订票系统文档格式.docx_第4页
第4页 / 共25页
数据结构课程设计航空客运订票系统文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数据结构课程设计航空客运订票系统文档格式.docx

《数据结构课程设计航空客运订票系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计航空客运订票系统文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

数据结构课程设计航空客运订票系统文档格式.docx

/*舱位等级的价格*/

Customer*CustName;

/*该航班的已定票乘客名单*/

Customer*ReplName;

/*该航班的候补乘客名单*/

structFlight*Next;

/*指示下一航线结点*/

}Flight,*PFlight;

intCustomer_Count=0;

/*所有航线的定票乘客总数*/

Flight*Head;

/*航线头指针*/

Flight*p2;

/*航线结点指针*/

Customer*Custp1[MAX];

/*各条航线乘客结点指针*/

Customer*Replp1[MAX];

/*各条航线候补结点指针*/

intIsEmpty=1;

/*是否有定票乘客*/

intIsReplace=1;

/*是否有候补乘客*/

Customer*prior;

/*满足要求的定票乘客的前结点,以作删除操作*/

intshouldsave=0;

/*-------------询问是否继续的函数-------------*/

charContinue()

charanswer;

while

(1)

{

printf("

\n\t您是否想继续(Y/N)?

"

);

scanf("

%s"

&

answer);

system("

cls"

if(answer=='

y'

||answer=='

Y'

return'

;

elseif(answer=='

n'

N'

else

\n\t输入有误,请重新输入!

}

}

/*---------------操作出错函数---------------*/

voidErrorMess()

\n\t对不起,您的操作有误!

getch();

/*--------------系统退出函数---------------*/

intExitSystem()

\n\t您是否想要退出系统(Y/N)?

return1;

return0;

/*--------------航线查找函数-------------*/

/*Find_Line()为重载函数*/

intFind_Line(PFlightL,char*key)/*核对航线是否唯一*/

intflag=0;

/*该标志位0表示未找到相关信息,反之即找到,以下标志位同理*/

Flight*p1;

p1=L;

/*赋航线首地址*/

if(p1==p2)/*首航线不作比较*/

returnflag;

while(p1!

=p2&

&

p1!

=NULL)/*本航班号不纳入比较范围,否则会一直提示航线不唯一*/

{

if(strcmp(p1->

Flight_No,key)==0)

flag=1;

break;

p1=p1->

Next;

/*指向下一航班结点*/

intFind_Line(PFlightL,char*key,PFlight&

p2,int&

Flight_No)/*航线查找函数*/

/*该标志位0表示未找到相关信息,反之即找到*/

/*赋航线首结点*/

=NULL)

Flight_No,key)==0)/*不包括当前航线*/

p2=p1;

/*指向下一航班结点*/

if(p1!

=NULL)/*遇结束符不作统计范围*/

Flight_No++;

/*---------------航班查找函数---------------*/

voidLine_search()

p1=Head;

charDesname[50];

//查询终点站航班关键字

if(Head==NULL)

printf("

\n\t没有到达您想要的终点站的航班!

getch();

return;

\n\t请输入终点站名:

Desname);

\n\t您所查询的航班的信息:

\n"

\n_____________________________________________________________________________\n"

=NULL)

Des_Name,Desname)==0)

Des_NameFlight_NoPlane_NoWeek_DayCust_NumFree_Num1_Price2_Price3_Price\n"

\n%-9s%-10s%-9s%-9d%-9d%-9d%-8d%-8d%-8d"

p1->

Des_Name,p1->

Flight_No,p1->

Plane_No,p1->

Week_Day,

p1->

Customer_Amount,p1->

Free_Amount,p1->

Price[0],p1->

Price[1],p1->

Price[2]);

}

\n______________________________________________________________________________\n"

Continue();

/*-----------------航线添加函数-------------*/

voidLine_Add()

/*建立临时航线结点*/

if(Head==NULL)/*航线为空*/

p1=p2=newFlight;

/*建立首个航线*/

Head=p2;

p1=newFlight;

/*建立航线结点*/

p2->

Next=p1;

/*前一航线结点指向当前航班结点*/

/*保留当前航班结点地址*/

\n\t添加新的航线!

p2->

Des_Name);

while

(1)/*数据合法性检验*/

\n\t请输入唯一的航班号:

Flight_No);

if(Find_Line(Head,p2->

Flight_No))/*存在航班号*/

\n\t航班号已经存在!

\n\t请输入飞机号:

Plane_No);

\n\t请输入航班日期(请输入1—7):

%d"

Week_Day);

if(p2->

Week_Day<

1||p2->

Week_Day>

7)

\n\t输入日期有误,请重新输入!

\n\t请输入座位数量:

Customer_Amount);

\n\t请输入头等舱的价钱:

Price[0]);

\n\t请输入二等舱的价钱:

Price[1]);

\n\t请输入三等舱的价钱:

Free_Amount=p2->

Customer_Amount;

/*剩余票数与乘员定额相同*/

CustName=NULL;

/*该航线定票乘客头指针为空*/

ReplName=NULL;

/*初始候补名单为空*/

shouldsave=1;

if(Continue()=='

Next=NULL;

/*航线的下一结点为空*/

/*------------航线是否为空函数-------------*/

intEmpty_Flight()

\n\t对不起,航线不存在,按任意键返回!

getch();

/*------------航线查看函数-----------------*/

voidLine_See()

if(Empty_Flight())/*航班线为空*/

\n\n\t航班信息:

\n____________________________________________________________________________\n"

\n\t按任意键返回!

/*-------------航线管理菜单------------*/

voidLinemanageMenu()

charc;

\n\t\t航线管理菜单:

\n_____________________________________________________________________________\n\n"

\t1.添加新的航线\n"

\t2.查询航线\n"

\t3.查看航线\n"

\t4.返回主菜单\n"

\t请选择您想要的服务:

c);

switch(c)

case'

1'

:

Line_Add();

break;

case'

2'

Line_search();

3'

Line_See();

4'

return;

/*---------------订票办理函数---------------*/

voidbookingMenu()

intTicket_Count,IDinfor,i,flag=0;

intFlight_No=0;

/*记录满足条件的航线的定票结点*/

/*记下满足条件的航线结点地址*/

Customer*p2;

/*临时性定票乘员结点*/

Customer*p3;

/*临时性候补乘员结点*/

charanswer[7];

/*用户输入的航班数据*/

chartemp;

inttag=0;

/*候补乘客标志位*/

intIsRepl=0;

/*是否执行候补操作标志位*/

\n\t现在您可以订票!

flag=0;

/*标志位清零以重新作出判断*/

Flight_No=0;

tag=0;

\n\t请输入航线号:

if(Find_Line(Head,answer,p1,Flight_No))/*调用航线查找函数,若存在则进行以下操作*/

\n\t请输入您想要订购的票的数量:

Ticket_Count);

if(Ticket_Count==0)

\n\t请再次输入飞机号:

if(p1->

Free_Amount>

=Ticket_Count)

Customer_Count++;

/*定票乘客总数增1*/

/*表明进入了订票实际操作*/

IsRepl=1;

/*定票量满足,无需进入候补操作*/

CustName==NULL)/*首个定票乘客,并记录相关属性*/

Custp1[Flight_No]=p2=newCustomer;

/*建立该航线的首位乘客结点*/

CustName=Custp1[Flight_No];

else/*建立该航线的后续乘客结点*/

p2=newCustomer;

Custp1[Flight_No]->

Next=p2;

Custp1[Flight_No]=p2;

IsEmpty=0;

/*定票乘员不为空*/

Amount=Ticket_Count;

/*订票数*/

IDinfor=p1->

Customer_Amount-p1->

Free_Amount+1;

/*算出座位号*/

IDinfor=IDinfor;

/*赋座位号*/

Free_Amount-=Ticket_Count;

/*减去定票数*/

\n\t请输入您的姓名:

Custp1[Flight_No]->

Name);

\n\t请输入舱位等级:

Rank);

if(!

(Custp1[Flight_No]->

Rank>

='

Rank<

))

\n\t请输入您的ID信息:

scanf("

IDinfor);

if(Ticket_Count<

10)/*为显示规整,作相应处理*/

\n\t"

\n\t恭喜您订票成功!

for(i=1;

i<

=Ticket_Count;

i++)/*打印座位号*/

\n\t您所预定的座位号是%d"

IDinfor++);

if(i%10==0)

}/*满足定票数*/

elseif(p1->

Free_Amount==0)

\n\t对不起,票已售完!

IsRepl=0;

\n\t对不起,当前没有多余的票!

IsRepl)

\n\t您是否想成为候补乘客(Y/N)?

temp);

if(temp=='

||temp=='

)/*以下为候补操作*/

ReplName==NULL)

Replp1[Flight_No]=p3=newCustomer;

/*建立该航线的首位候补乘客结点*/

ReplName=Replp1[Flight_No];

p3=newCustomer;

Replp1[Flight_No]->

Next=p3;

Replp1[Flight_No]=p3;

IsReplace=0;

/*候补乘客不为空*/

tag=1;

/*已选择列入候补乘客名单*/

Replp1[Flight_No]->

/*候补乘客的座位*/

/*候补乘客的订票数*/

(Replp1[Flight_No]->

\n\t输入有误,请重新输入."

\n\t没有剩余座位!

/*候补乘客无座提示*/

shouldsave=1;

}/*进入候补名单*/

}/*票数满足*/

}/*航线存在*/

\n\t对不起,航线不存在!

/*航线不存在*/

if(flag)/*此处不作处理,则会地址溢出*/

/*末位定票乘客的指针置空*/

if(tag)

/*末位候补乘客的指针置空*/

\n\t您已经成功排入候补订票队列中!

\n\t是否退出菜单?

(y/n)"

if(c=='

}/*while*/

}

/*-----------------订票乘客信息-----------------*/

voidDisplay_Reserve()

if(Empty_Flight())

\n\t订票乘客信息"

if(IsEmpty)

\n\t对不起,没有订票乘客信息!

NameFlight_NoPlane_NoTic_AmountDes_NameRank_NoID\n"

CustName!

p2=p1->

CustName;

while(p2!

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

当前位置:首页 > 自然科学

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

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