VC++2013火车票信息管理系统课程设计报告材料_第1页
VC++2013火车票信息管理系统课程设计报告材料_第2页
VC++2013火车票信息管理系统课程设计报告材料_第3页
免费预览已结束,剩余31页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北工业大学计算机软件技术基础(VC 2013年课程设计报告学院 信息工程学院 班级 通信121班 姓名 李小帅 学号122208成绩一、题目火车票信息管理系统(19)、设计思路1、总体设计1)分析程序的功能在火车票信息管理系统的主菜单界面中,用户可选择不同的选项,根据不同选 项的提示操作,然后程序输出用户进行操作的结果。2)系统总体结构:该程序的过程可由这几部分组成:显示系统主界面,录入火车时刻信息,查询火车时刻信息,统计火车车次,排序火车时刻信息,浏览火车时刻信息,退出系统总共七个步骤:模块函数名称显示系统主界面menu录入火车时刻信息in put查询火车时刻信息search统计火车车次s

2、tatistics排序火车时刻信息sort浏览火车时刻信息view退出系统对于每一次选择,关注的数据有六个:车次,起点,终点,开车时间,到达时 间,票价。这组数据内部耦合度很高,所以考虑把他们封装为结构体数组和结构体 变量。车次,起点,终点,开车时间,到达时间,票价的初值由用户录入。表示信息成员名称车次trainnum起点startp终占乙八、endp开车时间startt到达时间endt票价price结构体:time in put结构体数组:t结构体变量:who2、各功能模块的设计:说明各功能模块的实现方法1) menu模块该函数是要输出火车票信息管理系统的主菜单界面,不需要返回值。主菜单界面

3、如下欢迎使用火车票信息管理系统主菜单 录入火车时刻信息,请选择:1 查询火车时刻信息,请选择:2 统计火车车次,请选择:3排序火车时刻信息:请选择:4 浏览火车时刻信息:请选择:5 退出,请选择:0代码参见menu函数。2) in put 模块该函数是要实现为车次,起点,终点,开车时间,到达时间,票价赋初值,不 需要返回值。为了能够实现随时停止录入的功能,每当用户输入车次时,都要进行 判断,当输入车次为0时,则停止录入,返回系统主界面,否则继续录入。代码参见in put函数。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)说明你编制的程序能完成的功能用户通过不同的选项,实现对火车票时刻信息的录入

7、、查询、统计、排序、浏览。2)准备的测试数据及运行结果f h I * C:Prog ram FiilesMicrosoft Visual Stud i o My P roj erts «a jI a I aD e bugla lalala. exe血主菜单J- J* 7 JJTJJJJ J0选选帚$0终开A 入 LA ;_ 辅2:3输:5输皿输圭冃r3土月亢主冃八主月L8主月诣主L2土月次 霹理+月主Rn冃 .ll:4 lTl 管:选; 息 蔥心息 亠一-m-豆一一亠一一回一耳车车选 A$±±$w 用火火火火火 迎曇统排蚩 欢-¥1 2 4 5车器车爵选

8、 火WWMHS 火火火火 询计迎書统欢单 窠: '土:: 充睪睪/2-4HLTJ- :Mln “ 系选选>i 理请请®谓 管:选: 息息息心息 亠一一耳一目一一巳=实耳"C:Program FillesMiCTOsoft Visual StudioMyProjectslalahIaiDebuglahlah.exe"覆入查询终点1获 起点 终点起点终占请选择:2:开车时间到达时间开车时间到达时间票价票价菜 1 2 4 5 主3:选选 理请请请 管<«=: 自心自 心息 |5<心息 言営目一一巳亠一一 R=R 车訴车器选 用火火火火

9、火> 煲黑務岀 s_n 欢回I. "CPragram FilesMiCTO5Qft Visual StudioMyProjectsMlakIaDebughllah,exe"票价票价票价到达时间到达时间到达时间,=I 回*ttlt"开车时间开车时间开三时间S- 菜 1 2 d- B 壬3 二二: 系选选:烹 理请请s#il K :逮”; 心息息心 號_目一一e-1-5;亠-忌気L终点的一的mm1充充点点養1请天车起点起点车次车次擊訴车器选 次火WWWS 车用JP火火火火, 的欢津一 天一 为一 点-起一 I 'C:Program FilesMiCTOS

