1、 目目 录录 设计目的1 总体设计1 详细设计3 调试与测试4 源程序代码4 程序运行截图16 仍存在的问题18 心得体会18 设计进度表19 参考文献20 - 1 - 一、正文 (一)设计目的: 假定民航机场共有 n 个航班,每个航班有一航班号、确定的航线(起始站、终点站) 、确定的飞行时 间(星期几)和一定的成员订额。设计一飞机订票系统,使之能提供下列服务: 1、航班信息录入功能(航班信息用文件保存) 包括航班号、起始站、终点站、机票总数、已售机票数; 2、航班信息浏览功能 3、查询航线:按航班号查询、按终点站查询、按航线查询 4、承办订票和退票业务(可选项) 5、修改航班信息 6、删除航
2、班信息 (二) 总体设计: 编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、查询、修改、删除以及 订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一 步步地深入操作。 根据主菜单的内容再进一步编制具体操作的函数, 各个功能均用专门编制的函数来完成。 这就是看到题目后的最初的思路。 因为飞机票管理系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,综 合考虑决定用结构体数组比较合适,根据题目要求定义如下结构体类型: 头文件包含、全局变量定义和结构体定义源代码: #include/标准输入、输出头文件 #includ
3、e/包含字符串函数处理头文件 #include #define N 1000 /定义最多的航班数 #define PRT “%-d%12s %12s %10s %12d %12dn“,si.num,si.start,si.over,si.time,si.count,si.selled /定 义输出格式 #define LB “ 航班号 起始站 终点站 时 间 机票总数 已 售票数 n“/定义打印列表格式 struct air int num; char start20; char over20; char time10; int count;/机票总数 int selled;/已预定机票总数
4、- 2 - sN; int i,m=0; /定义全局变量,记录下航班信息的数量 char ii10; /用来选择是否继续的变量 大概思路就是这样! 详细设计(定义的每个函数均作介绍) : 1)初始化界面函数(face 函数) 在程序开始执行时调用该函数,在屏幕上打印出初始界面!并选择要执行的操作! 2)信息输入函数(input 函数) 该函数里面调用 for 循环控制,该函数中用到一个全局变量 k,用来控制该函数被再次调用时可以 在已存放信息结构体后面继续输入数据,每当一个完整的航班信息输入完毕后,会提示是否输入下一个信 息!按“0“j 结束输入!然后调用下面要介绍的信息保存函数(save 函
5、数) !保存完毕后退回到主菜单! 3)信息保存函数(save 函数) 由于本程序设计时当输入机票总数不是正数时就会结束保存航班信息, 所以进入 save 函数时首先判断机票 总数是否大于 0,大于 0 时候开始进入主体部分执行!主要过程是先打开文件,文件打开成功后调用文件 格式输出函数(fprinf 函数)将信息保存到文件中区! 4)文件读取函数(read 函数) 该函数首先打开保存飞机票信息的文件,然后将保存的信息写到飞机信息的结构体数组里面去(调用格式 输入函数 fscanf) ,并将航班信息输出到屏幕上!输入完毕后关闭文件! 5)信息打印函数(print 函数) 该函数只是负责把调用 read 函数,并打印出航班信息输出事的一些辅助信息! 6)航班信息查找函数 本函数用 do.while 循环控制结构,进入函数后选择查询方式(可以按航班号、终点站、航线查询) ,方 式选择后用 switch 语句飞机的航班号(或者起始站、终点站) !从 switch 语句出来后,首先调用文件读取 函数(read 函数) ,输出所有航班信息到屏幕上,然后在 if 语句中判断刚才所输入飞机的航班号(或者起 始站、终点站)与数组中那个航班信息符合,找到后打印出来!循环结束后,输入“yes”