1、 软件课程设计报告软件课程设计报告 班级:班级: 光电光电 09050905 班班 姓名:姓名: 学号:学号: 1 软件设计 1 1.1 设计题目. 1 1.2 设计要求. 1 1.3 设计思想. 1 1.4 流程图 2 2 软件测试 9 2.1 航班信息查询模块测试 9 2.2 订票模块测试 14 2.3 机票信息查询模块测试 .17 2.4 退票模块测试 18 3 算法改进 .21 4 开发体会 .22 附录:源代码清单 .24 参考文献42 - 1 - 1 1 软件设计软件设计 1.11.1 设计题目设计题目 飞机票销售系统。 1.21.2 设计要求设计要求 运用 C 语言基本知识,结合
2、相关算法思想和数据结构,编写一个 单微机系统下运行的飞机票销售系统。 飞机票销售系统应实现航班信 息查询、机票购买、机票信息查询、机票退购等功能。 1.31.3 设计思想设计思想 本程序分为四个模块,即航班信息查询模块、订票模块、机票信 息查询模块和退票模块。程序中定义了三种结构为 PLANES、BOOK 和 TICKETS,分别用于航班信息、旅客信息和机票信息的存取和修改。 为了储存航班信息、旅客信息和机票信息, 程序中建立了三个文件分 别为 planes.txt、book.txt 和 tickets.txt。 航班信息查询模块的功能主要由函数 search1()实现,而航班信 息查询模块中
3、又分为按航班号查询航班信息模块、 按目的地查询航班 信息模块和按起飞时间查询航班信息模块三个小模块, 因此search1() 中分别调用函数 search11()、search12()和 search13()来实现每个 小模块的功能。 订票模块的功能由函数 book(int *k,BOOK *q,TICKETS *m)实现。 - 2 - 机票信息查询模块功能由函数 search2(int *n,TICKETS *w)实 现。 退票模块功能由函数 refund(int *a,BOOK *b,TICKETS *c)实现。 每个模块的函数都通过对结构数组和文件的操作来实现对数据 的存取和修改,从而实
4、现各自的功能。 程序中采用的查找数据方式为顺序查找。 1.41.4 流程图流程图 - 3 - 主函数流程图 search1()为航班信息查询函数,book(int *k,BOOK *q,TICKETS *m)为订票函数,search2(int *n,TICKETS *w)为机票信息查询函数, refund(int *a,BOOK *b,TICKETS *c)为退票函数。 开始 输入变量 choice choice=5? choice=1? 否 choice=2? choice=3? choice=4? 否 否 否 search1() book(int*k,BOOK *q,TICKETS *m)
5、 search2(int*n,TICK ETS *w) refund(int*a,BOOK* b,TICKETS *c) 是 是 是 是 结束 是 - 4 - 航班信息查询函数 search1()流程图 search11()为按航班号查询航班信息函数,search12()为按目的 地查询航班信息函数,search13()为按起飞时间查询航班信息函数。 开始 输入变量 choice1 choice1=4? choice1=1? choice1=2? choice1=3? 结束 search13() search12() search11() 是 否 否 否 是 是 是 - 5 - 按航班号查询航
6、班信息函数 search11()流程图 search12()和 search13()的流程图同理,仅需改变判断条件。 开始 输入航班号 planenum17 打开文件 planes.txt 并将航班 信息读出到 air110 strcmp(air1i.planenu m,planenum1)=0? 否 显示结果 是 结束 - 6 - 订购机票函数 book(int *k,BOOK *q,TICKETS *m)流程图 开始 显示航班信息 打开文件 planes.txt 并将航班信息读 出到 air110 输入航班号 planenum17 strcmp(air1i.planenum,pla nenum1)=0? 购票成功,显示结果 否 是 将相应的旅客信息和机票信息 储存到文件中 结束 将 air110中的信息写入到文 件 planes.txt 中并关闭文件 air1i.tickets=0? 是 否 - 7 - 机票信息查询函数 search2(int *n,TICKETS *w)流程图 开始 输