公交线路管理系统的设计Word下载.docx
- 文档编号:17586366
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:24
- 大小:256.52KB
公交线路管理系统的设计Word下载.docx
《公交线路管理系统的设计Word下载.docx》由会员分享,可在线阅读,更多相关《公交线路管理系统的设计Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
输入当前所在站点和要去的站点,找到应乘坐的公交线路,如输入起点=八一公园,到站=内科大,查找后应输出“请乘坐1路公交车”,有多个查找结果时,按照线路编号由小到大输出。
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(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<
iostream>
fstream>
string>
iomanip>
ctime>
voidmenu();
usingnamespacestd;
//排序
};
//-------------录入路线信息---------------
voidbus:
:
save()
stringpass[30],busstart,busend;
intbusroute,busstation,busprice,i;
charx;
ofstreamoutfile("
c1.txt"
ios:
app);
//----打开文件----
if(!
outfile)
{
cerr<
<
"
openerror"
endl;
exit
(1);
}
//==========按照提示录入路线信息==========
do{
cout<
============================================================"
线路"
全程站点"
起始站"
终点站"
票价"
途经站点"
cin>
>
busroute;
route=busroute;
if(route==0)
{break;
outfile<
left<
setw(10)<
route;
busstation;
station=busstation;
station;
busstart;
start=busstart;
start;
busend;
end=busend;
end;
busprice;
price=busprice;
price;
for(i=0;
i<
30,i<
i++)
{
cin>
pass[i];
outfile<
}
\r\n"
;
路线信息已成功保存!
是否继续录入路线信息:
y.是n.否"
x;
}while(x=='
y'
||x=='
Y'
);
outfile.close();
//=========关闭文件==========
sort();
//---------------对站点信息进行排序--------------
structfbr
stringbuspass[30],busstart,busend;
intbusstation,busprice;
sort()
structfbrfbr2[100];
intbusroute[100],i,j;
ifstreaminfile("
in);
infile)
Openerror"
i=0;
j=0;
while(infile>
busroute[i]>
fbr2[i].busstation>
fbr2[i].busstart>
fbr2[i].busend>
fbr2[i].busprice)
for(j=0;
j<
30;
j++)
{
infile>
fbr2[i].buspass[j];
if(fbr2[i].buspass[j]==fbr2[i].busend)
break;
i++;
for(intm=0;
m<
i-1;
m++)
intbr=m,br2;
structfbrfbr3;
for(intn=m+1;
n<
i;
n++)
if(busroute[m]>
busroute[n])
{br=n;
if(m!
=br)
br2=busroute[m];
busroute[m]=busroute[br];
busroute[br]=br2;
fbr3=fbr2[m];
fbr2[m]=fbr2[br];
fbr2[br]=fbr3;
infile.close();
out);
for(intii=0;
ii<
ii++)
route=busroute[ii];
station=fbr2[ii].busstation;
start=fbr2[ii].busstart;
end=fbr2[ii].busend;
price=fbr2[ii].busprice;
for(intkl=0;
kl<
30,kl<
kl++)
pass[kl]=fbr2[ii].buspass[kl];
pass[kl];
cout<
完成!
!
//------------------显示所有路线-----------------
showall()
stringbuspass,busstart,busend,str;
0penerror"
路线全程站点起始站终点站票价途经站点"
while(getline(infile,str))
{cout<
================================================================================"
str<
//--------------站站查询-------------------
searchroute()
system("
cls"
boolflag=true;
stringpass[30],start,end,ch1,ch2,a,b,str;
intstation,price;
//fopen
=========="
=起始站="
cin>
ch1;
=终点站="
ch2;
route>
station>
start>
end>
price)
for(inti=0;
if(pass[i]==ch1)
a=pass[i];
if(pass[i]==ch2)
b=pass[i];
if(pass[i]==end)
{
if(a==ch1&
&
b==ch2)
{
cout<
endl<
---------------------------------------------------------------"
route<
"
station<
start<
end<
price<
for(intj=0;
=i;
{
cout<
pass[j];
if(j!
=i)
cout<
-"
flag=false;
}
*************"
请乘坐"
路车!
}
}
a='
0'
b='
getline(infile,str);
}
if(flag)
系统未收录此站点"
del()
stringstr[100];
intk,i=1,a=1;
charl;
stringstart[100],end[100],pass[100];
while(getline(infile,str[a]))
序号:
a<
str[a]<
a++;
请输入需要的删除的路线序号:
k;
//退出程序
for(i=1;
a;
if(k!
str[i]<
已删除成功!
请问是否录入新的路线信息?
Y.是N.否"
l;
if(l=='
||l=='
)
save();
//主函数
voidmain()
busa;
voidmenu();
charch;
menu();
ch;
while(ch!
='
system("
switch(ch)
case'
1'
a.save();
break;
2'
a.showall();
3'
a.del();
4'
a.searchroute();
5'
exit(0);
default:
cout<
没有此选项!
menu();
voidmenu()
{
longt;
time(&
t);
当前时间:
ctime(&
t)<
"
>
公交线路管理系统<
"
>
<
1.输入路线信息<
2.显示所有路线<
3.删除线路<
4.站站查询<
5.退出程序<
欢迎使用本系统!
!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交线路 管理 系统 设计