目录一.设计目的..............................................................................................2二.设计内容..............................................................................................2三.概要设计.............................................................................................21.功能模块图....................................................................................22.各个模块详细的功能描述............................................................3四.详细设计........................................................................................41.各功能函数的数据流程图............................................................42.重点设计及编码............................................................................7五.使用说明.............................................................................................81.主界面.............................................................................................82.机票信息管理(保存)................................................................93.订票系统使用..............................................................................114.退票系统......................................................................................12六.调试情况,设计技巧及体会..........................................................131、调试情况......................................................................................132.对设计及调试过程的心得体会:.................................................13七.参考文献...........................................................................................14八.附录:源代码..................................................................................14河南城建学院《数据结构程序设计》软件工程2一.设计目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。数据结构课程设计是专为学习了第一门计算机高级语言的学生设立的,安排该课程设计的目的,就是要通过一次集中的强化训练,使学生能及时地巩固已学的知识,补充未学的但又是必需的内容,进一步提高程序设计的能力。进一步巩固、加深学生所学专业课程《数据结构》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。本课程设计将以学生上机进行程序设计为主,教师的适当讲授为辅。利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,帮助学生熟悉程序编写,及时查究错误,独立完成。二.设计内容飞机订票系统通过此系统可以实现如下功能:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票:可退票,退票后修改相关数据文件;根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。三.概要设计1.功能模块图河南城建学院《数据结构程序设计》软件工程3退图1系统总体结构图2.各个模块详细的功能描述本程序能输入最多1000个机票信息,管理员在保存功能中通过密码验证输入机票信息,可以对机票信息进行查询;修改;删除等功能。一般用户可以使用订票;显示;退票等功能,在订票时用户输入密码在退票时通过验证后成功退票。具体功能如下:第一部分:保存模块1机票信息录入;2查询所有机票;3修改机票信息;4删除机票信息有机票信息的管理,对机票信息输入,查询,修改,删除。第二部分:订票模块:当有机票信息后可以订票,订票时输入航班号(进入时有可以查询所有机票信息)出现航班信息,确定订票后输入个人信息:姓名,性别,证件号,联系电话,密码(退票时用)。出现您的个人信息,确定后回车订票结束。订票查询所有航输入旅客信息输入航班号显示全部航班号出发地目的地退票查询所有姓名证件号查询密码输入航班号航班信息和旅客信录票机票信息录入查询所有机票修改机票删除机票信息飞机订票系统河南城建学院《数据结构程序设计》软件工程4第三部分:显示模块:1全部;2航班号;3出发地;4目的地按上述方式查看机票信息第四部分:退票模块:(可以选择查看航班信息)证件号(或姓名)当输入姓名或证件号后会显示您定的航班信息,再要求输入密码,当密码正确时会显示您的个人信息,回车再是否确定退票。第五部分:查询模块:(输入管理密码)输入航班号,显示航班信息和所有乘客个人信息四.详细设计1.各功能函数的数据流程图(1)该模块包括密码的输入并验证,修改密码。算法如下:密码模块函数voidcheckcode()流程图河南城建学院《数据结构程序设计》软件工程5(2)机票信息录入voidinputinfo()流程图(3)订票系统voidbookticket()流程图在有航班信息的情况下可以进行订票操作河南城建学院《数据结构程序设计》软件工程6(4)显示模块voiddisplay()流程图(5)退票系统voidreturnticket()流程图河南城建学院《数据结构程序设计》软件工程72.重点设计及编码3.1程序的模块(1)保存模块:含有机票信息的管理,对机票信息输入,查询,修改,删除。(2)订票模块:当有机票信息后可以订票,订票时输入航班号(进入时有可以查询所有机票信息)出现航班信息,确定订票后输入个人信息:姓名,性别,证件号,联系电话,密码(退票时用)。出现您的个人信息,确定后回车订票结束。(3)显示模块:含全部;航班号;出发地;目的地等方式查询所有机票信息。(4)退票模块:当输入姓名或证件号后会显示您定的航班信息,再要求输入密码,当密码正确时会显示您的个人信息,回车再是否确定退票。(5)查询模块:(输入管理密码)输入航班号,显示航班信息和所有乘客个人信息3.2结构体structtravellerinfo//旅客信息结构{河南城建学院《数据结构程序设计》软件工程8charfightnum[10];//航班号charname[10];//姓名charsex[5];//性别charidnum[20];//证件号码charpassword[10];//密码charpoto[12];//联系电话};structfightinfo//机票信息结构体{charfightnum[10];//航班号charstart[8];//出发地chardestination[8];//目的地unsignedintprice;//价格unsignedintgoyear;//出发时间年unsignedintgomoth;//月unsignedintgoday;//日unsignedintgohour;//时unsignedintgominute;//分unsignedintarryear;//到达时间年unsignedintarrmoth;//月unsignedintarrday;//日unsignedintarrhour;//时unsignedintarrminute;//分unsignedintrebate;//折扣unsignedintallsticket;//总票数unsignedintsurplusticket;//剩余票数};structallfightinfo//机票全部结构{structtravellerinfofight;//旅客信息结构structfightinfofight1;//机票信息结构体};3.3文件的定义FILE*travellerfile=NULL;//存旅客信息数据文件FILE*fightfile=NULL;//存机票信息数据文件charfilename[]=旅客信息信息登记.dat;//记录旅客信息登记charfilename1[]=机票信息.dat;//记录机票信息五.使用说明1.主界面1、程序欢迎界面(对系统的说明,及程序分组名单)停留3s河南城建学院《数据结构程序设计》软件工程95-12、程序主界面(按数字1---5再回车)进入其他功能5-22.机票信息管理(保存)1、输入密码(第一次设置密码1234)机票信息管理河南城建学院《数据结构程序设计》软件工程105-32、选1进入机票信息录入5-43、选2查询所有航班信息5-54、选3修改航班信息,确定后进入查询所有航班河南城建学院《数据结构程序设计》软件工程115-65、输入航班号显示航班信息要求输入修改信息5-76、删除请谨慎,全部删除会删除所有文件5-83.订票系统使用1、定票时查询所有的航班信息5-82、输入正确的航班号河南城建学院《数据结构程序设计》软件工程125-93、订票时输入个人信息5-104.退票系统1、进入退票系统是否查询所有机票信息5-112、选择输入信息输入的方式并输入5-123、退票时的信息显示然后确定河南城建学院《数据结构程序设计》软件工程135-13六.调试情况,设计技巧及体会1、调试情况在订票系统中我们发现,在订票时我们的把机票信息中的剩余票数要减少一个,而在退票时我们的把剩余票数加以个,由于在文件的定义时不好把机票信息文件和旅客信息文件放一起,所以在修改机票剩余票数的是侯的打开两个文件然后得对两个文件进行修改。在保存模块需要把机票的信息录入进去,所以有很多部分都得写,像机票信息的录入,修改,删除,这样一来就像是写一个机票信息管理系统一样,这样一来导致这个文件会很大,很繁琐。但是还好c语言是面向过程的导致很多的程序代码重复,这样就在写好一部分代码以后就可以进行复制,然后进行修改就行,总体来说工作量还不是很大。2.对设计及调试过程的心得体会:通过本次