公交线路管理系统的设计.docx
- 文档编号:985409
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:24
- 大小:257.15KB
公交线路管理系统的设计.docx
《公交线路管理系统的设计.docx》由会员分享,可在线阅读,更多相关《公交线路管理系统的设计.docx(24页珍藏版)》请在冰豆网上搜索。
公交线路管理系统的设计
《C++程序设计》
课程设计说明书
题目
公交线路管理系统的设计
姓名
贺英杰
班级
软件13-1班
指导教师
涌
日期
2014年6月23日
科技大学课程设计任务书
课程名称
C++语言课程设计
设计题目
公交线路管理系统的设计
指导教师
涌
时间
2014春学期第18、19
一、教学要求
1.巩固和加深学生对C++语言课程的基本知识的理解和掌握
2.掌握C++语言编程和程序调试的基本技能
3.利用C++语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C++语言解决实际问题的能力
二、设计资料及参数
用C++设计一个系统,能提供下列服务:
(1)录入公交信息,格式为:
线路
全程站点
起始
终点
途经
票价
1
10
火车站
恰特
科大,技校,云龙,包钢三中,科隆,八一公园,包百,包钢招待所
1
可增加线路数据。
(2)浏览线路信息,可显示出所有公交线路,按照线路编号由小到大排序。
(3)修改路线:
可按线路编号查询,可按起始站,终点站查询后进行修改。
(4)线路查询。
输入当前所在站点和要去的站点,找到应乘坐的公交线路,如输入起点=八一公园,到站=科大,查找后应输出“请乘坐1路公交车”,有多个查找结果时,按照线路编号由小到大输出。
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
第一章需求分析
以文件操作为基础,完成对数据信息的相关操作。
要求设计类(或类模板)来描述集合,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:
文件的输入和输出
查询文件中的元素、数据
对文件中进行插入、删除元素
实现文件元素的并、交、差运算
并设计主函数测试该类。
设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
第二章总体设计
系统功能包括:
录入线路信息,显示所有路线信息,删除路线,站站查询(输入起始站和终点站,查询经过两站的路线)。
第三章bus类的设计
bus类的设计:
classbus
{
函数成员:
public:
voidsave();//录入信息
voidshowall();//显示所有公交路线
voidsearchroute();//根据起始站和终点站查询路线
voiddel();//删除站点
voidsort();//排序数据成员
private:
introute,station,price;
stringstart;
stringend;
stringpass[30];
}
对bus类的说明:
由于本系统设计初衷为的是管理公交系统,所以利用C++语言来编写系统时,来设计一个bus类来管理公交线路信息,bus类中包含5个成员函数,他们分别或共同来实现主程序中的4个功能:
1.voidsave()和voidsort()共同完成信息的录入功能。
2.voidshowall()来完成信息的屏幕输出功能。
3.voidsearchroute()来完成站点的无序查询功能。
第四章详细设计
4.1工程视图
4.2类图视图
4.3函数的调用关系
4.4主程序流程图
算法:
主程序主要用运了switch结构,使得主程序更加便的调用成员函数,各个成员函数间的关系也清晰明了。
是
否
开始
输入与功能相对应的序号
执行功能
结束
是否存在
4.5主要算法的流程图
算法:
此函数用运了ofstream文件
操作,将文件写入到磁盘中的c1.txt中。
算法:
此函数用运ifstream函数读取文本文件的容,然后将其显示到屏幕上。
算法:
此函数先通过ifstream函数读取c1.txt中的容,然后修改之在通过ofstream函数将修改过的数据存入c1.txt中。
是
否
输入数据
开始
是否正确
执行并显示结果
结束
算法:
此函数先读取c1.txt中容,然后通过for循环找出符合条件的线路,最后将线路输出到屏幕。
第五章测试
1.主界面:
2.输入路线信息:
在主界面输入1,进入“输入路线信息”功能,按提示依次输入“线路”、“全程站点”、“起始站”、“终点站”、“票价”、“途经站点”,中间用空格隔开,回车,则结束输入。
保存成功后提示是否再次输入,Y则继续输入,N则结束到主界面。
3.显示所有路线信息:
在主界面时,输入2,显示所有路线信息。
4.删除路线:
在主界面时,输入3,进入删除界面,输入要删除的线路的序号,回车结束。
并提示是否输入新线路,Y则继续输入,N则结束到主界面。
5.站站查询:
在主界面,输入4,进入查询界面。
然后按照提示输入要查询的两个站点,回车结束,结果如下:
第六章总结
这次课程设计花费了将近30天时间,在这期间我第一次体验到编程的困难,但在程序顺利运行出结果时也体验到了很大的成就感,这种成就感让我兴奋不已。
这次经历给我感触最深的地就是,注重细节。
在刚阅读完课程设计任务书的时候,我只粗略想了一下总体设计,感觉可以轻松完成任务。
但在接下来的几十天中,我才感受到什么叫做细节决定成败。
就在写第一个函数时,我就遇到了不小的麻烦。
看似不长的几十行代码,写起来却十分费力。
中间不容有一点儿大意,一点小小的错误会浪费很多的时间去寻找与改错。
而调试更是花了两的时间,期间不断地发现错误,不断地改正错误,在这样的过程中收获也是很多的。
虽然写代码过程中遇到数不尽的难题,但在同学的启发与老师的帮助下。
我终于克服重重困难完成了设计,这是我自己努力付出的结果,也有同学和老师的热心帮助的回报,没有他们的帮助,我没有信心能够写出完整的程序。
这是一次难得的历练,它让我认识到编程不尽需要丰富的只是和经验,更需要认真仔细的态度去面对。
附录:
程序代码
#include
#include
#include
#include
#include
voidmenu();
usingnamespacestd;
classbus
{
public:
voidsave();//录入信息
voidshowall();//显示所有公交路线
voidsearchroute();//根据起始站和终点站查询路线
voiddel();//删除站点
voidsort();//排序
private:
introute,station,price;
stringstart;
stringend;
stringpass[30];
};
//-------------录入路线信息---------------
voidbus:
:
save()
{
stringpass[30],busstart,busend;
intbusroute,busstation,busprice,i;
charx;
ofstreamoutfile("c1.txt",ios:
:
app);//----打开文件----
if(!
outfile)
{
cerr<<"openerror"< exit (1); } //==========按照提示录入路线信息========== do{ cout<<"============================================================"< cout<<"线路"<<"全程站点"<<"起始站"<<"终点站"<<"票价"<<"途经站点"< cin>>busroute; route=busroute; if(route==0) {break;} outfile< cin>>busstation; station=busstation; outfile< cin>>busstart; start=busstart; outfile< cin>>busend; end=busend; outfile< cin>>busprice; price=busprice; outfile< for(i=0;i<30,i { cin>>pass[i]; outfile< } outfile<<"\r\n"; cout<<"路线信息已成功保存! "< cout<<"是否继续录入路线信息: "< cout<<"y.是n.否"< cin>>x; }while(x=='y'||x=='Y'); outfile.close();//=========关闭文件========== sort(); } //---------------对站点信息进行排序-------------- structfbr { stringbuspass[30],busstart,busend; intbusstation,busprice; }; voidbus: : sort() { structfbrfbr2[100]; intbusroute[100],i,j; ifstreaminfile("c1.txt",ios: : in); if(! infile) { cerr<<"Openerror"< exit (1); } i=0; j=0; while(infile>>busroute[i]>>fbr2[i].busstation>>fbr2[i].busstart>>fbr2[i].busend>>fbr2[i].b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交线路 管理 系统 设计