软件课程设计报告(飞机票系统)

上传人:夏** 文档编号:490942474 上传时间:2023-08-09 格式:DOC 页数:46 大小:367.01KB
返回 下载 相关 举报
软件课程设计报告(飞机票系统)_第1页
第1页 / 共46页
软件课程设计报告(飞机票系统)_第2页
第2页 / 共46页
软件课程设计报告(飞机票系统)_第3页
第3页 / 共46页
软件课程设计报告(飞机票系统)_第4页
第4页 / 共46页
软件课程设计报告(飞机票系统)_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《软件课程设计报告(飞机票系统)》由会员分享,可在线阅读,更多相关《软件课程设计报告(飞机票系统)(46页珍藏版)》请在金锄头文库上搜索。

1、软件课程设计报告 班级: 光电0905班 姓名: 王伟 学号: 2011090102261软件设计11.1设计题目11.2设计要求11.3设计思想11.4流程图22软件测试92.1航班信息查询模块测试92.2订票模块测试142.3机票信息查询模块测试172.4退票模块测试183算法改进214开发体会22附录:源代码清单24参考文献421软件设计1.1设计题目飞机票销售系统。1.2设计要求 运用C语言基本知识,结合相关算法思想和数据结构,编写一个单微机系统下运行的飞机票销售系统。飞机票销售系统应实现航班信息查询、机票购买、机票信息查询、机票退购等功能。1.3设计思想 本程序分为四个模块,即航班信

2、息查询模块、订票模块、机票信息查询模块和退票模块。程序中定义了三种结构为PLANES、BOOK和TICKETS,分别用于航班信息、旅客信息和机票信息的存取和修改。为了储存航班信息、旅客信息和机票信息,程序中建立了三个文件分别为planes.txt、book.txt和tickets.txt。航班信息查询模块的功能主要由函数search1()实现,而航班信息查询模块中又分为按航班号查询航班信息模块、按目的地查询航班信息模块和按起飞时间查询航班信息模块三个小模块,因此search1()中分别调用函数search11()、search12()和search13()来实现每个小模块的功能。订票模块的功能

3、由函数book(int *k,BOOK *q,TICKETS *m)实现。机票信息查询模块功能由函数search2(int *n,TICKETS *w)实现。退票模块功能由函数refund(int *a,BOOK *b,TICKETS *c)实现。每个模块的函数都通过对结构数组和文件的操作来实现对数据的存取和修改,从而实现各自的功能。程序中采用的查找数据方式为顺序查找。1.4流程图主函数流程图开始输入变量choicechoice=5?choice=1?否choice=2?choice=3?choice=4?否否否search1()book(int*k,BOOK *q,TICKETS *m)se

4、arch2(int*n,TICKETS *w)refund(int*a,BOOK* b,TICKETS *c)是是是是结束是search1()为航班信息查询函数,book(int *k,BOOK *q,TICKETS *m)为订票函数,search2(int *n,TICKETS *w)为机票信息查询函数,refund(int *a,BOOK *b,TICKETS *c)为退票函数。航班信息查询函数search1()流程图开始输入变量choice1choice1=4?choice1=1?choice1=2?choice1=3?结束search13()search12()search11()是否

5、否否是是是search11()为按航班号查询航班信息函数,search12()为按目的地查询航班信息函数,search13()为按起飞时间查询航班信息函数。按航班号查询航班信息函数search11()流程图开始输入航班号planenum17打开文件planes.txt并将航班信息读出到air110strcmp(air1i.planenum,planenum1)=0?否显示结果是结束search12()和search13()的流程图同理,仅需改变判断条件。订购机票函数book(int *k,BOOK *q,TICKETS *m)流程图开始显示航班信息打开文件planes.txt并将航班信息读出到

6、air110输入航班号planenum17strcmp(air1i.planenum,planenum1)=0?购票成功,显示结果否是将相应的旅客信息和机票信息储存到文件中结束将air110中的信息写入到文件planes.txt中并关闭文件air1i.tickets=0?是否机票信息查询函数search2(int *n,TICKETS *w)流程图开始输入机票编号ticketnum1打开文件tickets.txt并将机票信息读出到TICKETS t1400中ti.ticketnum=ticketnum1? 否显示结果将TICKETS t1400中的信息读入到文件tickets.txt中并关闭文

7、件 是结束退票函数refund(int *a,BOOK *b,TICKETS *c)流程图开始输入机票编号ticketnum2ci.ticketnum=ticketnum2?删除文件tickets.txt中相应的机票信息和book.txt中相应的旅客信息退票成功,显示结果结束否是2软件测试2.1航班信息查询模块测试运行程序,首先进入主菜单界面。选择1,进入航班信息查询模块。显示子菜单界面。选择1,按航班号查询航班信息。输入航班号“ZH9658”。查找到相应航班信息如下:若在子菜单中选择2,按目的地查询航班信息,输入目的地“上海”。查找到相应航班信息如下:若在子菜单中选择3,按起飞时间查找航班信

