1、编号:编号:19 第 1 页/共 25 页 一、题目: 火车票信息管理系统(19) 二、设计思路 1、总体设计 1)分析程序的功能 在火车票信息管理系统的主菜单界面中,用户可选择不同的选项,根据不同选 项的提示操作,然后程序输出用户进行操作的结果。 2)系统总体结构: 该程序的过程可由这几部分组成:显示系统主界面,录入火车时刻信息,查询 火车时刻信息,统计火车车次,排序火车时刻信息,浏览火车时刻信息,退出系统。 总共七个步骤: 模块 函数名称 显示系统主界面 menu 录入火车时刻信息 input 查询火车时刻信息 search 统计火车车次 statistics 排序火车时刻信息 sort
2、浏览火车时刻信息 view 退出系统 对于每一次选择,关注的数据有六个:车次,起点,终点,开车时间,到达时 间,票价。这组数据内部耦合度很高,所以考虑把他们封装为结构体数组和结构体 变量。车次,起点,终点,开车时间,到达时间,票价的初值由用户录入。 表示信息 成员名称 车次 trainnum 起点 startp 编号:编号:19 第 2 页/共 25 页 终点 endp 开车时间 startt 到达时间 endt 票价 price 结构体:timeinput 结构体数组:t 结构体变量:who 2、各功能模块的设计:说明各功能模块的实现方法 1)menu 模块 该函数是要输出火车票信息管理系统
3、的主菜单界面,不需要返回值。主菜单界 面如下 -欢迎使用火车票信息管理系统主菜单- 录入火车时刻信息,请选择:1 查询火车时刻信息,请选择:2 统计火车车次,请选择:3 排序火车时刻信息:请选择:4 浏览火车时刻信息:请选择:5 退出,请选择:0 代码参见 menu 函数。 2)input 模块 该函数是要实现为车次,起点,终点,开车时间,到达时间,票价赋初值,不 需要返回值。为了能够实现随时停止录入的功能,每当用户输入车次时,都要进行 判断,当输入车次为 0 时,则停止录入,返回系统主界面,否则继续录入。 代码参见 input 函数。 3)search 模块 该函数是要实现按两种不同方式查询
4、火车时刻信息,不需要返回值。选择的方 式和判断有无该车次可使用查表的方法来解决。表格如下 选择 提示 判断有无该车次 1 按照车次查询,请选择:1 有 输出该车次火车时刻信息 无 输出“无此车次! ” 编号:编号:19 第 3 页/共 25 页 2 按照起点和终点查询,请选择:2 有 输出该车次火车时刻信息 无 输出“无此车次! ” 输入其他选择时(即不是 1 或 2) ,输出“输入错误!请重新选择! ” 代码参见 search 函数。 4)statistics 模块 该函数是要实现按两种不同方式统计火车车次,不需要返回值。选择的方式和 统计火车的车次可使用查表的方法来解决。表格如下 选择 提
5、示 统计火车的车次 1 按起点统计每日的车次数,请选择:1 输出该起点每日的车次数 2 按终点统计每日的车次数,请选择:2 输出该终点每日的车次数 输入其他选择时(即不是 1 或 2) ,输出“输入错误!请重新选择! ” 代码参见 statistics 函数。 5)sort 模块 该函数是要实现按两种不同方式排序火车时刻信息,不需要返回值。选择的方 式和排序火车时刻信息可使用查表的方法来解决。表格如下 选择 提示 输出结果 1 按开车时间排序,请选择:1 输出选择 1 的排序结果 2 按起点做为主关键字、开车时间做为次关键字 排序,请选择:2 输出选择 2 的排序结果 输入其他选择时(即不是
6、1 或 2) ,输出“输入错误!请重新选择! ” 代码参见 sort 函数。 编号:编号:19 第 4 页/共 25 页 6)view 模块 该函数是要输出用户录入的火车时刻信息,不需要返回值。 代码参见 view 函数。 7)创新设计部分 通过请教老师和查阅资料,使用了 SetColor 函数,使得输出的数据加上了颜 色,变得更加醒目,更加具有吸引力。同时,使用了 system(“cls“)语句,实现了 清除屏幕数据的功能,使得程序运行界面变得简洁。 代码参见 SetColor 函数。 3、设计中的主要困难及解决方案 在最开始的设计中只能够录入自己定义的火车时刻信息个数,且无法实现用户 随时停止录入的功能。经过自己的修改和完善,使用变量 m 统计用户录入的火车时 刻信息个数,实现了用户任意录入火车时刻信息个数;通过 if 判断条件判断录入 车次是否为 0,实现了用户随时停止录入的功能。 4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能 用户通过不同的选项,实现对火车票时刻信息的录入、查询、统计、排序、浏览。 2)准备的测试