您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言航班订票管理系统设计报告
设计任务书编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。小组任务分配:小组负责人:负责总体设计(包括总体设计流程图、模块函数原型接口设计);负责订票函数模块、退票函数模块编写。组员:负责文件的输入、文件读取、文件输出函数模块的编写。组员:负责查询、修改、删除函数模块的编写。2目录1、需求分析………………………………………………42、功能描述………………………………………………43、总体设计………………………………………………64、调试分析………………………………………………75、测试结果………………………………………………76、用户使用说明………………………………………127、课程设计心得……………………………………………128、附录(源代码)…………………………………………133需求分析:用数组或链表数据结构完成一个航班信息管理系统,此系统的具体功能要求如下:(1)航班信息录入功能1)用户从键盘输入每次航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。2)可添加一个或多个航班信息到当前编辑的数据中。3)可修改一个或多个航班信息。4)可删除一个或多个航班信息。(2)文件保存功能1)航班信息每一机场存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。2)用户输入航班信息可随时保存数据文件。(3)文件打开功能1)程序只能对当前打开的数据文件进行编辑。(4)查询功能1)浏览所有航班信息;2)按航班号查询航班信息;3)按终点站查询航班信息;4)按航线查询航班信息;(5)报表输出功能1)按航班编号输出一个航空公司的航班信息:航班号、起始站、终点站、起飞时间、机票数、票价,到屏幕和文件。注:以上功能以菜单形式供用户使用,并有一定的容错功能。一,功能描述模块基本介绍:1.用户输入模块在此模块中,用户将根据菜单提示结合自己的需求输入一个0~7的值,来实现一定的功能。2.航班信息录入模块此模块可以让用户从键盘输入每个航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。用户可插入一个或多个航班信息到当前编辑的数据中。用户可删除一个或多个航班信息。3.文件保存功能模块用户在确定以录入的信息无误之后,可以将航班信息存为一个数据文件。用户输入的航班信息可随时保存数据文件。4.文件打开功能模块用户可以用此模块将数据文件在程序中打开、编辑,程序只能对当前打开的数据文件进行编辑。45.查询功能模块在此模块里,用户可实现以下操作:1.浏览所有航班信息;2按航班号查询航班信息;3.按终点站查询航班信息;4.按航线查询航班信息;6.报表输出功能模块在此模块中,用户可以浏览所有航班的信息,或者可以按航班编号输出一个航空公司航班信息:航班号、起始站、终点站、起飞时间、机票数、票价,到屏幕和文件。模块图飞机订票管理系统输入航班信息浏览航班信息查询航班信息删除航班信息订票退票业务修改航班信息5三、调试分析调试是整个程序编写过程中十分重要也是很困难的一部分,在这个过程中用了不少的时间进行程序的调试,在调试过程中遇到的相关问题如下:一、语法错误1、语句的最后忘记了加上“;”,使程序发生错误。2、把“”与“”写反,以及字符与字符串的操作问题,这些是比较简单的错误,很容易分辨出来,并改正之。3、函数的返回值问题,也是比较容易找出并解决的问题。二、逻辑错误1、文件的写入与读出,刚开始对文件的操作不太明白,一致不能很好的操作文件,其中最大的问题是对已存在的文件读取问题,通过“浏览航班信息”将数据从文件中读取,可是在使用过程中总是出现读出错误,出现乱码。2、内存的分配问题,这也是困惑了我好久的问题。对于我们初学者来说对内存的分配和释放问题是比较抽象和模糊的难题,本来使用链表的方式存储数据,然而待到排序时出现了交换数据困难的问题,以及分配空间繁琐释放空间不及时的问题,造成空间浪费使得程序运行效率低的问题。因此最后采用了顺序存储记录的方式,这样就能改变前述问题。整个调试过程中主要是这么几个问题,其余的是一些小问题,很容易的就调试出来了。四、测试结果1、主界面62、输入航班信息3、浏览航班信息74、修改航班信息5、查找航班信息86、删除航班信息97、订票108、退票9、退出程序11五、用户使用说明用户运行程序后进入系统主界面,在主界面用户可以打开或者新建数据文件。用户新建或者打开文件要符合操作系统的要求,如果用户打开不存在的文件,那么系统将提示错误,并对其进行相关操作。系统默认sun.dat及ru.dat文件储存信息。本系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。当用户指定当前文件后可对其进行显示,输入,删除,修改等相关功能。用户在操作过程中可随时对当前文件进行保存到文件操作,以防止修改的数据丢失。操作完当前文件后,用户可以关闭该文件,在不退出本系统的前提下另行打开或者新建数据文件对其进行相关操作。六、课程设计心得对于C++初学者来说,这一抽象的编程语言的确有些晦涩难懂,尤其是其中的一些细节部分,在上机实验时稍有不慎就会出错。好在C++实践编程给我们提供了一个很好的运用所学知识来提高自己编程能力的机会,编程过程中需要的是细心和耐心,另外,完备和熟络的基础知识也很重要。一个较为复杂的程序通常需要串联多种语句、定义多个变量,这样就很容易出现问题,包括一些语法错误和运行错误,所以调试很重要,每当出现的结果和预想的不一样或是效果不是很好时就需要调试了。调试过程是一个完善程序的过程,也是一个提升自己编程能力的过程,在不断的检查与修改中,自己的编程能力才会不断提升,只有这样,最终的程序才会趋于简单、正确,避免冗长、复杂。对于这次编程实践,我总结了以下心得:1、不懂的部分多与小组成员交流,上网查资料;2、把复杂程序按照功能进行分解,分解成一个个模块,一个模块一个功能,避免大程序;3、多写注释,当遇到错误时可以方便的找出问题所在;4、要记得判断可能出现运行异常的地方。总之,实践是检验真知的唯一方法,它带给我们的将是付出后成功的喜悦以及宝贵的经验。七、附录源代码:#includestring#includeiostream#includefstreamusingnamespacestd;#defineN1000structair{intnum;charstart[20];12charover[20];chartime[10];intcount;charcost[20];}s[N];inti;intm=0;#definePRINT%-d%12s%12s%13s%12d%12s%\n,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].costvoidmenu();//主界面菜单voidfanhui();//返回上一级voidfn1();//管理员操作voidfn2();//客户操作voidinput();//输入信息voidprint();//输出信息voidsave();//保存信息voidread();//读取信息voidsearch();//查找信息voidshanchu();//删除信息voiddingpiao();//订票信息voidtuipiao();//退票信息voidxiugai();//修改信息voidmain(){intj;cout★***订票系统***★endl;cout****************************************************************************endl;do{cout1.输入航班信息2.浏览航班信息endlendlO(∩_∩)O3.修改航班信息4.查找航班信息endlendl13(^_^)5.删除航班信息6.订票endlendl7.退票0.退出endlendl;cout****************************************************************************endl;cout请在0-7中选择+Enter结束:endlendl;cinj;if(j0||j7)j=0;switch(j){case1:input();break;case2:print();break;case3:xiugai();break;case4:search();break;case5:shanchu();break;case6:dingpiao();break;case7:tuipiao();break;case0:;break;}}while(j!=0);cout(^_^)/~~endl谢谢使用,再见!endl;}voidinput(){14inty;cout请依次输入航班信息:endlendl;cout*****************************************************************************endl;for(i=0;iN;i++){cout请输入航班号:endl;cins[i].num;cout请输入起始站:endl;cins[i].start;cout请输入终点站:endl;cins[i].over;cout请输入时间:endl;cins[i].time;cout请输入机票数:endl;cins[i].count;cout请输入票价:endl;cins[i].cost;m++;cout第m个信息已经输完是否继续?'\n'按1继续,按0结束;ciny;if(y==0){save();print();break;}}}voidsave(){FILE*fp,*fp1;15if((fp=fopen(sun.dat,wb))==NULL)//打开文件并判断是否出错{cout创建文件失败!endlendl;getchar();return;}if((fp1=fopen(ru.dat,wb))==NULL){cout创建文件失败!endlendl;getchar();return;}for(i=0;im;i++)if(fwrite(&s[i],sizeof(structair),1,fp)==0)//向文件写入数据,并判断是否出错cout向文件输入数据失败!endlendl;fprintf(fp1,%d,m);fclose(fp);fclose(fp1);}voidread(){FILE*fp,*fp1;if((fp=fopen(sun.dat,rb))==NULL){cout出错,请检查文件是否存在,按任意键返回菜单;getchar();}if((fp1=fopen(ru.dat,rb))==NULL){cout创建文件失败!endlendl;getchar();return;}fscanf(fp1,%d,&m);fclose(fp1);for(i=0;im;i++){fread(&s[i],sizeof(air),1,fp);//从文件中读取信息}16fclose(fp);}voidprint(){charw[10];read();cout航班号起始站终点站时间机票数票价endl;for(i=0;im;i++){printf(PRINT);}cout请按任意键+Enter结束返回上层菜单:endl;cinw;}voidsearch(){charname1[20];charname2[20];charii[10];intn,no;do{cout请选择查找方式:endlendl;//打印查询方式菜单
本文标题:C语言航班订票管理系统设计报告
链接地址:https://www.777doc.com/doc-2105375 .html