火车管理系统.docx
- 文档编号:5928128
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:23
- 大小:167.38KB
火车管理系统.docx
《火车管理系统.docx》由会员分享,可在线阅读,更多相关《火车管理系统.docx(23页珍藏版)》请在冰点文库上搜索。
火车管理系统
学生设计:
火车票查询系统
——C++项目开发报告书
机械1006班
第五组
指导老师:
胡彬
开发成员姓名
学号
分工
李先成
U201010701
基类和主函数类的设计:
主界面设计及功能界面设计;项目报告整合。
安冬
U201010705
功能界面设计;主函数的设计与实现;部分程序测试;项目报告设计。
吴蔚然
U201010692
类的设计;项目报告操作指南设计;程序的注释与最终调试,项目报告整合。
孟庆钊
U201010695
数据的收集整合,类的设计;项目分析总结;项目报告的整合与完善。
目录
一.项目开发文档.................................(3)
1项目基本分析................................(3)
1.1项目目标...................................(3)
1.2功能描述.................................(4)
2概要设计报告................................(5)
3详细设计报告................................(5)程序结构…………………………………………(5)
4操作指南...................................(6)
5项目总结..................................(7)
二.项目代码……………………………………………(12)
一项目开发文档
1.项目基本分析
1.1项目目标:
(1)目的:
加强所学习的C++知识,进一步熟练掌握C++语言的基本知识和技能;同时增加了队员与队员之间的团队意识,并能够将所学知识运用到实践中去。
(2)本项目目标如下:
问题描述:
中国人出行大部分都会选择火车的交通方式,尤其是在中国特色的“春运”期间。
所以一个完善的便捷的火车票查询系统是十分必要的,它主要要实现查询功能,对于管理人员还要增加修改、删除等功能。
根据这种情况,我组设计了火车票查询系统,作为本此项目设计。
要求:
1)能按座位等级,发车或到达时间查询并显示车票信息,为旅客提供服务。
2)建立多个类的体系,分工完成各个类的设计,并分别增加了不同的属性和方法.
3)设计出较为完善的界面;
1.2功能描述:
本程序系统设有一个比较精美的可视化的操作界面,并设有分级菜单与选项,每一层都有人性话提示,能够方便的指导用户的使用。
本系统主要用于正确指导使用者进行“北京—武汉”火车票的查询及车票信息的修改和删除,并在操作者失误的条件下给以一定提示和纠正。
并但是本系统也存在缺陷:
一定的局限性,因为我组提供的仅仅是两地之间的火车票查询,相关信息不够庞大,功能也不是十分齐全。
但与此同时我们设计的系统优点也在于此,我们可以简单快捷的实现增、改、删、查功能,随时能将新的车票信息输入到系统中储存起来,便于用户的储存与查询,故不断使用这个系统也是不断完善它的一个过程。
鉴于目前我们小组成员刚刚开始学习C++,所掌握的知识并不全面,设计的程序存在一定的局限性。
下一阶段将继续学习其他知识,提高编程能力。
不过总的来说,我们小组成员通过本次项目学习,对本学期所学内容有了进一步的理解与掌握。
基本达到项目设计的目的.
二概要设计报告:
使用与项目管理是通过类的组合,继承与派生,再加上对函数的充分利用,实现用户对京武两地火车票的车次、票价、座位等级等相关信息的查询和修改,更加人性化地为广大火车乘客提供基本数据内容以及导购服务。
下面将会详细的介绍使用流程。
三详细设计报告:
3.1程序结构如下图。
4.操作指南
主界面
进入主界面后会看到如下提示:
点击确定进入菜单;
进入菜单后按照提示操作:
当普通用户进入该界面时,需按照提示输入管理员密码,密码为1234,注意:
由于本次为大作业,所以把密码公开化:
菜单有三项:
A.修改B.删除C.添加
管理员输入相应的字母进行相应的操作:
例如,输入的是A,要修改车次号码
如果输入的是A,要修改二等座票价:
如果要删除一个车次的所有信息,包括车次,一等座票价,二等座票价,出发时间,到达时间;
如果要添加一个完整车次的信息,包括车次,一等座票价,二等座票价,出发时间,到达时间;
添加,可连续添加,如果要连续添加,添加完一个后输入1即可,不想连续添加输入0即可。
5.项目总结
经过一个学期的C++课程的学习以及对“火车查询系统”项目的设计与开发,我们收获了很多。
现分条和大家分享一下。
1、团队合作是必不可少的。
一个人的力量终归是薄弱的,而如果将四个人的思想整合在一起,力量就是无穷的。
正所谓“同心山成玉,协力土变金”。
在本项目的设计中,我们小组对各项事务都进行了严谨而周密的分工,保证该项目能够快速高效地完成。
在项目设计之初我们4个人聚在一起开会对项目发表了自己的想法并同时惊醒了深入的讨论,最终达成一致来开发这个电脑导购系统。
在开发过程中我们每个人都全身心地投身到项目的制作之中,尽力做好自己的一部分工作。
正是由于我们各个组员之间的相互合作,才使得该项目能够高效地完成。
2、细节决定成败。
在编码的时候,往往一个细节决定着你程序设计的最终结果。
比如说:
输入法的错误将导致编译时出现大量错误;名称输入时,一个字母的输入错误将导致整个程序不能被系统不能识别;某一标点符号(例如逗号和分号、单引号与双引号)的输入错误,也会使整个程序不能被执行。
尽管这些都是小错误,但就是这样的一个小错误,可能会让你浪费很多的时间来查找、修改错误,影响了程序的完成。
同时,可能会影响到你的心情。
因而在编码的时候,要对每一个细节加以注意,应多注意检查,以避免大量错误的出现。
正所谓“细节决定成败”,我们要养成严谨的态度,在每个细节上多加注意,才能使作品更加完善。
同样,不仅是在程序设计中,就是在日常生活中,严谨的态度也会让我们受益匪浅。
3、相互学习、借鉴才有大收获
每个人都有或多或少的缺点,在四个人的小组中,要互相学习对方的长处、优点以完善自我。
项目的研发不只在于结果,更重要的是过程。
通过几个星期的相互交流、合作,我们在完成项目的同时,同学间的友情也加以深固,并且从队友身上学到了许多知识。
确实收获颇丰。
结语:
我认为从开始到结束,结果是好是坏已经不再重要,重要的是我们一个团队经历的的这样一个不断创新不断克服困难的过程。
感谢老师提供了这样的一个平台,让我们能够学有所用,真实地感受到学习C++的用处及好处所在。
让我们能够在收获完成项目的喜悦的同时,也收获到了一些对我们一生都有用的品质与知识。
4.关于C++知识在项目中的健全
以前不太理解局部变量,全局变量,及其作用域等,现在通过项目的编程、调试等,加深了对全局变量从其生命开始一直到程序结束,具有全局生命期,但是会在块中局部优先,而局部变量的作用域只是在块中,如果离开了块,局部变量则不能使用。
数组可以用来存储数据,并可以当做小型数据库来使用,当对数组中数据处理时应注意数据的下标,下标为个数减一。
使用类时,注意类名前后应一致。
二.项目代码………………………………………………………………………………(10)
#include
#include
#include
#include
#include
#pragmacomment(lib,"winmm.lib")
usingnamespacestd;
stringnum[100]={"D3009","D3041","D3045","D3017"};
doubleprice1[100]={143,134,145,154};
doubleprice2[100]={113,105,112,122};
intstarttime[100]={112,613,1214,1815};
intarrivetime[100]={559,1158,1757,2356};
intsub0;
string&anum=num[sub0-1];
double&pr=price1[sub0-1];
double&pr1=price2[sub0-1];
int&t=starttime[sub0-1];
int&tt=arrivetime[sub0-1];
classNum
{
public:
Num(){anum="0";}
Num(stringn)
{
anum=n;
}
voidsetnum(stringnn)
{
num[sub0-1]=nn;
}
stringgetnum()
{
returnanum;
}
};
classPrice
{
public:
Price(){pr=0;}
Price(doublepp)
{
pr=pp;
}
voidsetprice(doublepp)
{
price1[sub0-1]=pp;
}
doublegetprice()
{
returnpr;
}
};
classPri
{
public:
Pri(){pr1=0;}
Pri(doublepp)
{
pr1=pp;
}
voidsetpri(doublepp)
{
price2[sub0-1]=pp;
}
doublegetpri()
{
returnpr1;
}
};
classTim
{
public:
Tim(){t=0;}
Tim(inttime)
{
t=time;
}
voidsettim(inttime)
{
starttime[sub0-1]=time;
}
intgettim()
{
returnt;
}
};
classTime
{
public:
Time(){tt=0;}
Time(inttime)
{
tt=time;
}
voidsettime(inttime)
{
arrivetime[sub0-1]=time;
}
intgettime()
{
returntt;
}
};
intmain()
{
MessageBox(NULL,"欢迎使用机械6班第五组火车查询系统,本系统提供由北京开往武汉的各火车车次的详细信息","welcomewindow",0);
charch;
intat;
doublepr;
double*p;
charcharacter;
cout<<"请选择所需的座位等级a或b(温馨提示:
一等座舒适但价格较高,二等座价格较低但不太舒适。
):
"<<"\n"<<"a.一等座"<<'\t'<<"b.二等座"< cin>>ch; ch='a'; if(ch=='a')p=price1; elseif(ch=='b')p=price2; elsecout<<"输入错误,请重新输入"< cout<<"请输入想要到达目的地的时间(如8: 34输入834;如12: 23输入1223)"< cin>>at; at=1234; inttemp; temp=at/600; if(temp==0)cout<<"本系统推荐您乘坐车次为"< <<": "< "< elsecout<<"本系统推荐您乘坐车次为"< <<": "< "< cout<<"车费为"< cout<<"以下操作仅管理员可操作,请输入管理员密码(由于本次为作业,故我将密码告诉你: 1234)"< doublecheck; cin>>check; if(check! =1234) { MessageBox(NULL,"感谢您的使用","welcomewindow",0); return0; } elsecout<<"如需继续操作请输入对应选项字母(A,B,C),结束请关闭对话框"< cout<<"A.修改B.删除C.添加"< cout<<"序号1234"< cout<<"M.车次D3009D3041D3045D3017"< cout<<"N.一等座票价143134145154"< cout<<"O.二等座票价113105112122"< cout<<"P.出发时间11261312141815"< cout<<"Q.到达时间559115817572356"< charchoice; cout<<"请输入操作字母代号(A,B,C)"< cin>>choice; if(choice=='A') { cout<<"请输入要修改的对象的行号(M,N,O,P,Q)"< charcho; cin>>cho; cout<<"请输入要修改的对象的列号(1,2,3,4)以及修改后的值"< int&sub=sub0; cin>>sub; if(cho=='M') { stringchange; cin>>change; Numname(num[sub-1]); name.setnum(change); name.getnum(); } elseif(cho=='N') { doublechange; cin>>change; Priceprice(price1[sub-1]); price.setprice(change); price.getprice(); } elseif(cho=='O') { doublechange; cin>>change; Pripri(price2[sub-1]); pri.setpri(change); pri.getpri(); } elseif(cho=='P') { intchange; cin>>change; Timti(starttime[sub-1]); ti.settim(change); ti.gettim(); } elseif(cho=='Q') { intchange; cin>>change; Timetim(arrivetime[sub-1]); tim.settime(change); tim.gettime(); } cout<<"修改后的结果为: "< intj; for(j=0;num[j]! ="\0";j++) { cout< } cout< for(j=0;j<4;j++) { cout< } cout< for(j=0;j<4;j++) { cout< } cout< for(j=0;j<4;j++) { cout< } cout< for(j=0;j<4;j++) { cout< } cout< } elseif(choice=='B') { cout<<"请输入要删除的序号"< int&sub=sub0; cin>>sub; num[sub-1]="查无此车"; price1[sub-1]=1; price2[sub-1]=1; starttime[sub-1]=1; arrivetime[sub-1]=1; cout<<"修改后的结果为: "< intj; for(j=0;num[j]! ="\0";j++) { cout< } cout< for(j=0;price1[j]! ='\0';j++) { cout< } cout< for(j=0;price2[j]! ='\0';j++) { cout< } cout< for(j=0;starttime[j]! ='\0';j++) { cout< } cout< for(j=0;arrivetime[j]! ='\0';j++) { cout< } cout< } elseif(choice=='C') { inti; while(i! =0) { intlen=4; stringinput1; doubleinput2,input3; intinput4,input5; cout<<"请依次输入车次、一等座票价、二等座票价、出发时间、到达时间"< cin>>input1; cin>>input2; cin>>input3; cin>>input4; cin>>input5; num[len]=input1; price1[len]=input2; price2[len]=input3; starttime[len]=input4; arrivetime[len]=input5; cout<<"继续添加请输入1,否则请输入0"< cin>>i; if(i! =0)len++; } cout<<"修改后的结果为: "< intj; for(j=0;num[j]! ="\0";j++) { cout< } cout< for(j=0;price1[j]! ='\0';j++) { cout< } cout< for(j=0;price2[j]! ='\0';j++) { cout< } cout< for(j=0;starttime[j]! ='\0';j++) { cout< } cout< for(j=0;arrivetime[j]! ='\0';j++) { cout< } cout< } MessageBox(NULL,"祝您旅途愉快,感谢您的使用","welcomewindow",0); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车 管理 系统