公交线路管理系统的设计Word文件下载.docx

上传人:b****6 文档编号:20907648 上传时间:2023-01-26 格式:DOCX 页数:24 大小:258.98KB
下载 相关 举报
公交线路管理系统的设计Word文件下载.docx_第1页
第1页 / 共24页
公交线路管理系统的设计Word文件下载.docx_第2页
第2页 / 共24页
公交线路管理系统的设计Word文件下载.docx_第3页
第3页 / 共24页
公交线路管理系统的设计Word文件下载.docx_第4页
第4页 / 共24页
公交线路管理系统的设计Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

公交线路管理系统的设计Word文件下载.docx

《公交线路管理系统的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《公交线路管理系统的设计Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

公交线路管理系统的设计Word文件下载.docx

输入当前所在站点和要去的站点,找到应乘坐的公交线路,如输入起点=八一公园,到站=科大,查找后应输出“请乘坐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.退出程序<

欢迎使用本系统!

!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1