VC++火车票信息管理系统课程设计报告.docx
- 文档编号:30006904
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:27
- 大小:1.08MB
VC++火车票信息管理系统课程设计报告.docx
《VC++火车票信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《VC++火车票信息管理系统课程设计报告.docx(27页珍藏版)》请在冰豆网上搜索。
VC++火车票信息管理系统课程设计报告
河北工业大学计算机软件技术基础(VC)2013年课程设计报告
学院信息工程学院班级通信121班姓名李小帅学号******成绩____
一、题目:
火车票信息管理系统(19)
二、设计思路
1、总体设计
1)分析程序的功能
在火车票信息管理系统的主菜单界面中,用户可选择不同的选项,根据不同选项的提示操作,然后程序输出用户进行操作的结果。
2)系统总体结构:
该程序的过程可由这几部分组成:
显示系统主界面,录入火车时刻信息,查询火车时刻信息,统计火车车次,排序火车时刻信息,浏览火车时刻信息,退出系统。
总共七个步骤:
模块
函数名称
显示系统主界面
menu
录入火车时刻信息
input
查询火车时刻信息
search
统计火车车次
statistics
排序火车时刻信息
sort
浏览火车时刻信息
view
退出系统
对于每一次选择,关注的数据有六个:
车次,起点,终点,开车时间,到达时间,票价。
这组数据内部耦合度很高,所以考虑把他们封装为结构体数组和结构体变量。
车次,起点,终点,开车时间,到达时间,票价的初值由用户录入。
表示信息
成员名称
车次
trainnum
起点
startp
终点
endp
开车时间
startt
到达时间
endt
票价
price
结构体:
timeinput
结构体数组:
t[]
结构体变量:
who
2、各功能模块的设计:
说明各功能模块的实现方法
1)menu模块
该函数是要输出火车票信息管理系统的主菜单界面,不需要返回值。
主菜单界面如下
----------欢迎使用火车票信息管理系统主菜单----------
录入火车时刻信息,请选择:
1
查询火车时刻信息,请选择:
2
统计火车车次,请选择:
3
排序火车时刻信息:
请选择:
4
浏览火车时刻信息:
请选择:
5
退出,请选择:
0
代码参见menu函数。
2)input模块
该函数是要实现为车次,起点,终点,开车时间,到达时间,票价赋初值,不需要返回值。
为了能够实现随时停止录入的功能,每当用户输入车次时,都要进行判断,当输入车次为0时,则停止录入,返回系统主界面,否则继续录入。
代码参见input函数。
3)search模块
该函数是要实现按两种不同方式查询火车时刻信息,不需要返回值。
选择的方式和判断有无该车次可使用查表的方法来解决。
表格如下
选择
提示
判断有无该车次
1
按照车次查询,请选择:
1
有
输出该车次火车时刻信息
无
输出“无此车次!
”
2
按照起点和终点查询,请选择:
2
有
输出该车次火车时刻信息
无
输出“无此车次!
”
输入其他选择时(即不是1或2),输出“输入错误!
请重新选择!
”
代码参见search函数。
4)statistics模块
该函数是要实现按两种不同方式统计火车车次,不需要返回值。
选择的方式和统计火车的车次可使用查表的方法来解决。
表格如下
选择
提示
统计火车的车次
1
按起点统计每日的车次数,请选择:
1
输出该起点每日的车次数
2
按终点统计每日的车次数,请选择:
2
输出该终点每日的车次数
输入其他选择时(即不是1或2),输出“输入错误!
请重新选择!
”
代码参见statistics函数。
5)sort模块
该函数是要实现按两种不同方式排序火车时刻信息,不需要返回值。
选择的方式和排序火车时刻信息可使用查表的方法来解决。
表格如下
选择
提示
输出结果
1
按开车时间排序,请选择:
1
输出选择1的排序结果
2
按起点做为主关键字、开车时间做为次关键字
排序,请选择:
2
输出选择2的排序结果
输入其他选择时(即不是1或2),输出“输入错误!
请重新选择!
”
代码参见sort函数。
6)view模块
该函数是要输出用户录入的火车时刻信息,不需要返回值。
代码参见view函数。
7)创新设计部分
通过请教老师和查阅资料,使用了SetColor函数,使得输出的数据加上了颜色,变得更加醒目,更加具有吸引力。
同时,使用了system("cls")语句,实现了清除屏幕数据的功能,使得程序运行界面变得简洁。
代码参见SetColor函数。
3、设计中的主要困难及解决方案
在最开始的设计中只能够录入自己定义的火车时刻信息个数,且无法实现用户随时停止录入的功能。
经过自己的修改和完善,使用变量m统计用户录入的火车时刻信息个数,实现了用户任意录入火车时刻信息个数;通过if判断条件判断录入车次是否为0,实现了用户随时停止录入的功能。
4、你所设计的程序最终完成的功能
1)说明你编制的程序能完成的功能
用户通过不同的选项,实现对火车票时刻信息的录入、查询、统计、排序、浏览。
2)准备的测试数据及运行结果
三、程序清单
1)main函数
//预定义处理
#include
#include
#include
constintN=100;
//结构体声明
structtimeinput
{
chartrainnum[10];
charstartp[10];
charendp[10];
charstartt[10];
charendt[10];
doubleprice;
}t[N],who;//定义结构体数组与结构体变量
//函数声明
voidmenu();
voidinput();
voidsearch();
voidstatistics();
voidsort();
voidview();
voidSetColor(unsignedshort,unsignedshort);
//主函数
voidmain()
{
menu();//显示系统主界面
intnum;
cin>>num;
for(;num!
=0;)
{
system("cls");//清除屏幕数据
switch(num)
{
case1:
input();break;//录入火车时刻信息
case2:
search();break;//查询火车时刻信息
case3:
statistics();break;//统计火车车次
case4:
sort();break;//排序火车时刻信息
case5:
view();break;//浏览火车时刻信息
case0:
break;//退出系统
default:
cout<<"输入错误!
请重新选择!
"< } menu(); cin>>num; } } 2)menu函数 voidmenu()//显示系统主界面 { SetColor(15,0);//数据是白色,背景是黑色 cout<<"----------欢迎使用火车票信息管理系统主菜单----------"< cout<<"录入火车时刻信息,请选择: "< SetColor(10,0);//数据是绿色,背景是黑色 cout<<"1"< SetColor(15,0); cout<<"查询火车时刻信息,请选择: "< SetColor(10,0);cout<<"2"< SetColor(15,0); cout<<"统计火车车次,请选择: "< SetColor(10,0);cout<<"3"< SetColor(15,0); cout<<"排序火车时刻信息: 请选择: "< SetColor(10,0);cout<<"4"< SetColor(15,0); cout<<"浏览火车时刻信息: 请选择: "< SetColor(10,0);cout<<"5"< SetColor(15,0); cout<<"退出,请选择: "< SetColor(12,0);//数据是红色,背景是黑色 cout<<"0"< SetColor(14,0);//数据是黄色,背景是黑色 } 3)input函数 voidinput()//录入火车时刻信息 { for(inti=0;i { SetColor(12,0);cout<<"输入车次为0时结束录入! "< SetColor(15,0);cout<<"请输入车次: "< SetColor(14,0);cin>>t[i].trainnum;cout< if(strcmp(t[i].trainnum,"0")==0) break; SetColor(15,0);cout<<"请输入起点: "< SetColor(14,0);cin>>t[i].startp;cout< SetColor(15,0);cout<<"请输入终点: "< SetColor(14,0);cin>>t[i].endp;cout< SetColor(15,0);cout<<"请输入开车时间: "< SetColor(14,0);cin>>t[i].startt;cout< SetColor(15,0);cout<<"请输入到达时间: "< SetColor(14,0);cin>>t[i].endt;cout< SetColor(15,0);cout<<"请输入票价: "< SetColor(14,0);cin>>t[i].price;cout< m++;//统计录入次数 } } 4)search函数 voidsearch()//查询火车时刻信息 { SetColor(15,0);cout<<"按照车次查询,请选择: "< SetColor(10,0);cout<<"1"< SetColor(15,0);cout<<"按照起点和终点查询,请选择: "< SetColor(10,0);cout<<"2"< inta,p=0; SetColor(14,0);cin>>a;cout< if(a==1) { SetColor(15,0);cout<<"请输入查询车次: "< SetColor(14,0);cin>>who.trainnum;cout< for(inti=0;i if(strcmp(who.trainnum,t[i].trainnum)==0) { p=1; SetColor(15,0); cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"; cout<<"开车时间"<<"\t"<<"到达时间"<<"\t"<<"票价"< SetColor(9,0);//数据是蓝色,背景是黑色 cout< cout< } if(p==0) { SetColor(12,0); cout<<"无此车次! "< } } elseif(a==2) { SetColor(15,0);cout<<"请输入查询起点: "< SetColor(14,0);cin>>who.startp;cout< SetColor(15,0);cout<<"请输入查询终点: "< SetColor(14,0);cin>>who.endp;cout< for(inti=0;i if(strcmp(who.startp,t[i].startp)==0&&strcmp(who.endp,t[i].endp)==0) { p=1; SetColor(15,0); cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"; cout<<"开车时间"<<"\t"<<"到达时间"<<"\t"<<"票价"< SetColor(9,0); cout< cout< } if(p==0) { SetColor(12,0); cout<<"无此车次! "< } } else { SetColor(12,0); cout<<"输入错误! 请重新选择! "< } } 5)statistics函数 voidstatistics()//统计火车车次 { SetColor(15,0);cout<<"按起点统计每日的车次数,请选择: "< SetColor(10,0);cout<<"1"< SetColor(15,0);cout<<"按终点统计每日的车次数,请选择: "< SetColor(10,0);cout<<"2"< inta,p=0; SetColor(14,0);cin>>a;cout< if(a==1) { SetColor(15,0);cout<<"请输入统计起点: "< SetColor(14,0);cin>>who.startp;cout< intn=0; for(inti=0;i if(strcmp(who.startp,t[i].startp)==0) { n++; SetColor(15,0); cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"<<"开车时间"; cout<<"\t"<<"到达时间"<<"\t"<<"票价"< SetColor(9,0); cout< cout< } SetColor(15,0);cout<<"起点为"< SetColor(10,0);cout< SetColor(15,0);cout<<"的每日车次数是"< SetColor(12,0);cout< SetColor(15,0);cout<<"次"< } elseif(a==2) { SetColor(15,0);cout<<"请输入统计终点: "< SetColor(14,0);cin>>who.endp;cout< intn=0; for(inti=0;i if(strcmp(who.endp,t[i].endp)==0) { n++; SetColor(15,0); cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"<<"开车时间"; cout<<"\t"<<"到达时间"<<"\t"<<"票价"< SetColor(9,0); cout< cout< } SetColor(15,0);cout<<"终点为"< SetColor(10,0);cout< SetColor(15,0);cout<<"的每日车次数是"< SetColor(12,0);cout< SetColor(15,0);cout<<"次"< } else { SetColor(12,0); cout<<"输入错误! 请重新选择! "< } } 6)sort函数 voidsort()//排序火车时刻信息 { SetColor(15,0);cout<<"按开车时间排序,请选择: "< SetColor(10,0);cout<<"1"< SetColor(15,0);cout<<"按起点做为主关键字、开车时间做为次关键字排序,"; cout<<"请选择: "< SetColor(10,0);cout<<"2"< inta; SetColor(14,0);cin>>a;cout< if(a==1) { for(inti=0;i for(intj=0;j if(strcmp(t[j].startt,t[j+1].startt)>0) { who=t[j]; t[j]=t[j+1]; t[j+1]=who; } SetColor(15,0); cout<<"按开车时间排序后是: "< cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"<<"开车时间"; cout<<"\t"<<"到达时间"<<"\t"<<"票价"< for(i=0;i { SetColor(9,0); cout< cout< cout< } } elseif(a==2) { for(inti=0;i for(intj=0;j if(strcmp(t[j].startp,t[j+1].startp)>0) { who=t[j]; t[j]=t[j+1]; t[j+1]=who; } for(i=0;i for(intj=0;j if(strcmp(t[j].startp,t[j+1].startp)==0&&strcmp(t[j].startt,t[j+1].startt)>0) { who=t[j]; t[j]=t[j+1]; t[j+1]=who; } SetColor(15,0); cout<<"按起点做为主关键字、开车时间做为次关键字排序后是: "< cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"<<"开车时间"; cout<<"\t"<<"到达时间"<<"\t"<<"票价"< for(i=0;i { SetColor(9,0); cout< cout<<"\t"<<"\t"< } } else { SetColor(12,0); cout<<"输入错误! 请重新选择! "< } } 7)view函数 voidview()//浏览火车时刻信息 { SetColor(15,0); cout<<"车次"<<"\t"<<"起点"<<"\t"<<"终点"<<"\t"<<"开车时间"<<"\t"; cout<<"到达时间"<<"\t"<<"票价"< for(inti=0;i { SetColor(9,0); cout< cout< } } 8)SetColor函数 voidSetColor(unsignedshortForeColor=7,unsignedshortBackGroundColor=0)//设置颜色 { HANDLEhCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,ForeColor+BackGroundColor*0x10); } 四、对该设计题目有何更完善的方案 1、对自己完成程序进行自我评价。 我的程序非常好的完成了任务中规定的设计内容,并添加了自主创新设计内容,运行完全正确。 2、对课题提出更完善的方案 建议对火车时刻信息加入余票、学生票、成人票信息,并且对程序添加订票和退票功能。 五、收获及心得体会 收获: 学习并掌握了如何使用函数清除屏幕数据和给数据添加颜色的方法。 心得体会: 对VC中的许多内容使用不太熟练,以后应该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 火车票 信息管理 系统 课程设计 报告