1河南城建学院课程设计报告书专业:计算机科学与技术课程设计名称:《数据结构课程设计》题目:飞机航班订票系统班级:xxx学号:x姓名:xx同组人员:x指导老师:x完成时间:2012-2-172摘要随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们出行越来越多,出行的方式也是百花齐放,作为空中重要的交通工具,飞机航空系统也在不断地得到优化,其中重要的一项就是飞机航空订票系统,因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务,需要我们认真去完成。本文采用C作为前台开发工具,VC6.0作为程序代码的实现,旨在实现对现有飞机订票系统中遇到的各种情况进行良好的改进,是作为嵌入式系统应用于机场的良好软件。关键词:C,VC6.0,飞机订票系统3目录目录.................................................................3第一章开发环境和开发工具.............................................41.1C语言简介.....................................................41.2开发背景........................................................41.3开发环境........................................................4第二章算法思想........................................................52.1系统需求分析....................................................52.2系统总体设计....................................................52.2.1系统设计目标...............................................52.2.2开发设计思想...............................................52.2.3系统功能模块设计...........................................62.3算法思想描述....................................................7第三章算法实现......................................................113.1数据结构.......................................................113.2程序模块.......................................................113.3各模块之间的调用关系...........................................123.4源程序代码.....................................................12第四章测试与分析....................................................214.1测试数据选择...................................................214.2测试结果分析...................................................22总结...............................................................22心得体会...............................................................22参考文献...........................................................234第一章开发环境和开发工具1.1C/C++语言介绍1.2开发背景随着科学技术的不断发展,计算机科学日渐成熟,其强大功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量各个国家科学化和现代化的重要标志,而交通方式的全面自动化、信息化则是其中重要的组成部分,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的航空订票系统具有一定的使用价值和现实意义。1.3开发环境本文所采用的开发环境主要是基于VC6.0和基于面向对象程序设计的c++。VC是个平台开工具。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。5第二章算法思想2.1系统需求分析随着经济全球化的推进以及企业激烈的竞争,各大机场订票系统已经越来越不能适应人们日常出行的局面,所以我们现在需要一个检索迅速、查找方便、易修改功能齐全方便的系统来适应我们的需求。问题的提出:为了减少人工工作量,提高工作效率,使机场管理员的工作更加有效的进行。2.2系统总体设计2.21系统设计目标本文研究开发的航空订票系统用于完成航空订票工作,有以下三个方面的目标:【1】支持航空管理公司更加便捷的管理【2】支持航空公司高效率的满足人们空行需求,包括与班机有关的订票,退票,查询等功能。【3】支持航空公司随时增加或者是删除航班信息2.22开发设计思想基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。●尽量达到操作过程中的直观、方便、实用、安全等要求。●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。●系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、等操作。62.23系统功能模块设计本系统分为六个模块:增加航班模块、浏览航班模块、查找航班模块、航班排序模块、订票模块、退票模块。得到如图所示系统功能模块图。图2-1系统功能模块图2.3算法思想描述【1】系统启动时通过输入航班信息来增加乘客的选择范围飞机航班订票系统增加航班信息浏览航班信息航班排序模块退票系统增加机票保存查找函数排序函数查找函数减少机票数目查找函数增加机票数目查找航班信息订票系统输出函数7【2】当选择功能1时,进入增加航班模块【3】当选择功能2时,进入浏览航班信息模块8【4】当选择功能3时,进入查找航班信息模块【5】当选择功能4时,进入航班排序模块,有两种选择一是从航班号从大到小,二是从航班号从小到大9【6】当需要订票时,可以选择功能5进入订票模块,【7】当有的乘客需要退票时也可以进入退票模块1011第三章算法实现3.1数据结构航空管理系统是一个数据库应用系统,航班的所有信息都保存在数据库中。3.2程序模块为实现函数功能特定义一下函数模型,具体程序参考程序源代码模块voidadd();//函数声明增加航班信息函数voidprint();//显示航班信息voidsearch();//查找航班信息voiddingpiao();//订票业务voidtuipiao();//退票voidread();//读取文件voidsave();//保存文件voidoutput();//输出格式voidpaixu();//航班排序voidchushihua();//系统初始化voidbuild();//建立数据文件voidpaixu1();//按航班号从小到大排序voidpaixu2();//从大到小123.3各模块之间的调用关系程序从主函数开始,首先调用chushihua函数用来判断系统本身是否已经有原始数据文件,如果已经有原始数据则调用read函数否则调用build函数用来创建数据文件。进入系统开始页面,当进入增加航班信息模块时调用add函数和save函数,进入浏览信息模块后调用print函数来显示已有数据文件,进入查询信息模块调用search函数,dingpiao和tuipiao函数中首先调用search函数,然后在相应的增加或者是减少飞机航票。3.4程序源代码#includestdio.h#includestring.h#includeprocess.h#defineN9999//定义最多的航班数#definePRINT%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count//宏定义输出格式structair//定义结构体数组{intnum;charstart[20];charover[20];chartime[10];intcount;}s[N];inti,m=0;//定义全局变量charii[10];voidadd();//函数声明增加航班信息函数voidprint();//显示航班信息voidsearch();//查找航班信息voiddingpiao();//订票业务voidtuipiao();//退票voidread();//读取文件voidsave();//保存文件voidoutput();//输出格式voidpaixu();//航班排序voidchushihua();//系统初始化13voidbuild();//建立数据文件voidpaixu1();//按航班号从小到大排序voidpaixu2();//从大到小voidmain()//主函数{intj;chushihua();//系统初始化判断是否存在原始数据文件printf(欢迎使用飞机订票系统\n);do{printf(================================================================================);printf(1.增加航班信息\n\t2.浏览航班信息\n\t\t3.查找航班信息(按航班号)\t\t╮(╯_╰)╭\n\t\t\t4.航班排序(按航班号)\n\t\t\t\t5.订票业务\n\to(︶︿︶)o\t\t\t6.退票业务\n\t\t\t\t\t\t0.退出\n);printf(================================================================================);printf(请在0-6中选择以回车键结束:);scanf(%d,&j);fflush(stdin);switch(j){case1:add();break;case2:print();break;case3:search();break;case4:paixu();break;case5:dingpiao();break;case6:tuipiao();break;case0:save();printf(谢谢使用,再见!);break;14default:printf(您输入不合法,请按回车键继续);getchar();}}while(j!=0);//判断是否调用其他函数}voidchushihua()//定义系统初始化函数{if(access(hangban.dat,0)){build();}elseread();}voidbuild()//定义建立数据文件函数{FILE*fp;//定义文件指针if((fp=fopen(hangban.dat,wb))==NULL)//打开文件并判定是否出