10、Qft Visual StudioMyProject5lalalaIaDebughlalah.exeHA请选廳2票价票价到达时间到达时间车次起点终点开车时间单; 1 '士 充睪睪 zz-in- 3 二. 1-T. 系星.选选 理请谓请 管<阎. 息息息 心息舊”Bi-aSJ di J JI是票“ 聲訴车热选 次火WWW请 车用火火火火火* 卑務出 每迎養一统排蚩 的欢 台一 邢一、一 点一半: "C:Program FilesXMiCTOsoft Visual StudioMyPrqjertsldilahIaDebughlalah.exe"遗开牢吋间排序進选蜃

11、1按餌股境圭关te#.莽车时间做为我关键字排序,请选择:乞 倉”车时迥港序J&:亠"*4执羊次起点 算点 开车时间到达时间票价车器车热选 火WW44请 用火火火火火, 呀询计掘岀 迎nll排幫 欢单M-'士 充睪革(¥? zz-lJUJ - =_!. 系选选.选选 理请请请 管;逊: 自0息心息 亠一豆一一母=亠一一R亠一一Rr-"C:Program FillesMicrosoft Visual StudioMyProject5lalahIaDebughlalah.exe票价遽开丰时间*蒔.:按起貢就境圭关柚黑 笄车时间做为愧关键字排険 诗选择.2

12、 备起点做为主关華次起点FSB开车嘶一卑-12 百 5 'ZL- 充睪POF J ? zz-iJ4J - -r-r.二. 系选选:选选 理请请请 管逊: 自.3自心S心自心 言言宣兰巳_5.- 票车器车訴选 火请 用火火火火火, 呀询计脣岀 迎nlKg排蚩 欢-车次 起点 终点 开车时间到达时间票价B 'GProgram Files' Microsoft Visua StudioMVIyProjects lalalalaDebug' aldhla.exe*单菜 1 2 4 5 '土, ¥¥ $¥-:_“、3 二.L_ 、 系

13、曙:选选 胆育主冃CM冃主冃 llrJTFTl- 菅:选; 息心息;!心息 亠_=目登一一亠一豆一耳 车訴车訴选 用火火火X火 迎畫统排遛- 导r "C:Program FilesMicrosoft Visual StudioMyProjects;> lalalaIaDebuglalahla.exeWF到达时间开车时间单 菜 1 2 4 5 '土 : E : £萨-二二.3 二 is 选选 理lix月主S-H冃v-1 T1L- 管:选.; 息息息心息 亠一一母気亠一一巳亠一一 R=R 车訴车器选 用火火火火火 煲器務岀 迎鲁统排常 欢. I wC:Progra

14、m FilesMicrosoft Visual Stud i o M y P rqj ects -Jdi ia I a I aD e bugh lalah, exe"遼理车次查询.谄选S-: 1 按照起点和塚点晝询请选择:2请聾入查询起点:寿*入查询终点p TC;ProgramFileXMicrosoft Visusl StudioMyProj£“5為怙山1曰口訪口百 e -3 ala.exe"勰翻體龜野霸寸间畛次关键字排険情选扱a-釆 1 2 4- 5 '士 充 '睪睪 系烹:选选 理主冃tkrtffHl冃主冃 -LJ- T 11 I tj.,

15、1 TP 管:邂: 息息 心息 亠一一刊=£*鬲亠一一B一一 R 车薛车器选 灵WWHW请 -:-一用火火火火火. 一冕器赛岀 迎排幫%p 'C:Program File5Micro5oft Viisusl Stud ioM/Project? I a Id I a I aD e t)ugh h lai a .exe"1请选择雷2追子犍 序关单S-1 ; ! 主'$:塞 系烹.选选 厘圭冃青冃主冃 管:邂; 息息息 flnl心息 兰£-_&-_% 亠一一S-1一一 E车器车訴选 灵WWW请 1臾火火火火* 一晃器隹岀 迎黍统排製 欠Press

16、 ariy ke to continue三、程序清单1) main函数/预定义处理#i nclude<iostream.h>#i nclude<stri ng.h>#i ncludevwi ndows.h> const int N=100;/结构体声明struct time in putchar trainnu m10;char startp10;char e ndp10;char startt10;char e ndt10;double price;tN,who;定义结构体数组与结构体变量/函数声明void menu();void in put();void s

17、earch();void statistics();void sort();void view();void SetColor( un sig ned short ,un sig ned short);/主函数void mai n()menu();显示系统主界面int num;cin»num;for(; nu m!=0;)system("cls");清除屏幕数据switch( num)case 1:i nput();break;录入火车时刻信息case 2:search();break;查询火车时刻信息case 3:statistics();break;统计火车车

