下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 航空客运订票系统—VC毕业设计(论文)

航空客运订票系统—VC毕业设计(论文).doc

航空客运订票系统—VC毕业设计(论文)

黎开少年
2017-10-18 0人阅读 举报 0 0 暂无简介

简介:本文档为《航空客运订票系统—VC毕业设计(论文)doc》,可适用于高等教育领域

航空客运订票系统VC毕业设计(论文)航空客运订票系统问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统以使上述业务可以借助计算机来完成。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级或)以及等候替补的客户名单(包括姓名、所需票量)作为示意系统全部数据可以只放在内存中系统能实现的操作和功能如下:查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行最近一天航班的日期和余票额承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况若尚有余票则为客户办理订票手续输出座位号若已满员或余票额少于订票额则需重新询问客户要求。若需要可登记排队候补承办退票业务:根据客户提供的情况(日期、航班)为客户办理退票手续然后查询该航班是否有人排队候补首先询问排在第一的客户若所退票额能满足他的要求则为他办理订票手续否则依次询问其他排队候补的客户概要设计存储结构设计typedefstructAlCustom已订票客户{charname姓名intcount订票量intlevel舱位等级AlCustom*next下一节点指针}AlCustom,*AlCustomLinktypedefstructWaitCustom等候替补的客户{charname姓名intcount所需票量WaitCustom*next下一节点指针}WaitCustomtypedefstructWaitQueue等待队列{WaitCustom*front队列头指针WaitCustom*rear尾指针}WaitQueuetypedefstructFlight航线{charterminus终点站名charflightno航班号charplaneno飞机号intweek飞行周日intcount乘客定额intrest余票量AlCustomLinkAllink指向成员名单链表的头指针WaitQueuewaitqueue等待替补队列}Flight主要算法设计主程序模块:voidmain(){初始化do{接受命令处理命令}while(命令!="退出")}查询航线模块实现查询功能voidfindFlight(){提示输入要查询航线的终点站名如果存在该航线则输出该航线信息否则提示不存在该航线}承办订票业务模块实现订票功能voiddingpiao(){提示输入航班号和订票数若不存在该航班号则提示不存在该航线否则{如果有余票则办理业务否则提示没有足够的余票询问是否候补若是则排队候补}}承办退票业务模块实现退票功能voidtuipiao(){提示输入航班号和飞行周日确认航班号和飞行周日都存在并且客户有订票则{执行退票为排队候补的客户办理订票业务}否则{提示有误}}测试用例设计航线条:hpshanghaihpbeijinghpguangzhou查询航线:shanghai承办订票业务:航班号数额姓名chengangjie舱位等级承办订票业务:航班号数额姓名zhenxi舱位等级承办退票业务:姓名chengangjie航班号飞行周日查询航线:终点站名:shanghai调试分析本次的设计比较困难需要实现较多的功能所以在调试过程中不太顺利主要是指针的修改。经过反复调试以后才得以解决。本程序航线采用数组的存储结构每条航线包含个域其中乘员名单域为指向乘员名单链表的头指针等候替补的客户名单域为分别指向对头和对尾的指针。订票函数是在退票业务模块中使用经验和体会通过这次的程序设计进一步理解了链表和队列结构的实现和应用。尤其需要注意的是:对于指针的修改要仔细否则会发生意想不到的结果。源程序清单和运行结果程序清单#include<iostreamh>#include<iomaniph>#include<stringh>#include<stdioh>#include<conioh>#defineFLIGHTNUM航线最大数量typedefstructAlCustom已订票客户{charname姓名intcount订票量intlevel舱位等级AlCustom*next下一节点指针}AlCustom,*AlCustomLinktypedefstructWaitCustom等候替补的客户{charname姓名intcount所需票量WaitCustom*next下一节点指针}WaitCustomtypedefstructWaitQueue等待队列{WaitCustom*front队列头指针WaitCustom*rear尾指针}WaitQueuetypedefstructFlight航线{charterminus终点站名charflightno航班号charplaneno飞机号intweek飞行周日intcount乘客定额intrest余票量AlCustomLinkAllink指向成员名单链表的头指针WaitQueuewaitqueue等待替补队列}FlightvoidCustominit(AlCustomLinkL){L=newAlCustomL>next=}voidCustominsert(AlCustomLinkL,AlCustomcustom){AlCustom*p=L,*newnode=newAlCustommemcpy((void*)newnode,custom,sizeof(AlCustom))newnode>next=p>nextp>next=newnode}voidcopyCustomLink(AlCustomLinkdest,AlCustomLinksource)复制已订票客户链表{AlCustomLinkp=sourceAlCustomLinkqAlCustom*pnewCustominit(dest)q=destwhile(p>next){pnew=newAlCustommemcpy(pnew,p>next,sizeof(AlCustom))pnew>next=q>next=pnewq=pnewp=p>next}}voidWaiterinit(WaitQueueQ){Qfront=Qrear=newWaitCustomQfront>next=}voidWaiterEn(WaitQueueQ,WaitCustomcustom){WaitCustom*newnode=newWaitCustommemcpy(newnode,custom,sizeof(WaitCustom))newnode>next=Qrear>next=newnodeQrear=newnode}boolWaiterDe(WaitQueueQ,WaitCustomcustom){if(Qrear==Qfront)returnfalsememcpy(custom,Qfront,sizeof(WaitCustom))WaitCustom*p=Qfront>nextQfront>next=p>nextif(Qrear!=Qfront)Qrear=Qfrontdeletepcustomnext=returntrue}voidcopyWaitQueue(WaitQueuedest,WaitQueuesource)复制等待队列{WaitCustom*p=sourcefrontWaiterinit(dest)while(p>next){WaiterEn(dest,*p)p=p>next}}intflightno航线数量FlightflightFLIGHTNUM航线数组voidinitFlight(Flightf)初始化一条航线{charch=strncpy((char*)f,ch,sizeof(Flight))Custominit(fAllink)Waiterinit(fwaitqueue)}voidinitFlight()初始化航线数组{flightno=charch=strncpy((char*)flight,ch,FLIGHTNUM*sizeof(Flight))for(inti=i<FLIGHTNUMi){Custominit(flightiAllink)Waiterinit(flightiwaitqueue)}}voidinsertFlight(Flightf)按终点站名有序插入航线到航线数组{inti=while(i<flightnostrcmp(fterminus,flightiterminus)==){i}for(intj=flightnoj>=ij){memcpy((void*)((flightj)),(void*)((flightj)),sizeof(Flight))}memcpy((void*)((flighti)),(void*)(f),sizeof(Flight))Custominit(flightiAllink)Waiterinit(flightiwaitqueue)copyCustomLink(flightiAllink,fAllink)copyWaitQueue(flightiwaitqueue,fwaitqueue)flightno}voidinit(){intmcout<<"请输入航线条数:"cin>>mfor(inti=i<=mi){FlightfinitFlight(f)cout<<"输入第"<<i<<"条航线:"<<endlcout<<"航班号:"cin>>fflightnocout<<"飞机号:"cin>>fplanenocout<<"终点站名:"cin>>fterminuscout<<"飞行周日:"cin>>fweekcout<<"成员定额:"cin>>fcountfrest=fcountinsertFlight(f)printf("n")}}intfindbyname(charterminus)根据终点站名查找{for(inti=i<flightnoi){if(strcmp(flightiterminus,terminus)==){returni}}return}intfindbyno(charno)根据航班号查找{for(inti=i<flightnoi){if(strcmp(flightiflightno,no)==){returni}}return}voidfindFlight()查询航线子模块{charterminuscout<<"请输入要查询航线的终点站号:"cin>>terminusintindex=findbyname(terminus)if(index==){printf("该航线不存在!n")return}cout<<setw()<<"航班号"<<setw()<<"飞机号"<<setw()<<"飞行周日"<<setw()<<"余票额"<<endlcout<<setw()<<flightindexflightno<<setw()<<flightindexplaneno<<setw()<<flightindexweek<<setw()<<flightindexrest<<endl<<endl}voiddingpiao(intindex){WaitCustom*p=flightindexwaitqueuefrontwhile(p!=flightindexwaitqueuerear){if(p>next>count<=flightindexcount){cout<<"为"<<p>next>name<<"办理订票手续"<<endlAlCustom*pnew=newAlCustompnew>count=p>next>countflightindexrest=p>next>countstrcpy(pnew>name,p>next>name)do{cout<<"请"<<p>next>name<<"输入所需要的舱位等级():"cin>>pnew>level}while(pnew>level<||pnew>level>)pnew>next=flightindexAllink>nextflightindexAllink>next=pnewWaitCustom*q=p>nextp>next=q>nextif(flightindexwaitqueuerear==q)flightindexwaitqueuerear=pdeleteq}}}voiddingpiao()承办订票业务子模块{charno航班号intcount订票量cout<<"请输入航班号和订票数额:"cin>>no>>countintindex=findbyno(no)if(index==){cout<<"该航线不存在"<<endlreturn}if(flightindexrest>=count)尚有余票{AlCustom*pnew=newAlCustomcout<<"请输入您的姓名:"cin>>pnew>namecout<<"请输入您要订的舱位等级:"cin>>pnew>levelpnew>count=countpnew>next=flightindexrest=countpnew>next=flightindexAllink>nextflightindexAllink>next=pnew}else没有余票{cout<<"该航班的余票额不能满足您的要求是否排队候补(yn):"coutflush()charselectdo{select=getch()}while(select!='y'select!='n')if(select=='y')排队候补{WaitCustom*pnew=newWaitCustomcout<<endlcout<<"请输入您的姓名:"cin>>pnew>namepnew>count=countpnew>next=flightindexwaitqueuerear>next=pnewflightindexwaitqueuerear=pnewcout<<flightindexwaitqueuerear>name<<endl}else{}}}voidtuipiao()承办退票业务子模块{cout<<"请输入您的姓名:"charnamecin>>namecout<<"请输入你要退票的航班号与飞行周日:"intweekcharnocin>>no>>weekboolisfind=falsefor(intindex=index<flightnoindex){if(flightindexweek==weekstrcmp(flightindexflightno,no)==){AlCustom*p=flightindexAllinkwhile(pp>next){if(strcmp(p>next>name,name)==){isfind=trueAlCustom*q=p>nextp>next=q>next{flightindexrest=q>countcout<<flightindexrest<<endldingpiao(index)为第index条航线排队等候的客户办理订票手续}deleteq}p=p>next}}}if(!isfind){cout<<"您没有订该天该航班的票!"<<endlreturn}cout<<"退票成功!"<<endl}voidwelcome(){cout<<"选择操作:"<<endlcout<<"查询航线"<<endlcout<<"承办订票业务"<<endlcout<<"承办退票业务"<<endlcout<<"退出"<<endl}voidmain(){initFlight()init()charchdo{welcome()do{ch=getch()}while(ch<''||ch>'')switch(ch){case'':findFlight()breakcase'':dingpiao()breakcase'':tuipiao()breakcase'':break}}while(ch!='')}运行结果:输入航线:查询航线:承办订票业务:承办退票业务:查询航线:

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/21

航空客运订票系统—VC毕业设计(论文)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利