《vc++2013火车票信息管理系统课程设计报告》由会员分享,可在线阅读,更多相关《vc++2013火车票信息管理系统课程设计报告(25页珍藏版)》请在金锄头文库上搜索。
1、编号:19河北工业大学计算机软件技术基础(VC)2013年课程设计报告学院 信息工程学院 班级 通信121班 姓名 李小帅 学号122208成绩_一、题目:火车票信息管理系统(19)二、设计思路1、总体设计1) 分析程序的功能在火车票信息管理系统的主菜单界面中,用户可选择不同的选项,根据不同选项的提示操作,然后程序输出用户进行操作的结果。2) 系统总体结构:该程序的过程可由这几部分组成:显示系统主界面,录入火车时刻信息,查询火车时刻信息,统计火车车次,排序火车时刻信息,浏览火车时刻信息,退出系统。总共七个步骤:模块函数名称显示系统主界面menu录入火车时刻信息input查询火车时刻信息sear
2、ch统计火车车次statistics排序火车时刻信息sort浏览火车时刻信息view退出系统对于每一次选择,关注的数据有六个:车次,起点,终点,开车时间,到达时间,票价。这组数据内部耦合度很高,所以考虑把他们封装为结构体数组和结构体变量。车次,起点,终点,开车时间,到达时间,票价的初值由用户录入。表示信息成员名称车次trainnum起点startp终点endp开车时间startt到达时间endt票价price结构体:timeinput结构体数组:t结构体变量:who2、各功能模块的设计:说明各功能模块的实现方法1)menu模块该函数是要输出火车票信息管理系统的主菜单界面,不需要返回值。主菜单界
3、面如下-欢迎使用火车票信息管理系统主菜单-录入火车时刻信息,请选择:1查询火车时刻信息,请选择:2统计火车车次,请选择:3排序火车时刻信息:请选择:4浏览火车时刻信息:请选择:5退出,请选择:0代码参见menu函数。2)input模块该函数是要实现为车次,起点,终点,开车时间,到达时间,票价赋初值,不需要返回值。为了能够实现随时停止录入的功能,每当用户输入车次时,都要进行判断,当输入车次为0时,则停止录入,返回系统主界面,否则继续录入。代码参见input函数。3)search模块该函数是要实现按两种不同方式查询火车时刻信息,不需要返回值。选择的方式和判断有无该车次可使用查表的方法来解决。表格如
4、下选择提示判断有无该车次1按照车次查询,请选择:1有输出该车次火车时刻信息无输出“无此车次!”2按照起点和终点查询,请选择:2有输出该车次火车时刻信息无输出“无此车次!”输入其他选择时(即不是1或2),输出“输入错误!请重新选择!”代码参见search函数。4)statistics模块该函数是要实现按两种不同方式统计火车车次,不需要返回值。选择的方式和统计火车的车次可使用查表的方法来解决。表格如下选择提示统计火车的车次1按起点统计每日的车次数,请选择:1输出该起点每日的车次数2按终点统计每日的车次数,请选择:2输出该终点每日的车次数输入其他选择时(即不是1或2),输出“输入错误!请重新选择!”
5、代码参见statistics函数。5)sort模块该函数是要实现按两种不同方式排序火车时刻信息,不需要返回值。选择的方式和排序火车时刻信息可使用查表的方法来解决。表格如下选择提示输出结果1按开车时间排序,请选择:1输出选择1的排序结果2按起点做为主关键字、开车时间做为次关键字排序,请选择:2输出选择2的排序结果输入其他选择时(即不是1或2),输出“输入错误!请重新选择!”代码参见sort函数。6)view模块该函数是要输出用户录入的火车时刻信息,不需要返回值。代码参见view函数。7)创新设计部分通过请教老师和查阅资料,使用了SetColor函数,使得输出的数据加上了颜色,变得更加醒目,更加具
6、有吸引力。同时,使用了system(cls)语句,实现了清除屏幕数据的功能,使得程序运行界面变得简洁。代码参见SetColor函数。3、设计中的主要困难及解决方案在最开始的设计中只能够录入自己定义的火车时刻信息个数,且无法实现用户随时停止录入的功能。经过自己的修改和完善,使用变量m统计用户录入的火车时刻信息个数,实现了用户任意录入火车时刻信息个数;通过if判断条件判断录入车次是否为0,实现了用户随时停止录入的功能。4、你所设计的程序最终完成的功能1) 说明你编制的程序能完成的功能用户通过不同的选项,实现对火车票时刻信息的录入、查询、统计、排序、浏览。2) 准备的测试数据及运行结果 三、程序清单
7、1)main函数/预定义处理#include#include#include const int N=100;/结构体声明struct timeinputchar trainnum10;char startp10;char endp10; char startt10;char endt10;double price;tN,who;/定义结构体数组与结构体变量/函数声明void menu();void input();void search();void statistics();void sort();void view();void SetColor(unsigned short ,unsi
8、gned short);/主函数void main()menu();/显示系统主界面 int num;cinnum;for(;num!=0;)system(cls);/清除屏幕数据switch(num)case 1:input();break;/录入火车时刻信息case 2:search();break;/查询火车时刻信息case 3:statistics();break;/统计火车车次case 4:sort();break;/排序火车时刻信息case 5:view();break;/浏览火车时刻信息case 0:break;/退出系统default:cout输入错误!请重新选择!num;2)
9、menu函数void menu()/显示系统主界面SetColor(15,0);/数据是白色,背景是黑色cout-欢迎使用火车票信息管理系统主菜单-endl;cout 录入火车时刻信息,请选择:flush;SetColor(10,0);/数据是绿色,背景是黑色cout1endl; SetColor(15,0);cout 查询火车时刻信息,请选择:flush;SetColor(10,0); cout2endl;SetColor(15,0);cout 统计火车车次,请选择:flush;SetColor(10,0); cout3endl;SetColor(15,0);cout 排序火车时刻信息:请选
10、择:flush;SetColor(10,0); cout4endl;SetColor(15,0);cout 浏览火车时刻信息:请选择:flush;SetColor(10,0); cout5endl;SetColor(15,0);cout 退出,请选择:flush;SetColor(12,0);/数据是红色,背景是黑色cout0endl;SetColor(14,0);/数据是黄色,背景是黑色3)input函数void input()/录入火车时刻信息for(int i=0;iN;i+)SetColor(12,0); cout输入车次为0时结束录入!endl;SetColor(15,0); cou
11、t请输入车次:ti.trainnum; coutflush;if(strcmp(ti.trainnum,0)=0)break; SetColor(15,0); cout请输入起点:ti.startp; coutflush;SetColor(15,0); cout请输入终点:ti.endp; coutflush;SetColor(15,0); cout请输入开车时间:ti.startt; coutflush;SetColor(15,0); cout请输入到达时间:ti.endt; coutflush;SetColor(15,0); cout请输入票价:ti.price; coutflush;m+
12、;/统计录入次数4)search函数void search()/查询火车时刻信息SetColor(15,0); cout按照车次查询,请选择:flush;SetColor(10,0); cout1endl;SetColor(15,0); cout按照起点和终点查询,请选择:flush;SetColor(10,0); cout2a; coutflush;if(a=1) SetColor(15,0); cout请输入查询车次:who.trainnum; coutflush; for(int i=0;im;i+)if(strcmp(who.trainnum,ti.trainnum)=0) p=1; SetColor(15,0); cout车次t起点t终