18、次case 4:sort();break;排序火车时刻信息case 5:view();break;浏览火车时刻信息case 0:break;退出系统default:cout<<"输入错误!请重新选择!"<<endl;break;menu();cin>>num;2) menu函数void me nu() 显示系统主界面SetColor(15,0);数据是白色,背景是黑色cout«"欢迎使用火车票信息管理系统主菜单"<<e ndl;cout«"录入火车时刻信息,请选择:"

19、vvflush;SetColor(10,0); cout<<"1"<<e ndl;数据是绿色,背景是黑色SetColor(15,0);cout«"查询火车时刻信息,请选择:"vvflush;SetColor(10,0); cout<<"2"<<e ndl;SetColor(15,0);cout«"统计火车车次,请选择:"vvflush;SetColor(10,0); cout<v"3"v<e ndl;SetColor

20、(15,0);cout«"排序火车时刻信息:请选择:IIvvflush;SetColor(10,0);cout<v"4"v<e ndl;SetColor(15,0);cout«"浏览火车时刻信息:请选择:IIvvflush;SetColor(10,0);cout<<"5"<<e ndl;SetColor(15,0);cout«"退出,请选择:"vvflush;SetColor(12,0);数据是红色,背景是黑色cout<<"0&

21、quot;<<e ndl;SetColor(14,0);数据是黄色,背景是黑色3) in put 函数void in put()录入火车时刻信息for(int i=0;i<N;i+)SetColor(12,0); cout<<"输入车次为0时结束录入!"<<endl;SetColor(15,0); cout<<"请输入车次:"<<e ndl;SetColor(14,0); cin> >ti.trai nnum; cout<<flush;if(strcmp(ti.tr

22、ai nn um,"0")=0)break;SetColor(15,0); cout<<"请输入起点:"<<e ndl;SetColor(14,0); cin>>ti.startp; cout<<flush;SetColor(15,0); cout<<"请输入终点:"<<e ndl;SetColor(14,0); cin>>ti.endp; cout<<flush;SetColor(15,0); cout<<"请输入开

23、车时间:"<<e ndl;SetColor(14,0); cin>>ti.startt; coutvvflush;SetColor(15,0); cout<<"请输入到达时间:"<<e ndl;SetColor(14,0); cin>>ti.endt; cout<<flush;SetColor(15,0); cout<<"请输入票价:"<<e ndl;SetColor(14,0); cin>>ti.price; cout<<f

24、lush;m+;统计录入次数4) search 函数void search()查询火车时刻信息SetColor(15,0); cout<<"按照车次查询,请选择:"<<flush;SetColor(10,0); cout<<"1"<<e ndl;SetColor(15,0); cout<<"按照起点和终点查询,请选择:"<<flush;SetColor(10,0); cout<<"2"<<e ndl;int a,p=0;

25、SetColor(14,0); cin»a; cout<<flush;if(a=1)SetColor(15,0); cout<<"请输入查询车次:"<<e ndl;SetColor(14,0); cin>>who.trainnum; cout<<flush;for(int i=0;i<m;i+)if(strcmp(who.trai nnu m,ti.trai nnum)=0)p=1;SetColor(15,0);cout«"车次"vv"t"vv&qu

26、ot; 起点"vv"t"vv" 终点"<<"t"coutvv"开车时间"vv"t"vv" 到达时间"vv"t"vv" 票价"<<endl;SetColor(9,0);数据是蓝色,背景是黑色cout<<ti.trai nnu m<v"t"vvti.startpvv"t"v<ti.e ndp«"t" cout<

27、;vti.starttvv"t"vv"t"vvti.e ndt<<"t"<<"t"<<ti.price<<e ndl;if(p=0)SetColor(12,0);cout«"无此车次!"<<endl;else if(a=2)SetColor(15,0); cout<<"请输入查询起点:"<<e ndl;SetColor(14,0); cin>>who.startp; co

28、utvvflush;SetColor(15,0); cout<<"请输入查询终点:"<<e ndl;SetColor(14,0); cin> >who.e ndp; cout<<flush;for(int i=0;i<m;i+)if(strcmp(who.startp,ti.startp)=0&&strcmp(who.e ndp,ti.e ndp)=0) p=1;SetColor(15,0);coutvv"车次"<<"t"<<" 起

29、点"<<"t"<<" 终点"<<"t"coutvv"开车时间"vv"t"vv" 到达时间"vv"t"vv" 票价"vvendl; SetColor(9,0);coutvvti.trai nn umvv"t"vvti.startpvv"t"vvti.e ndpvv"t" coutvvti.starttvv"t"vv

