1、 广东海洋大学信息学院 课程设计报告 设计题目 公交换乘 课程名称 数据结构 姓名(学号) 联系电话 专业名称 所在班级 指导教师 教师职称 起止时间 评定成绩 一、 课程设计的主要内容 公交换乘在一个城市的公共交通系统设计中占据着极其重要的地位,公交换乘的过程将直接影响居民出行时间的长短,公交换乘的过程如下:指定一起始公交站点与目的公交站点,依据参考因素,例如:换乘路线的路径最短、耗费时间最短、所
2、需车资最少等,经过分析处理得到可达目的站点换乘次数最少的乘车方案,具体可分为: (1)零次换乘 起始站点和目的站点之间存在可直达的公交线路,即出行居民无需转乘就可以直接到达目的站点,这也是较为理想的方案。 (2)一次换乘 起始站点和目的站点之间没有公交车直接往返,即两站点之间不存在可直达的公交线路,则出行居民需要在途经的某个站点下车,然后转乘另一线路公交车才能达到目的站点。 (3)多次换乘 在起始站点和目的站点之间没有可直达的公交线路,出行居民需要经过一次以上的转乘才能达到目的站点,则得到多次换乘方案。多次换乘方案可通过一次换乘的递归计算得到,一般情况下,超过两次转乘的方案对于出行
3、居民来说是难以接受的,本课程设计只要求计算零次和一次换乘方案,对于一次以上的公交换乘不作要求。 二、 功能和结构设计 1、功能设计 在这里通过主函数显示程序的主页版,上面是湛江的公交线路图 在这里输入出发站点的名字,回车确定! 在这里输入最终站点的名字! 输入错误会提醒重新输入! 输入要查询的起点和终点 0次换乘,输出查询结果: 按y或Y,可以继续查询! 输入出发点和终点,一次换乘的结果如下: 2、结构设计 设计一个实现公交换乘的算法:指定任一起始站点和目的站点,依据算法得到所有可达目的站点的的公交线路,包括中间站点的换乘方法以及该公交线
4、路所经过的公交站点。 1. 分析公交站点和公交线路的数据属性,并依据公交换乘的功能要求,确定算法设计方案; 2. 设计公交站点信息以及公交线路信息的存储结构; 3. 设计公交换乘算法,并画出程序流程图; 4. 使用C++程序设计语言编写实现公交换乘的程序; 三、 流程图和算法设计 开始 搜索经过起始站点的所有公交线路和经过目的站点的所有公交线路 判断是否存在同时经过其始站点和目的站点的公交线路 对于经过起始站点的公交线路和经过目的站点的公交线路的每对数据结构中,是否经过相同的公交站点 当前无法找到可行的换乘方案,打印相关信息 结束 找到一次换乘的乘车方案,打
5、印换乘方案以及换乘路线所覆盖的站点信息
否
否
是
是
找到零次换乘(直达)的乘车方案,打印直达路线所覆盖的站点信息
四、 源程序代码
#include
6、a(int i,string sp,string fp,string p[],int l);
void gjhc(int i,int j,string sp,string fp,string p1[],string p2[]);
void tu();
private:
string bus[pathlen];
};
Busline::Busline(string p[],int n)
{
if(n>pathlen) throw"上溢";
for(int i=0;i 7、usline::zhida(int i,string sp,string fp,string p[],int l)
{
qd=i;
for(int j=0;j 8、"< 9、)
for(int l=0;l 10、 for(int z=l1;z>=j;z--)
{
cout<<"经"< 11、 }
}
else if(i>l)
{
cout<<"在"<l;y--)
{
cout<<"经"<






