广东海洋大学数据结构课程设计公交换乘系统C.doc

上传人:wj 文档编号:1217973 上传时间:2023-04-30 格式:DOC 页数:12 大小:159KB
下载 相关 举报
广东海洋大学数据结构课程设计公交换乘系统C.doc_第1页
第1页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第2页
第2页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第3页
第3页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第4页
第4页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第5页
第5页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第6页
第6页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第7页
第7页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第8页
第8页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第9页
第9页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第10页
第10页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第11页
第11页 / 共12页
广东海洋大学数据结构课程设计公交换乘系统C.doc_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

广东海洋大学数据结构课程设计公交换乘系统C.doc

《广东海洋大学数据结构课程设计公交换乘系统C.doc》由会员分享,可在线阅读,更多相关《广东海洋大学数据结构课程设计公交换乘系统C.doc(12页珍藏版)》请在冰点文库上搜索。

广东海洋大学数据结构课程设计公交换乘系统C.doc

广东海洋大学信息学院

课程设计报告

设计题目

公交换乘

课程名称

数据结构

姓名(学号)

联系电话

专业名称

所在班级

指导教师

教师职称

起止时间

评定成绩

一、课程设计的主要内容

公交换乘在一个城市的公共交通系统设计中占据着极其重要的地位,公交换乘的过程将直接影响居民出行时间的长短,公交换乘的过程如下:

指定一起始公交站点与目的公交站点,依据参考因素,例如:

换乘路线的路径最短、耗费时间最短、所需车资最少等,经过分析处理得到可达目的站点换乘次数最少的乘车方案,具体可分为:

(1)零次换乘起始站点和目的站点之间存在可直达的公交线路,即出行居民无需转乘就可以直接到达目的站点,这也是较为理想的方案。

(2)一次换乘起始站点和目的站点之间没有公交车直接往返,即两站点之间不存在可直达的公交线路,则出行居民需要在途经的某个站点下车,然后转乘另一线路公交车才能达到目的站点。

(3)多次换乘在起始站点和目的站点之间没有可直达的公交线路,出行居民需要经过一次以上的转乘才能达到目的站点,则得到多次换乘方案。

多次换乘方案可通过一次换乘的递归计算得到,一般情况下,超过两次转乘的方案对于出行居民来说是难以接受的,本课程设计只要求计算零次和一次换乘方案,对于一次以上的公交换乘不作要求。

二、功能和结构设计

1、功能设计

在这里通过主函数显示程序的主页版,上面是湛江的公交线路图

在这里输入出发站点的名字,回车确定!

在这里输入最终站点的名字!

输入错误会提醒重新输入!

输入要查询的起点和终点

0次换乘,输出查询结果:

按y或Y,可以继续查询!

输入出发点和终点,一次换乘的结果如下:

2、结构设计

设计一个实现公交换乘的算法:

指定任一起始站点和目的站点,依据算法得到所有可达目的站点的的公交线路,包括中间站点的换乘方法以及该公交线路所经过的公交站点。

1.分析公交站点和公交线路的数据属性,并依据公交换乘的功能要求,确定算法设计方案;

2.设计公交站点信息以及公交线路信息的存储结构;

3.设计公交换乘算法,并画出程序流程图;

4.使用C++程序设计语言编写实现公交换乘的程序;

三、流程图和算法设计

开始

搜索经过起始站点的所有公交线路和经过目的站点的所有公交线路

判断是否存在同时经过其始站点和目的站点的公交线路

对于经过起始站点的公交线路和经过目的站点的公交线路的每对数据结构中,是否经过相同的公交站点

当前无法找到可行的换乘方案,打印相关信息

结束

找到一次换乘的乘车方案,打印换乘方案以及换乘路线所覆盖的站点信息

找到零次换乘(直达)的乘车方案,打印直达路线所覆盖的站点信息

四、源程序代码

#include

#include

usingnamespacestd;

constintpathlen=11;

intqd,zd;//起点,终点的下标

