数据结构课程设计之飞机订票系统_第1页
数据结构课程设计之飞机订票系统_第2页
数据结构课程设计之飞机订票系统_第3页
数据结构课程设计之飞机订票系统_第4页
数据结构课程设计之飞机订票系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛理工大学数据结构课程设计报告题目飞机订票系统院(系)学生姓名班级学号起迄日期指导教师20102011年度第2学期指导教师评语成绩签名年月日一、需求分析1问题描述设计一个模拟飞机订票系统,通过此系统可以录入、查询、修改航班情况,完成用户订票和退票功能,并且可以保存客户和航班的资料。2基本功能1,录入航班信息。没个航班的信息包括航班号,起飞、抵达城市,座位总数,剩余座位数。数据由使用者输入。数据存储在TXT文件中,采用线性表的链式结构。2,加载航班和客户信息。可以自动加载保存在TXT文件中的航班和客户的信息。3,查询航班。可以通过输入航班号,查询该航班的所有信息。可以通过输入起飞抵达的城市,查询航班的信息。4,订票。客户的信息包括姓名,证件号,所订票的航班号,座号。用户输入要订票的航班号,如果该航班未满,则订票成功,并记录客户的信息。如果该航班已满,则订票失败,输出所有未满的航班信息,供用户选择。5,退票。删除退票用户的订票信息,相应的航班的剩余票数增加1。6,修改航班信息。用户输入要修改的航班号,和要修改的内容,修改该航班的相应信息。7,保存操作。把当前的航班信息,和用户信息分别保存在TXT文件中。8,输出所有客户信息。按一定的格式输出用户的姓名,证件号码,航班号,座号。9,输出所有航班信息。按一定的格式输出所有的航班的航班号,起飞抵达城市,座位总数,剩余座位数。0,退出系统。3输入输出在控制台下,根据提示输入要完成功能的标号,然后在提示下选择性的输入航班号、起飞抵达地、证件号码,或者姓名等。系统会根据用户的输入输出相应的航班信息或者用户信息。二、概要设计1设计思路对于航班和用户,分别定义不同的数据结构,并且采用线性表的链式结构进行存储。然后根据要完成的功能,分模块用函数实现。所用到的算法主要有链表的创建,增加,遍历,插入,删除。2数据结构设计采用的逻辑结构是线性结构。存储结构是链式结构。/航线结构体。TYPEDEFSTRUCTAIRLINECHARLINE_NUM10/航班号CHARSTART_PLACE20/起飞地CHAREND_PLACE20/目的地INTTOTAL/座位总数INTLEFT/剩余座位STRUCTAIRLINENEXT/下一个结点AIRLINE/航线结构体的头结点。TYPEDEFSTRUCTAIRLINEHEADINTCOUNTAIRLINENEXTAIRLINEHEAD/客户结构体TYPEDEFSTRUCTCLIENTCHARNAME20/顾客名CHARID10/顾客证件号CHARLINE_NUM10/航班号INTSEAT_NUM/座位号STRUCTCLIENTNEXT/下一个结点CLIENT/客户结构体的头结点。TYPEDEFSTRUCTCLIENTHEADINTCOUNTCLIENTNEXTCLIENTHEAD采用线性链表的原因1,航班情况和客户信息与均成线性,与线性表的结构相符合。2,由于本系统对数据的插入和删除较频繁,所以更适合链式存储结构。3软件结构设计/对航班的操作/AIRLINEHEADIMPORTINTN,AIRLINEHEADPHEADLINE/录入航班函数,N为所要录入航班的数量;AIRLINEQUERYAIRLINEHEADPHEAD/查询航班情况VOIDDISPLAY_LINEAIRLINENODE/打印一个航班结点的所有信息到屏幕VOIDDISPLAY_ALL_LINEAIRLINEHEADHEADLINE/打印所有航班的信息到屏幕INTCHANGE_LINEAIRLINEHEADHEADLINE/修改航班信息。VOIDDISPLAY_LEFT_AIRLINEAIRLINEHEADHEADLINE/输出未售完票的航班的信息/对客户的操作/VOIDDISPLAY_CLIENTCLIENTNODENULL/打印一个客户节点的信息到屏幕。VOIDDISPLAY_ALL_CLIENTCLIENTHEADHEADCLIENT/打印所有客户信息到屏幕。INTBOOKTICKETAIRLINEHEADHEADLINE,CLIENTHEADHEADCLIENT/订票INTRETURNTICKETAIRLINEHEADHEADLINE,CLIENTHEADHEADCLIENT/退票。/对文件的操作/INTSAVEMESSAGEAIRLINEHEADHEADLINE,CLIENTHEADHEADCLIENT/保存航班和客户的信息到相应的TXT文件中。INTLOADMESSAGEAIRLINEHEADHEADLINE,CLIENTHEADHEADCLIENT/加载保存在文件中的信息。模块之间的关系框图主函数(MAIN录入航班信息IMPORT加载航班信息LOADMESSAGE查询航线信息QUERY客户订票BOOKTICKET客户退票RETURNTICKET保存操作SABEMESSAGE输出所有航班信息DISPLAY_ALL_LINE输出所有客户信息DISPLAY_ALL_CLIENT三、详细设计1定义程序中所有用到的数据及其数据结构,及其基本操作的实现;/航线结构体。TYPEDEFSTRUCTAIRLINECHARLINE_NUM10/航班号CHARSTART_PLACE20/起飞地CHAREND_PLACE20/目的地INTTOTAL/座位总数INTLEFT/剩余座位STRUCTAIRLINENEXT/下一个结点AIRLINE/航线结构体的头结点。TYPEDEFSTRUCTAIRLINEHEADINTCOUNTAIRLINENEXTAIRLINEHEAD/客户结构体TYPEDEFSTRUCTCLIENTCHARNAME20/顾客名CHARID10/顾客证件号CHARLINE_NUM10/航班号INTSEAT_NUM/座位号STRUCTCLIENTNEXT/下一个结点CLIENT/客户结构体的头结点。TYPEDEFSTRUCTCLIENTHEADINTCOUNTCLIENTNEXTCLIENTHEAD2主函数和其他函数的算法;/主函数/VOIDMAINAIRLINEHEADHEADLINENEWAIRLINEHEADHEADLINECOUNT0HEADLINENEXTNULLCLIENTHEADHEADCLIENTNEWCLIENTHEADHEADCLIENTCOUNT0HEADCLIENTNEXTNULLWHILE1MAIN_MENUINTNCOUTNCOUTNUMCOUTLINE_NUMAIRLINETEMPTEMPHEADLINENEXTWHILETEMPIFSTRCMPTEMPLINE_NUM,LINE_NUM0BREAKTEMPTEMPNEXTIFTEMPCOUTLEFT0COUTCUSTOMIDCOUTCUSTOMNAMECOUTSEAT_NUMTEMPTOTALTEMPLEFT1CUSTOMNEXTNULLSTRCPYCUSTOMLINE_NUM,LINE_NUMTEMPLEFTHEADCLIENTCOUNTCUSTOMNEXTHEADCLIENTNEXTHEADCLIENTNEXTCUSTOMCOUTIDAIRLINEAIRLINETEMPHEADLINENEXTCLIENTCLIENTTEMPHEADCLIENTNEXTIFNULLAIRLINETEMPCOUTID,ID0/要删除的节点为第一个时。STRCPYLINE_NUM,CLIENTTEMPLINE_NUMHEADCLIENTNEXTCLIENTTEMPNEXTDELETECLIENTTEMPWHILEAIRLINETEMP/修改对票客户所对应的航班的售票信息。IFSTRCMPLINE_NUM,AIRLINETEMPLINE_NUM0AIRLINETEMPLEFTBREAKAIRLINETEMPAIRLINETEMPNEXTCOUTNEXT/要删除的节点不是第一个时。IFSTRCMPCLIENTTEMPNEXTID,ID0STRCPYLINE_NUM,CLIENTTEMPNEXTLINE_NUMDELNEXTCLIENTTEMPNEXTNEXTDELETECLIENTTEMPNEXTCLIENTTEMPNEXTDELNEXT/WHILEAIRLINETEMP/修改对票客户所对应的航班的售票信息。IFSTRCPYLINE_NUM,AIRLINETEMPLINE_NUM0AIRLINETEMPLEFTBREAKAIRLINETEMPAIRLINETEMPNEXTCOUTNEXTCOUTCOUNTNEXTWHILELINETEMPOUTLINELINE_NUMSTART_PLACEEND_PLACETOTALLEFTNEXTOUTLINECLOSECOUTCOUNTNEXTWHILECLIENTTEMPOUTCLIENTNAMEIDLINE_NUMSEAT_NUMNEXTOUTCLIENTCLOSECOUTINCLUDEUSINGNAMESPACESTDINCLUDEINCLUDETYPEDEFSTRUCTCLIENTCHARNAME20/顾客名CHARID10/顾客证件号CHARLINE_NUM10/航班号INTSEAT_NUM/座位号STRUCTCLIENTNEXT/下一个结点CLIENTTYPEDEFSTRUCTCLIENTHEADINTCOUNTCLIENTNEXTCLIENTHEADTYPEDEFSTRUCTAIRLINECHARLINE_NUM10/航班号CHARSTART_PLACE20/起飞地CHAREND_PLACE20/目的地INTTOTAL/座位总数INTLEFT/剩余座位STRUCTAIRLINENEXT/下一个结点AIRLINETYPEDEFSTRUCTAIRLINEHEADINTCOUNTAIRLINENEXTAIRLINEHEADAIRLINEHEADIMPORTINTN,AIRLINEHEADPHEADLINE/录入航班函数,N为所要录入航班的数量;AIRLINETEMPNEWAIRLINETEMPNEXTNULLPHEADLINENEXTTEMPPHEADLINECOUNTNFORINTI0ITEMPLINE_NUMCOUTTEMPSTART_PLACECOUTTEMPEND_PLACECOUTTEMPTOTALTEMPLEFTTEMPTOTALCOUTNEXTNEWAIRLINEIFTEMPNEXTNULLCOUTNEXTNEXTNULLTEMPTEMPNEXTRETURNPHEADLINEAIRLINEQUERYAIRLINEHEADPHEAD/查询航班情况AIRLINEFINDNULLAIRLINETEMPCOUTSELECTCOUTLINE_NUMTEMPPHEADNEXTWHILETEMPIFSTRCMPTEMPLINE_NUM,LINE_NUM0FINDTEMP/DISPLAY_LINEFINDRETURNTEMPBREAKELSETEMPTEMPNEXTIFTEMPCOUTSTART_PLACECOUTEND_PLACE/AIRLINETEMPTEMPPHEADNEXTWHILETEMPIFSTRCMPTEMPSTART_PLACE,START_PLACE0/RETURNTEMPBREAKTEMPTEMPNEXTIFTEMPCOUTLINE_NUMSTART_PLACEEND_PLACETOTALLEFTNEXTIFNODECOUTCOUNTNEXTINTCHANGE_LINEAIRLINEHEADHEADLINE/修改航班信息。COUTNEXTWHILETEMPDISPLAY_LINETEMPTEMPTEMPNEXTCOUTSELECTCOUT3|SELECTNEXTAIRLINEMALLOCSIZEOFAIRLINETEMPNEXTNEWAIRLINETEMPTEMPNEXTCOUTTEMPLINE_NUMCOUTTEMPSTART_PLACECOUTTEMPEND_PLACECOUTTEMPTOTALTEMPLEFTTEMPTOTALTEMPNEXTNULLHEADLINECOUNTCOUTLINE_NUMAIRLINEDELLINEDELLINEHEADLINENEXTWHILEDELLINEIFSTRCMPDELLINENEXTLINE_NUM,LINE_NUM0AIRLINEPLINKPLINKDELLINENEXTNEXT/FREEDELLINENEXTDELETEDELLINENEXTDELLINENEXTPLINKHEADLINECOUNTDELLINEDELLINENEXTIFDELLINE0COUTLINE_NUM3TEMPHEADLINENEXTWHILETEMPIFSTRCMPTEMPNEXTLINE_NUM,LINE_NUM30COUTNEXTIFTEMP0COUTNAMEIDSEAT_NUMLINE_NUMNEXTIFNODECOUTNEXTVOIDDISPLAY_LEFT_AIRLINEAIRLINEHEADHEADLINE/输出未售完票的航班的信息。AIRLINENODEHEADLINENEXTIFNODECOUTLEFTNODETOTALNODENODENEXTDISPLAY_LINENODEINTBOOKTICKETAIRLINEHEADHEADLINE,CLIENTHEADHEADCLIENT/订票/HEADCLIENTCOUNT0COUTLINE_NUMAIRLINETEMPTEMPHEADLINENEXTWHILETEMPIFSTRCMPTEMPLINE_NUM,LINE_NUM0BREAKTEMPTEMPNEXTIFTEMPCOUTLEFT0COUTCUSTOMIDCOUTCUSTOMNAMECOUTSEAT_NUMTEMPTOTALTEMPLEFT1CUSTOMNEXTNULLSTRCPYCUSTOMLINE_NUM,LINE_NUM/CLIENTCLIENTTEMPNULLCLIENTTEMPHEADCLIENTNEXTIFCLIENTTEMPNULL/线性表为空表的时候HEADCLIENTNEXTCUSTOMTEMPLEFTHEADCLIENTCOUNTCOUTNEXT/线性表不为空表时,寻找最后结点。CLIENTTEMPNEXTCUSTOMTEMPLEFTHEADCLIENTCOUNTCOUTLEFTHEADCLIENTCOUNTCUSTOMNEXTHEADCLIENTNEXTHEADCLIENTNEXTCUSTOMCOUTIDAIRLINEAIRLINETEMPHEADLINENEXTCLIENTCLIENTTEMPHEADCLIENTNEXTIFNULLAIRLINETEMPCOUTID,ID0/要删除的节点为第一个时。STRCPYLINE_NUM,CLIENTTEMPLINE_NUMHEADCLIENTNEXTCLIENTTEMPNEXTDELETECLIENTTEMPWHILEAIRLINETEMP/修改对票客户所对应的航班的售票信息。IFSTRCMPLINE_NUM,AIRLINETEMPLINE_NUM0AIRLINETEMPLEFTBREAKAIRLINETEMPAIRLINETEMPNEXTCOUTNEXT/要删除的节点不是第一个时。IFSTRCMPCLIENTTEMPNEXTID,ID0STRCPYLINE_NUM,CLIENTTEMPNEXTLINE_NUMDELNEXTCLIENTTEMPNEXTNEXTDELETECLIENTTEMPNEXTCLIENTTEMPNEXTDELNEXT/WHILEAIRLINETEMP/修改对票客户所对应的航班的售票信息。IFSTRCPYLINE_NUM,AIRLINETEMPLINE_NUM0AIRLINETEMPLEFTBREAKAIRLINETEMPAIRLINETEMPNEXTCOUTNEXTCOUTCOUNTNEXTWHILELINETEMPOUTLINELINE_NUMSTART_PLACEEND_PLACETOTALLEFTNEXTOUTLINECLOSECOUTCOUNTNEXTWHILECLIENTTEMPOUTCLIENTNAMEIDLINE_NUMSEAT_NUMNEXTOUTCLIENTCLOSECOUTNEXTNULLHEADCLIENTNEXTNULLIFSTREAMINAIR“AIRLINETXT“IFINAIRCOUTHEADLINECOUNTFORINTI0ICOUNTIAIRLINENODELINENEWAIRLINEINAIRNODELINELINE_NUMNODELINESTART_PLACENODELINEEND_PLACENODELINETOTALNODELINELEFTNOD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论