您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 飞机票销售系统-软件课程设计
软件课程设计报告班级:光电0905班姓名:邵亚云学号:U200913045目录1、软件设计………………………………………………………………11.1、软件的概要设计……………………………………………………11.1.1、总体………………………………………………………………11.1.2、子函数……………………………………………………………21.1.3、各子函数功能……………………………………………………31.2、软件的设计思想…………………………………………………61.2.1、航班信息的数组…………………………………………………61.2.2、顾客飞机票信息的数组…………………………………………71.3、主函数及各子函数流程图………………………………………82、软件测试……………………………………………………………142.1、主菜单……………………………………………………………142.2、初始化航班………………………………………………………142.3、航班订票…………………………………………………………172.4、航班退票…………………………………………………………192.5、航班查询…………………………………………………………202.6、查询余票…………………………………………………………222.7、结束………………………………………………………………233、算法改进……………………………………………………………244、开发体会……………………………………………………………26附:源代码清单…………………………………………………………28参考文献………………………………………………………………561、软件设计1.1、软件的概要设计1.1.1、总体这个软件总体上分为六个部分,即:初始化航班、查询航班信息、航班订票、航班退票、查询机票、查询余票六个部分。其总体的结构图如下:1、飞机票销售系统初始化航班航班订票查询余票查询机票航班退票查询航班信息1.1.2、子函数为清楚地完成这样一个飞机票销售系统,采用了以下12个子函数:voidmenu();voidadd();voidoutput();voidoutput1();intsavef();intsavef1();intreadf();voidinquire();voidinquire1();voidbook();voidrefund();voidsearchnum();1.1.3、各子函数功能下面将分别地来介绍12个子函数的功能。1、voidmenu(),显示主菜单的函数这个函数的主要功能是显示一个欢迎字幕,并为顾客提供这个飞机票销售系统的所有功能和任务。即初始化航班、查询航班信息、航班订票、航班退票、查询机票、查询余票等服务,顾客在输入相应的数字之后按确认键即可进行相应的操作.2、voidadd(),航班初始化函数这个函数的主要功能是初始化航班信息(即添加航班信息),添加的信息包括航班号、起始站、终点站、起飞时间、航班容载量、机票折扣以及机票价格等。这样可以在缺少某项航班信息的情况下及时添加。初始化后文件以air.txt形式格式保存下来,以方便后续的试用。因此在第一次试用的时候要初始化,否则系统将没有任何的机票信息。3、voidoutput(),航班输出函数本函数的作用是输出航班信息。在输入了初始化航班信息之后,此函数可以在文件中找到air.txt,并输出来。4、voidoutput1(),机票信息输出函数本函数的作用是输出顾客机票信息。作用与上述类似,在成功订票之后,此函数可以在文件中找到people.txt,并输出来。5、intsavef(),航班信息保存函数本函数的作用是保存输入的航班信息,以air.txt形式格式保存,可以在文件中查找到,并在后面要调用的时候及时调出来进行查询。6、intsavef1(),机票信息保存函数本函数的作用是保存输入的顾客机票信息,以people.txt形式格式保存,可以在文件中查找到,并在后面要调用的时候及时调出来进行查询。7、intreadf(),航班信息读取函数本函数的作用是读取航班信息,在后续订票操作中,需要用到初始化的航班信息,因此需要一个从内部文件中读取航班信息的操作。8、voidinquire(),航班信息查询函数本函数的作用是查询航班信息,为了方便销售员或者顾客的查询,因此需要将内部文件中的航班信息表达出来,因此这个函数的作用是表达出航班信息。9、voidinquire1(),机票信息查询函数本函数的作用是查询顾客机票信息。在顾客定好票之后,需要验证自己的票是否是正确的,或者查询一下飞机票的信息,此时需要一个飞机票的查询操作,此函数的作用即在此。10、voidbook(),机票预定函数本函数的作用是执行订票操作,订票操作中需要顾客将自己的信息完整地写入到系统中,考虑到只要身份证号码正确就可以显示顾客的大部分信息,因此没有将更多繁琐的信息要求加上去了。11、voidrefund(),退票函数本函数的作用是执行退票操作,由于是退票,考虑到实际情况,因此需要输入多个信息以确认机票与主人是对应的。12、voidsearchnum(),查询余票函数本函数的作用是查询剩余票数,在设计中使用了仅输入航班号即可查询航班信息的做法,方便操作。1.2软件的设计思想这次的飞机票销售系统由于数据量较大,且需要以不同的数据类型来分类,因此采用了两个类似的结构变量来实现上述的设计。详细如下:1.2.1、航班信息的数组struct{intair_num;//航班号charStart[15];//出发地charEnd[15];//终点站charTime[25];//起飞时间inttotal;//总票数floatH;//折扣intleft;//剩余票数intPrice;//票价}air;1.2.2、顾客飞机票信息的数组struct{intair_num;//航班号charStart[15];//出发地charEnd[15];//终点站intPrice;//票价floatH;//折扣charname[8];//姓名charID[20];//身份证号intleft;//剩余票数intk;//购买票数}people;1.3、主函数及各子函数流程图主函数main()初始化航班航班订票7435menu选择126查询余票查询机票航班退票查询航班信息是是是是是是是否否否否否否否main结束添加航班信息依次输入航班的各项信息保存保存至文件不保存是否继续结束否是查询航班信息选择126543按航班号查找按终点站查找按起始站和终点站查找按起飞时间查找按起始站查找存在且正确显示所要查找的航班信息对不起,不存在要查询的航班信息输入错误,重新输入查询航班信息是是是是是是是是否否否否否否否航班订票依次输入项目订票成功,写入文件继续订票结束是否航班退票依次输入航班的各项信息正确退票成功退票不成功继续结束否是是否退票不成功退票成功查询余票输入航班号存在错误继续结束显示余票信息错误否是是否2、软件测试以下是这套软件系统的详细测试结果,并以截图的形式展现出来,当然只是展示了一部分有代表性的图。下面是详细介绍:2.1、主菜单运行程序,将出现这样一个欢迎的界面并提供以下7个选项2.2、初始化航班如果是第一次使用,则必须先初始化航班信息,否则系统内的数据将是空的,不能使用。选择“1”,则出现以下的界面,根据提示依次输入航班号、起始站、终点站、起飞时间、容载量、折扣和价格。若不保存,则会出现警告。若要正常写入信息,则保存,下面将有一个信息预览,按任意键继续输入。依次输入十个航班信息输入完成以后,将会有一个总体的预览2.3、航班订票初始化完毕后,此时,我们便可以在这个系统里订票了,按要求依次输入订票成功则显示这样的界面由于票数有限,因此当输入的购买票数超过总票数时,系统将无法完成售票操作然后依次买票,我在自己操作的时候,买了50次票。操作结束后,会出现以下清单以提示我买的所有机票信息。2.4、航班退票可以在航班退票中进行退票操作按要求依次输入顾客信息,如下若信息正确则退票成功,若不正确则显示一下内容,表示输入有误。2.5、航班查询若需要查询航班信息,则选择查询航班信息,出现以下界面。选择以何种方式查询如选择以航班号查询选择以起始站查询,则为:依此类推2.6、查询余票选择查询余票,输入航班号,即可进行余票查询,如下:2.7、结束当完成所有的操作后,将会出现一个如下界面,表示顾客已经退出了此系统。此时按任意键可以回到欢迎界面。3、算法改进这次的软件课程设计采用的是数组的方式,这样调试起来比较简单,没有太多的难度。这个飞机票销售系统的主要亮点在于,抛弃了原本复杂的函数定义,使用了简洁的方式,使得程序更具有可读性。在界面的友好性方面也做了处理,使得界面更加具有观赏性,符合了飞机票销售系统的要求。如:printf(\n\t\t\t请输入航班号:);fflush(stdin);scanf(%d,&a_data.air_num);printf(\t\t\t请输入起始站:);fflush(stdin);scanf(%s,a_data.Start);printf(\t\t\t请输入终点站:);fflush(stdin);scanf(%s,a_data.End);printf(\t\t\t请起飞输入时间(如:2010.01.01.01.00):);fflush(stdin);scanf(%s,a_data.Time);printf(\t\t\t请输入航班容载量:);fflush(stdin);scanf(%d,&a_data.total);a_data.left=0;printf(\t\t\t请输入机票折扣);fflush(stdin);scanf(%f,&a_data.H);printf(\t\t\t请输入机票价格:);fflush(stdin);scanf(%d,&a_data.Price);这样一段使用了fflush(stdin),为了确保不影响后面的数据读取,在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin)。尽管不是非常大的改动或者想法,但是为程序的可读性和可操作性提供了很大的支持。像这样的情况程序里还有一些,在这里就不赘述。这个程序还有很多可以改进的地方,但是由于时间有限,就没有在算法改进上花太多的时间。在以后的学习中还要仔细思考,进行改进。4、开发体会现在终于到写开发体会的时候了,心里的一根弦终于可以松一下了。在刚接到这样的一个任务的时候,我真是惊呆了,我们这样的水平能够完成这样的作业吗?因为当时想,对于一个只是对C语言有所了解的大二学生来说要做出一个飞机票销售系统,那绝对是非常难的,当时甚至觉得这是不可能的。但是这个障碍终究还是要跨过去,这是没有办法的,因为我知道三个星期后我一定要交上这样的一份完整(尽管不完美)的飞机票销售系统,因此,在想到了这些后,便开始了我自认为不可能完成的任务。后面发现,原来也没有我想象得那么难。由于我们有连续三个星期的不间断的上机时间,又有这么的老师和助教陪着我,在我有问题的时候及时帮我分析,帮我们解决。这使得我在前进的路上多了很多的帮助,使我最终能够走到这一步。因此在这里要感谢曾经给我帮助的老师和助教们,还有在我编程路上的帮助我的同学们,谢谢你们。当然,在编写的过程中,和想象中的一样,出现了许多的问题,甚至更难。其中也是犯了很多的错误,有些是莫名其妙的,有些是很小的低级错误,有些是根本性的想法错误,但是这些错误都使得我不得不一次一次地检查、纠正。通过这无数次的检查纠正再犯错再检查的过程,我明白了,在编程的路上,错误不分大小,我要时刻注意不能犯错误。即使犯错了,也不能放弃,因为可能就是在一个“;”之后,成功就在眼前了。这个系统终于出来了,这几个星期特别是后期阶段,真是可以用一句话来表达:“为伊消得人憔悴”。心里的兴奋真是无法表达。但是在兴奋之余,我还明白,这样的系统肯定是不能拿出去使用的,因为这个程序还有很多的不科学、很多的不合理、很多的问题。而我
本文标题:飞机票销售系统-软件课程设计
链接地址:https://www.777doc.com/doc-4926431 .html