stringa[4]={"农垦医院站","广州湾站","霞湖医院站","海滨宾馆站"};

classBusline

{

public:

Busline(stringp[],intn);

voidzhida(inti,stringsp,stringfp,stringp[],intl);

voidgjhc(inti,intj,stringsp,stringfp,stringp1[],stringp2[]);

voidtu();

private:

stringbus[pathlen];

};

Busline:

:

Busline(stringp[],intn)

{

if(n>pathlen)throw"上溢";

for(inti=0;i

{

bus[i]=p[i];

}

}

voidBusline:

:

zhida(inti,stringsp,stringfp,stringp[],intl)

{

qd=i;

for(intj=0;j

if(fp==p[j])

{

cout<<"可以直达,乘坐"<

"<

if(i

{

cout<<"该路线为:

"<

for(intk=i;k<=j;k++)

{

cout<

}

}

else

cout<<"该路线为:

"<

for(intk=i;k>=j;k--)

{

cout<

}

}

}

voidBusline:

:

gjhc(inti,intj,stringsp,stringfp,stringp1[],stringp2[])

{

qd=i;

zd=j;

for(intk=0;k

for(inth=0;h

if(fp==p1[h]&&sp==p2[k])

{

for(intx=0;x<4;x++)

for(intl=0;l

for(intl1=0;l1

{

if(a[x]==p2[l]&&a[x]==p1[l1])

{

if(i

{

for(inty=i;y

{

cout<<"经"<

}

if(j

{

cout<<"在"<

for(intz=l1;z>=j;z--)

{

cout<<"经"<

}

cout<<"到"<

}

elseif(j>l1)

{

cout<<"在"<

for(intz=l1;z<=j;z++)

{

cout<<"经"<

}

cout<<"到"<

}

}

elseif(i>l)

{

cout<<"在"<

for(inty=i;y>l;y--)

{

cout<<"经"<

}

cout<<"到"<

if(j

{

for(intz=l1;z>=j;z--)

{

cout<<"转"<

}

}

elseif(j>l1)

{

cout<<"在"<

for(intz=l1;z<=j;z++)

{

cout<<"转"<

}

cout<<"到"<

}

}

}

}

}

}

voidBusline:

:

tu()

{

cout<<"湛江公交路线图"<

cout<<"2线|"<

cout<<"|"<

cout<<"东华站○"<

cout<<"||"<

cout<<"湾桥站○潜水运动○海滨医院站"<

cout<<"|学校站|海上城市站"<

cout<<" ̄农垦医院站● ̄ ̄○ ̄ ̄ ̄●海滨宾馆站 ̄ ̄ ̄○ ̄ ̄ ̄|"<

cout<<"|||"<

cout<<"啤酒厂站○○儿童公园站○市旅游总公司站"<

cout<<"|||"<

cout<<"俱乐部站○||"<

cout<<"|广州湾站||霞湖医院站"<

cout<<" ̄○ ̄○ ̄ ̄● ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄● ̄ ̄○ ̄ ̄"<

cout<<"广医附院站国贸站|建新东路站|霞山汽车运输总站"<

cout<<"||"<

cout<<"3线||"<

cout<<" ̄ ̄○ ̄ ̄○ ̄ ̄ ̄○ ̄○建设路站○海运集团公司站"<

cout<<"世纪广场站人民大道湛江汽车南站|"<

cout<<"中巴专线|1线"<

cout<<"(●为换乘站点,○为普通站点)"<

cout<

}

voidmain()

{

stringpath1[pathlen]={"农垦医院站","潜水运动学校站","海滨宾馆站","海上城市站","市旅游总公司站","霞湖医院站","海运集团公司站"};

stringpath2[pathlen]={"东华站","湾桥站","农垦医院站","啤酒厂站","俱乐部站","广医附院站","国贸站","广州湾站","建新东路站","霞湖医院站","霞山汽车运输总站"};

stringpath3[pathlen]={"海滨医院站","海滨宾馆站","儿童公园站","广州湾站","建设路站","湛江汽车南站","人民大道中巴专线","世纪广场站"};

Buslinea(path1,7);

Buslineb(path2,11);

Buslinec(path3,8);

a.tu();

stringsp,fp;

begin:

cout<<"请输入出发点:

"<

cin>>sp;

begin1:

cout<<"请输入终点:

"<

cin>>fp;

intj1=1,jj=1;

for(intd=0;d<7;d++)

{

if(sp==path1[d])

j1=2;

if(fp==path1[d])

jj=2;

}

for(d=0;d<11;d++)

{

if(sp==path2[d])

j1=2;

if(fp==path2[d])

jj=2;

}

for(d=0;d<8;d++)

{

if(sp==path3[d])

j1=2;

if(fp==path3[d])

jj=2;

}

if(j1==1)

{

cout<<"输入的出发点有错,请重新输入:

"<

gotobegin;

}

if(jj==1)

{

cout<<"输入的终点点有错,请重新输入:

"<

gotobegin1;

}

else

for(inti=0;i

{

for(intk1=0;k1

if(fp==path1[k1])

{

if(sp==path1[i])

{

a.zhida(i,sp,fp,path1,1);

}

elseif(sp!

=path1[i])

{

if(sp==path2[i])

{

cout<<"需要换乘,转程方式为:

2路转1路线"<

a.gjhc(i,k1,sp,fp,path1,path2);

}

if(sp==path3[i])

{

cout<<"需要换乘,转程方式:

3路转1路线"<

a.gjhc(i,k1,sp,fp,path1,path3);

}

}

}

elseif(fp==path2[k1])

{

if(sp==path2[i])

{

b.zhida(i,sp,fp,path2,2);

}

elseif(sp!

=path2[i])

{

if(sp==path1[i])

{

cout<<"需要换乘,转程方式:

1路转2路线"<

b.gjhc(i,k1,sp,fp,path2,path1);

}

elseif(sp==path3[i])

{

cout<<"需要换乘,转程方式:

3路转2路线"<

b.gjhc(i,k1,sp,fp,path2,path3);

}

}

}

elseif(fp==path3[k1])

{

if(sp==path3[i])

{

c.zhida(i,sp,fp,path3,3);

}

elseif(sp!

=path3[i])

{

if(sp==path1[i])

{

cout<<"转程方式:

1路转3路线"<

c.gjhc(i,k1,sp,fp,path3,path1);

}

elseif(sp==path2[i])

{

cout<<"转程方式:

2路转3路线"<

c.gjhc(i,k1,sp,fp,path3,path2);

}

}

}

}

cout<<"\n"<<"是否继续?

继续请输入y或者Y!

"<

chart;

cin>>t;

if(t=='y'||t=='Y')

gotobegin;

else

exit

(1);

}

五、课程设计总结

在这次关于公交换乘的课程设计中,我了解到了我的不足,如算法的不完善、不细心和耐心不是很好等等。

不细心的我在调试程序时,老是因为某个书写错误导致很多错误;对这些错误,我不得不花大量的时间去更正,并且还要重复检查是否出现雷同的错误而导致程序不能运行。

但是通过这次课程设计,我的这些缺点有些改善。

我在写新的程序时,首先要考虑的深入一点、仔细一点,这样修改程序的时间就会少很多。

并且也不会因为自己不细心而导致浪费时间的情况出现。

通过这次数据结构的课程设计,加强了我的动手能力,以及提升了局部和统一考虑问题的思维方式。

回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,可以说既辛苦,又受益匪浅,学到很多很多的东西,同时不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到很多问题,可以说是困难重重,毕竟是第一次做,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,等等。

总的来说,这次公交换乘的课程设计虽然困难重重,但是在百度,老师,同学的帮助下让我学会了很多东西,收获很大。

六、参考资料

王红梅,胡明,王涛.《数据结构(C++版)》[M],清华大学出版社,2013.

12

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2