8、息。输入起飞时间“08:00”。查找到相应航班信息如下:2.2订票模块测试在主菜单中选择2,进行机票购买。显示购票界面。如要购买从武汉飞往深圳的航班机票,则输入相应航班号UK1266。系统将提示旅客输入姓名,性别和身份证号等旅客信息。如下图,输入姓名“张三”,性别“男”,身份证号“450562199006230025”。若该航班仍有剩余机票,则旅客购票成功,显示“购票成功”,同时生成机票编号并显示到屏幕上。回到主菜单,选择1进入航班信息查询模块,再选择1,输入张三购买机票对应的航班号。在显示的航班信息中,剩余机票数已由100变为99。2.3机票信息查询模块测试接着上次步骤,回到主菜单,选择3进

9、入机票信息查询模块。系统提示输入机票编号。输入张三购买的机票的编号“51”。系统查询到相应的机票信息并显示到屏幕如下:2.4退票模块测试在主菜单中选择4,进入退票模块。系统提示输入需要退还的机票的编号,输入张三购买的机票的编号“51”。屏幕上显示“退票成功”字样,则表示旅客已成功退票。此时若回到主菜单中选择3进入机票信息查询模块,输入张三曾购买的机票的编号,则显示“对不起,该机票编号不存在”。在主菜单中选择1进入航班信息查询模块,按任意一种查找方式查找到张三曾购买的机票的航班信息,剩余机票数由99变回100。以上测试仅以单人次购买单张机票为例,对于多人次购买多张机票,该系统的测试结果仍正确无误

10、。3算法改进改进一: 在主函数中定义的数组BOOK a1400和TICKETS t1400用于临时存储旅客信息和机票信息,并可对其进行修改,同时也可以实现多次购票的功能。在经过认真思考后,我认为可以省去BOOK a1400和TICKETS t1400。在购票函数、机票信息查询函数和退票函数中可以临时定义BOOK型数组和TICKETS型数组,用追加方式打开book.txt和planes.txt并将文件中的信息读到相应数组中,如此一来也能实现对旅客信息和机票信息的修改、添加和删除,且能多次购票。改进二: 程序中10个航班信息和50个已售出机票信息均通过初始化方式赋给相应的结构数组,再储存到相应的文

11、件中。这种方式处理信息不够灵活,也不便于管理。因此,程序中可以增加一个航班信息添加模块。4开发体会为了开发飞机票信息管理系统,我耗费了大量时间和精力,在开发的过程中,我遇到了许许多多的挫折,但也因此进行了反反复复的思考,从中得到了不少体会。 体会一:此次编程的内容较多,与以往的编程大不相同,因此刚开始设计软件时我有许多困惑,甚至无从下手。在后来的编程过程中,我深刻地体会到“模块化”这一设计思想的重要性。一个程序只有具备“模块化”这一特征才能有条不紊、条理清晰,否则会混乱不堪,可读性也受到影响。因此,要编写出一段正确且美观整洁的程序,必须先大致将程序划分为几个模块,然后再分别让每个模块实现各自的

12、功能。在我所编写的程序中,我将它大致划分成了航班信息查询模块、订票模块、机票信息查询模块和退票模块四个模块,而在航班信息查询模块中,我又将其细分为按航班号查询航班信息模块、按目的地查询航班信息模块和按起飞时间查询航班信息模块三个更小的模块。如此一来,程序大致的框架便有了,我的思路也因此变得清晰明了,从而也就不会无从下手了。 体会二:在第一次编写购票函数时,函数中没有使用任何形参,也没有采用追加方式打开文件,这导致系统无法记录已售出机票数,也不能实现多次购票。为了解决这个问题,我在购票函数中添加了形参int *a,BOOK *q和TICKETS *m,并在主函数中定义了整型变量j、TICKETS

13、型数组和BOOK型数组,从而使系统能记录已售出机票数并可以进行多次购票。 体会三:在完成任务的过程中,我深刻体会到软件的开发需要缜密的思维和一丝不苟的态度。一个不经意的小小的错误就可能导致程序错漏百出、面目全非,真可谓“失之毫厘,差之千里”。在编写退票函数时,我采用for循环记录机票信息和旅客信息,由于错将判断是否执行循环体的条件“k*a”写成“k*a+1”,导致信息录入不正确。因此每当我查询机票信息时总得不到正确的结果。经过多番的检查和思考,才发现这一错误。将错误纠正后,程序测试结果无误。这一纠错过程耗费了我大量时间,严重影响了效率。所以我觉得严谨的思维是一个优秀的程序员所应具备的。多从事编

14、程活动有助于培养良好的思维习惯。 这次飞机票销售系统的开发虽经历了不少挑战,遭遇了许多的挫折和打击,但我凭着自己的努力最终克服困难,完成了任务。尽管软件中仍存在诸多不足,但它是我多日心血的结晶,它包含了我这一路走来的酸甜苦辣。 通过这次软件设计,我成功地把所学C语言和数据结构知识应用到实际软件开发中去,掌握了中小规模软件设计和开发的方法和步骤,也深深地领略到了软件设计的魅力。附录:源代码清单#include#include#include#includetypedef struct planes /储存航班信息的结构char planenum7;char start12;char destination12;char flytime6;int ticke

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号