30、"t"vvti.e ndtvv"t"vv"t"vvti.pricevve ndl;if(p=0)SetColor(12,0);cout«"无此车次!"<<endl;elseSetColor(12,0);coutvv"输入错误!请重新选择!"<<endl;5) statistics 函数void statistics。/统计火车车次SetColor(15,0); cout<<"按起点统计每日的车次数,请选择:"vvflush;Set

31、Color(10,0); cout<<"1"<<e ndl;SetColor(15,0); cout<<"按终点统计每日的车次数,请选择:"<<flush;SetColor(10,0); cout<<"2"<<e ndl;int a,p=0;SetColor(14,0); cin»a; cout<<flush;if(a=1)SetColor(15,0); cout<<"请输入统计起点:"<<e nd

32、l;SetColor(14,0); cin>>who.startp; cout<<flush;int n=0;for(int i=0;i<m;i+)n+;SetColor(15,0);coutvv"车次"vv"t"vv"起点"vv"t"vv"终点"vv"t"vv"开车时间" coutvv"t"vv"到达时间"<<"t"<<"票价&qu

33、ot;<<endl;SetColor(9,0);cout<<ti.trai nn um<v"t"vvti.startpvv"t"v<ti.e ndp«"t"cout<vti.starttvv"t"vv"t"vvti.e ndt<<"t"<<"t"<<ti.price<<e ndl;SetColor(15,0); cout<<" 起点为&

34、quot;vvflush;SetColor(10,0); cout<<who.startp<<flush;SetColor(15,0); cout<<"的每日车次数是"<<flush;SetColor(12,0); cout<< n< <flush;SetColor(15,0); cout<<"次"<<e ndl;else if(a=2)SetColor(15,0); cout<<" 请输入统计终点:"<<e ndl

35、;SetColor(14,0); cin> >who.e ndp; cout<<flush;int n=0;for(int i=0;i<m;i+)if(strcmp(who.e ndp,ti.e ndp)=0)n+;SetColor(15,0);coutvv"车次"<<"t"<<" 起点"<<"t"<<" 终点"<<"t"<<" 开车时间" cout<

36、;<"t"<<"到达时间"vv"t"vv"票价"vvendl;SetColor(9,0);cout<<ti.trai nnum vv"t"v<ti.startpvv"t"vvti.e ndp<<"t" cout<vti.starttvv"t"vv"t"v<ti.e ndt<v"t"vv"t"vvti.pricev

37、<e ndl;SetColor(15,0); cout<<" 终点为"vvflush;SetColor(10,0); cout<<who.endpvvflush;SetColor(15,0); cout<<"的每日车次数是"<<flush;SetColor(12,0); cout<<n<<flush;SetColor(15,0); cout<<"次"<<e ndl;elseSetColor(12,0);coutvv"输入错误

38、!请重新选择!"<<endl;6) sort函数void sort()/排序火车时刻信息SetColor(15,0); cout<<"按开车时间排序,请选择:"<<flush;SetColor(10,0); cout<<"1"<<e ndl;SetColor(15,0); cout<<"按起点做为主关键字、开车时间做为次关键字排序,cout«"请选择:"vvflush;SetColor(10,0); cout<<"

39、;2"<<e ndl;int a;SetColor(14,0); cin»a; cout<<flush;if(a=1)for(int i=0;i<m-1;i+)for(i nt j=0;j<m-1-i;j+)who=tj;tj=tj+1;tj+1=who;SetColor(15,0);coutvv"按开车时间排序后是:"<<endl;cout«"车次"vv"t"v<"起点"vv"t"v<" 终点&

40、quot;vv"t"v<" 开车时间"coutvv"t"vv"到达时间"<<"t"<<"票价"<<endl;for(i=0;i<m;i+)SetColor(9,0);cout<<ti.trai nn um<v"t"vvti.startpvv"t"v<ti.e ndp«"t"cout<vti.starttvv"t"

41、;vv"t"vvti.e ndt<<"t"<<"t" cout<<ti.price<<e ndl;else if(a=2)for(int i=0;i<m-1;i+)for(i nt j=0;j<m-1-i;j+)if(strcmp(tj.startp,tj+1.startp)>0)who=tj;tj=tj+1;tj+1=who;for(i=0;i<m-1;i+)for(i nt j=0;j<m-1-i;j+)who=tj;tj=tj+1; tj+1=who;SetColor(15,0);coutvv"按起点做为主关键字、开车时间做为次关键字排序后是:"<<endl;cout«"车次"vv"t"v<" 起点"vv"t"v<" 终点"vv"t"v<" 开车时间" coutvv"t"vv"到达时间"<<&q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论