当前位置:文档之家› 数据结构公交线路换乘

数据结构公交线路换乘

数据结构公交线路换乘
数据结构公交线路换乘

数据结构公交线路换乘

#include<fstream.h>//文件库

#include<stdlib.h>

#include<string.h>//字符串函数库

const int Maxbus=100;//最大公交车数

const int Maxstate=200;//最大站点数

const int MaxValue=999;//最大值

struct Bus //公交车类

{

int number; //公交车号

int length; //总站数

char bus_state[Maxstate][20]; //站点

};

class Graph //建立无向图

{

friend class Distance; //声明友元类

private:

char statename[Maxstate][20]; //站点

int busnumber[Maxstate][Maxstate]; //邻接矩阵,权值为这两个站点的公

交车号

int currentstate; //当前站点数

int currentbus; //当前公交车数

Bus buses[Maxbus]; //公交车信息

public:

Graph() //无参构造函数,对成员变量初始化{

for(int i=0;i<Maxstate;i++)

for(int j=0;j<Maxstate;j++)

{

if(i==j)

busnumber[i][j]=-1; //自己到自己没有车else

busnumber[i][j]=MaxValue;

}

currentstate=0;//站点数初始化为0 currentbus=0;//公交车数初始化为0

for(i=0;i<Maxbus;i++)

{

buses[i].number=-1;

buses[i].length=0;

}

void Insertstate(char state[]) //插入一个站点

{

if(!IsGraphFull()) //如果图没满

{

for(int i=0;i<currentstate;i++) //查看该站是否已经存在

if(strcmp(state,statename[i])==0)

break;

if(i==currentstate) //如果不存在,在站点数组后加入

{

strcpy(statename[currentstate],state);

for(i=0;i<currentstate;i++)

{

busnumber[currentstate][i]=MaxValue;

busnumber[i][currentstate]=MaxValue;

}

busnumber[currentstate][currentstate]=-1;

currentstate++; //当前数组加一

}

}

}

void Insertbusnumber(char V1[],char V2[],int busnum) //插入权值

for(int i=0;i<currentstate;i++) //查找站点

if(strcmp(V1,statename[i])==0)

break;

for(int j=0;j<currentstate;j++)

if(strcmp(V2,statename[j])==0)

break;

if((i!=currentstate)&&(j!=currentstate)) //站点存在插入权值{

busnumber[i][j]=busnum;

busnumber[j][i]=busnum;

}

}

void Set_graph() //图的建立

{

char ch[700],a[20]={'\0'};//

int j=0,k=0,i;

ifstream infile("公交查询.txt"); //以读的方式打开文件

if(!infile) //文件打开失败,则结束程序

{

cout<<"Cant't open '公交查询.txt'"<<endl;

exit(0);

}

while(!infile.eof()&&currentbus<Maxbus) //文件没有读完{

infile>>buses[currentbus].number; //接收车号码

infile.getline(ch,700); // 在文件中读取一行

for(int i=0;ch[i]!=';';i++)

{

if(ch[i]!='-') //把站点暂存在a中

a[j++]=ch[i];

else

{

strcpy(buses[currentbus].bus_state[k++],a); //对公交车站点赋值Insertstate(a); //插入站点

for(j=0;j<20;j++)

a[j]='\0'; //对a数组初始化

j=0;

}

}

strcpy(buses[currentbus].

bus_state[k++],a);

Insertstate(a);

buses[currentbus].length=k; //当前公交车长度赋值

currentbus++; //当前公交车数加一

k=0;

j=0;

}

for(i=0;i<currentbus;i++)

for(k=0;k<buses[i].length-1;k++) //插入权值

Insertbusnumber(buses[i].bus_state[k],buses[i].bus_state[k+1],buses[i].numb er);

}

bool IsGraphFull() //判断图是否已满

{

return currentstate==Maxstate;

}

void show_busmessage(int number) //输出公交信息

{

for(int i=0;i<currentbus;i++) //查找权值

if(buses[i].number==number)

break;

if(i==currentbus)

cout<<"查无此车!"<<endl;

else

{ //找到,输出该公交车信息

cout<<" "<<number<<"路("<<buses[i].bus_state[0]<<"<->"<<bu ses[i].bus_state[buses[i].length-1]<<")"<<endl;

for(int j=0;j<buses[i].length-1;j++)

cout<<buses[i].bus_state[j]<<"<->";

cout<<buses[i].bus_state[j]<<endl;

}

}

int searchbusnumber(char v0[],char v1[]) //查找指定站点的公交车号码{

int i,j,numb;

for(int k=0;k<currentstate;k++) //查找站点

{

if(strcmp(v0,statename[k])==0)

i=k;

if(strcmp(v1,statename[k])==0)

j=k;

}

numb=busnumber[i][j]; //在邻接矩阵中查找权值

return numb;

}

void direction(char v0[],char v1[]) //输出指定站点的公交车方向{

int i,j,numb,l;

for(int k=0;k<currentstate;k++) //查找指定站点

{

if(strcmp(v0,statename[k])==0)

i=k;

if(strcmp(v1,statename[k])==0)

j=k;

}

numb=busnumber[i][j];

for(l=0;l<currentbus;l++) //查找该公交车位置

if(numb==buses[l].number)

break;

for(k=0;k<buses[l].length;k++)

{

if(strcmp(buses[l].bus_state[k],v0)==0)

i=k;

if(strcmp(buses[l].bus_state[k],v1)==0)

j=k;

}

if(i<j) //输出公交车方向

cout<<"

("<<buses[l].bus_state[0]<<"->"<<buses[ l].bus_state[buses[l].length-1]<<")"<<endl;

else

cout<<"

("<<buses[l].bus_state[0]<<"<-"<<buses[l ].bus_state[buses[l].length-1]<<")"<<endl;

}

friend void busline(); //把外部函数定义为图的友元函数,以便使用图的私有成员变量

friend void searchstate();

friend void bestproject();

friend void mainsurface();

};

class StackNode //栈结点

{

friend class Stack; //友元类

private:

char date[20]; //结点数据

StackNode *link; //结点链指针

public:

//构造函数:结点赋值

StackNode (char d[] =0,StackNode *l =NULL):link(l) {

strcpy(date,d);

}

};

class Stack //定义栈

{

private:

StackNode *top; //栈顶指针

public:

Stack():top(NULL){ } //构造函数

~Stack(); //析构

void Push(char item[]); //进栈

int Pop(char x[]); //退栈

int GetTop(char x[]); //读取栈顶元素

void MakeEmpty (); //把栈置空

int IsEmpty()

{

return top == NULL;

}

};

Stack ::~Stack()

{

StackNode *p;

while(top != NULL)

{

//逐结点回收p=top;

top=top->link;

delete p; //释放栈顶结点

}

}

void Stack ::MakeEmpty ()//把栈置空{

StackNode *p;

while (top != NULL)

{ //逐结点回收

p=top;

top=top->link;

delete p; //释放栈顶结点

}

}

void Stack::Push(char item[] )//进栈

{

StackNode *p =new StackNode ( item, top );//新结点p->link=top; //链入*top之前

top = p; //成为新栈顶

}

int Stack ::Pop (char x[] ) //退栈

{

if ( IsEmpty ( ) ) return 0;

StackNode *p = top;

top = top->link; //修改栈顶指针

strcpy(x,p->date); //送回退栈元素

delete p;

return 1; //释放

}

int Stack::GetTop (char x[] )//读取栈顶元素

{

if (IsEmpty()) return 0;

strcpy(x,top->date); //送回栈顶元素

return 1; //释放

}

class Distance:public Graph //定义最短距离类

{

private:

char path[20]; //最短距离的前一站

int distance[Maxstate]; //最短距离

public:

void bestchooce(char v0[],char v1[]) //最优方案{

int s[Maxstate],v,i,j,w,start=-1,end=-1,number1,number2; char a[20],b[20];

Stack stack1; //定义栈

Set_graph(); //建立图

for(i=0;i<currentstate;i++) // 查找起始站、终点站{

if(strcmp(statename[i],v0)==0)

start=i;

if(strcmp(statename[i],v1)==0)

end=i;

}

if(start==-1||end==-1)

{

cout<<"站点不存在!"<<endl; return ;

}

for( i=0;i<currentstate;i++) //初始化距离、前一站{

s[i]=0; //s集合赋空

if(busnumber[start][i]<MaxValue)

{

distance[i]=1;

path[i]=start;

}

else

{

distance[i]=busnumber[start][i]; //权值赋给最短距离path[i]=-1;

}

}

s[start]=1; //起始站放入s集合

distance[start]=0;

int min;

for(i=0;i<currentstate;i++)

{

min=MaxValue;

for(w=0;w<currentstate;w++) //在邻近的顶点中查找最短距离

if(!s[w]&&distance[w]<min)

{

v=w;

min=distance[w];

}

s[v]=1;

for(j=0;j<currentstate;j++)

if(!s[j]&&(min+1)<distance[j]&&busnumber[v][j]<Ma xValue) //计算起点到每个站点的距离

{

distance[j]=min+1;

path[j]=v;

}

}

i=1;

j=0;

if(distance[end]<MaxValue&&distance[end]>0) //两个站

点有公交车

{

cout<<" 到达"<<v1<<"共有"<<distance[end]<<"站,最优方案为:"<<endl;

do //对路径上的站点入栈

{

stack1.Push(statename[end]);

end=path[end];

}while(end!=start);

stack1.Pop(a); //出栈

number1=searchbusnumber(v0,a); //查找两个站点的公交车号码

cout<<" 乘坐"<<number1;

direction(v0,a); //查找两站的公交方向

cout<<v0<<"->"<<a;

while(!stack1.IsEmpty()) //判断栈是否为空

{

stack1.Pop(b);

number2=searchbusnumber(a,b); //查找下两个站间的公交车号码

if(

number1==number2) //判断两个车是否是同一辆

{

cout<<"->"<<b;

i++;

}

else

{ //不是同一辆,则换车

if(i==1)

cout<<" 仅有一站,建议步行"<<b<<endl;

else

cout<<" 共"<<i<<"站"<<endl; cout<<" 换乘" <<number2; //输出换车信息direction(a,b);

number1=number2;

cout<<a<<"->"<<b;

i=1;

j++;

}

strcpy(a,b); //保留前一站

}

if(i==1)

cout<<" 仅有一站,建议步行至"<<b<<endl; else

cout<<" 共"<<i<<"站"<<endl;

if(j>0)

cout<<" 共换车"<<j<<"次,"<<"请注意换车的站点!!!!!"<<endl;

}

else

if(distance[end]==0)

cout<<"您所在站点即为"<<v0<<endl;

else

cout<<"从"<<v0<<"至"<<v1<<"无公交可到!"<<endl;

}

};

void bestproject() //最优方案

{

Distance bestway;

char start[20],end[20];

cout<<"请输入起点站:"; //接收起点站和终点站

cin>>start;

cout<<"请输入终点站:";

cin>>end;

cout<<endl;

bestway.bestchooce(start,end);

}

void mainsurface() //主界面

{

int flag;

cout<<" 欢迎使用公交咨询系统"<<endl; //用户会话界面

cout<<" 1.公交线路查询"<<endl;

cout<<" 2.站点查询"<<endl; cout<<" 3.最优乘车方案查询"<<endl;

cout<<" 4.退出系统"<<endl; cout<<"请输入您要选择的服务:";

cin>>flag;

cout<<endl;

{

case 1:busline();mainsurface();break; //公交线路

case 2:searchstate();mainsurface();break; //站点查询

case 3:bestproject();mainsurface();break; //最优方案

case 4:

default:

cout<<"谢谢使用!!"<<endl;

}

}

void busline() //公交线路

{

int flag, a=0,i;

Graph map; //建立图

map.Set_graph();

cout<<" 公交线路查询"<<endl; cout<<" 1.确定车号的公交查询"<<endl;

cout<<" 2.已有所有公交线路浏览"<<endl; cout<<" 3.返回首页"<<endl;

cout<<"请输入您要选择的服务:";

cin>>flag;

cout<<endl;

上海公交线网优化导则

上海市公共汽(电)车客运线路优化导则 上海市交通委员会 2016年2月

目录 1 总则 (1) 2 术语与定义 (2) 3 基本规定 (4) 4 公交线路新辟 (7) 5 公交线路调整 (9) 6 公交线路终止 (12) 7 公交线网评价 (13) 8 线网优化调整管理机制 (15) 9 编制依据 (17) 10 本导则用词说明 (18)

1 总则 1.0.1 为服务上海“十三五”末基本建成“四个中心”、全球城市和世界级城市群核心城市的发展定位,为上海市创建国家公交都市和打造世界先进水平的现代化国际大都市一体化交通体系提供有力支撑和保障,需要进一步落实公共交通优先发展战略,统筹平衡公共交通资源配臵、提高公共交通系统运行效率、提升公共交通整体服务水平和服务品质。 1.0.2 随着本市轨道交通大力发展、城市空间布局不断调整,居民出行结构发生明显变化,轨道交通占公共交通客运量的比例已经超过地面公交。由于地面公交线路优化尤其是调整与终止的难度较大,公交线网与其功能定位仍存在不适应之处,线网功能层次不清晰,市中心部分路段重复严重,市区边缘线网稀疏,换乘衔接不便等。 1.0.3 结合本市城市空间结构布局与交通出行特征,公交线路应构建骨干线、区域线、驳运线三级线网结构,形成功能明确、层次清晰、相互协调、分担均衡的公交线网体系,实现便捷、可靠的公交服务。 1.0.4 为落实公交优先发展战略,优化本市公共汽(电)车(以下简称“公交”)线网,提高公交服务水平和运营效率,建设世界一流的公共交通服务体系,特制订《上海市公共汽(电)车客运线路优化导则》(以下简称《导则》)。 1.0.5 本《导则》适用于本市公共汽(电)车客运线路(以下简称“公交线路”)的新辟、调整和终止。

数据结构课程设计交通咨询系统

课程设计报告 课程名称数据结构课程设计 课题名称交通咨询系统 专业通信工程 班级通信1001班 学号 姓名 指导教师田娟秀胡瑛曹燚 2012年7 月 6 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题交通咨询系统 专业班级通信1001班 学生姓名 学号 指导老师田娟秀胡瑛曹燚 审批田娟秀 任务书下达日期2012 年7 月 1 日任务完成日期2012 年7 月 6 日

1.1任务书 课题六:交通咨询系统: 在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。图中顶点表示城市,边表示城市之间的交通关系。设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。 要求完成以下功能: (a) 以图中顶点表示湖南省各市(至少包括8个以上的城市),存放城市名称、代号、简介等信息,以边表示路径,存放路径长度等有关信息,先建立交通网络图的存储结构; (b) 为用户提供图中任何城市有关信息的查询; (c) 为用户提供任意城市的交通查询,即查询任意两个城市之间的一条最短路径。 (d) 为用户提供指定城市的交通查询,即查询指定城市到其他城市之间的最短路径。 选做内容: (1)提供图的编辑功能:增、删城市;增删路径;修改已有信息等; (2)交通图的仿真界面。 1.2 选题方案: 所选题目根据学号确定,学号模6加1,即(学号%6+1)。如你的学号为9,则 所选题目号为:9%6+1=(题目4)。注意,所有的课题都要求用图形方式演示步骤 和结果。同学们可以自己针对数据结构课程中所讲算法来设计一个演示过程的算法。 1.3设计要求: 1.3.1 课程设计报告规范 (1)需求分析 a.程序的功能。 b.输入输出的要求。 (2)概要设计 a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模 块的功能。

数据结构课程设计交通咨询系统设计(DOC36页)

设计题目<二>:7.3.4交通咨询系统设计P160 一、设计要求 1.问题描述 根据不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅行的旅客希望旅费尽可能的少,而老年人则要求中转次数少。模拟一个全国城市之间的咨询交通程序,为旅客提供两种或三种最优的交通路线。 2.需求分析 二、概要设计 1.主界面设计 (图2.1“交通咨询系统”主菜单) 2.存储结构设计 本系统采用图结构类型存储抽象交通咨询系统的信息。 typedef struct TrafficNode { char name[MAX_STRING_NUM]; //班次//MAX_STRING_NUM最为10 int StartTime, StopTime; //起止时间 int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号 int Cost; //票价

} TrafficNodeDat; typedef struct VNode { CityType city; int TrainNum, FlightNum; //标记下面Train数组和Flight数组里元素个数 TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、起止时间、票价和班次 TrafficNodeDat Flight[MAX_TRAFFIC_NUM]; // int Cost; //遍历时到达该城市的耗费(时间或者费用) } VNodeDat; typedef struct PNode { int City; int TraNo; } PNodeDat; 3.系统功能设计 (1)添加城市。添加一个城市的名称 (2)删除城市。输入一个城市名称,删除该城市。 (3)添加交通路线。输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间和票价 (4)删除交通路线。输入火车或飞机的班次删除该交通路线。 (5)查询最小费用路线。输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间查询最小费用路线。 三、模块设计 1.模块设计 (图2.2 模块调用示意图)

1、公交线网优化

1、公交线网优化 公交优先项目提出了成都市中心城区公交线网优化方案、骨干线网优化方案,同时对天府新区公交线网进行优化和规划。 成都市常规公交目前已初步形成“环形+放射状”的“快、干、支、微”四级线网体系。 城市公交骨架线路是在公交网络体系中起支架作用的线路,它衔接区域内公交客流需求较大的枢纽点,主要满足直达客流的需要,以实现乘客快速、便捷的转移。公交骨架线路效率的高低直接影响整个网络运行效率。 成都市公交线网概念骨架图 按照城市任何两个公交服务区之间均应提供快速公交服务的理念,构筑抽象的理想快线网络。通过网络拟合,筛选可行网络,考虑对策略发展区快线支持,补充得到近期快线实施网络。以实施网络为基础,对现有线网进行改造,得到近期快线方案,如下图。

成都市近期公交快线网络规划图 线网优化实例图 随着2014年四川天府新区正式成立,天府新区成都直管区与中心城区形成双核发展;成都市第十三次党代会报告提出:“推动天府新区产城融合,突出国际化服务和创新型引领,突出天府国际空港新城的国际门户功能和龙泉山现代化

产业基地的集聚优势,把天府新区打造成为新兴增长极核。”因此,将天府新区成都直管区与中心城区的快捷连通作为公交快线布设的重要因素,同时兼顾天府新区内部各核心组团(天府新城、成都科学城、南部特色优势产业功能区)的连通性,规划布局多条公交干线。 天府新区新增/调整快线布局

天府新区公交干线布局 2、交通集成模型数据库 交通模型数据库项目的开展形成了多个预测模型和各项交通指标数据库,使得成都在机动化快速发展中的交通模式向智慧出行、绿色出行和可持续发展方向转变。 数据库建设一览表

杭州公交线路大全

杭州公交线路大全/线路一览表/价格表: 1/K1凤起路-小河路登云路口 上行站点:凤起路、十四中、省府大楼东、武林门南、密渡桥路口、沈塘桥、石灰桥、打索桥、余杭塘上、董家新村、大关桥西、湖墅北路口、长征桥、小河路、小河路登云路口 下行站点:小河路登云路口、和睦小区、登云路口、小河路北口、长征桥、湖墅北路口、大关桥西、董家新村、余杭塘上、打索桥、石灰桥、沈塘桥、密渡桥路口、凤起路 首末班时间:凤起路:5:00-22:30 小河路登云路口:5:50-22:30 K1:2.00元 1:1.00元可用IC卡:A/B/C/D/T 3/K3城站火车站-大关小区 上行站点:城站火车站、香榭商务大厦、市三医院北、水漾桥、丰乐桥南、联桥、梅登高桥、朝晖二区、省人民医院、朝晖六区、石灰坝、德胜新村、香积寺路口、大关小区 下行站点:大关小区、香积寺路口、德胜新村、石灰坝、朝晖六区、省人民医院、朝晖二区、梅登高桥、联桥、丰乐桥南、水漾桥、市三医院北、香榭商务大厦、城站火车站 首末班时间:城站火车站:5:30-23:50 大关小区:5:00-23:20 K3:2.00元 3:1.00元可用IC卡:A/B/C/D/T 5/K5六公园-三里亭小区 上行站点:六公园、延安路口、环北市场、新华路口、建国路口、市红会医院、市红会医院北、公交总公司南、机神村、耀江大酒店、三里亭小区 下行站点:三里亭小区、池塘庙路西口、顾家畈路西口、三里兰苑南门、三里兰苑东门、顾家畈路口、耀江大酒店、机神村、公交总公司南、市红会医院北、市红会医院、建国路口、新华路口、中大广场、六公园 首末班时间:六公园:6:00-21:30 三里亭小区:5:30-21:00 K5:2.00元 5:1.00元可用IC卡:A/B/C/D/T 6/K6少年宫-长城机电 上行站点:少年宫、省府大楼西、保俶路、八字桥、武林门马塍路口、半道红、大塘新村、市交警支队、朝晖一区、朝晖二区、省人民医院、朝晖六区、石灰坝、德胜新村南、绍兴路口、德胜东村、长城机电 下行站点:长城机电、德胜东村、绍兴路口、德胜新村南、石灰坝、朝晖六区、省人民医院、朝晖一区、市交警支队、大塘新村、半道红、市府大楼、武林门马塍路口、八字桥、保俶路、省府大楼西、省府路、少年宫 首末班时间:少年宫:6:00-21:40 长城机电:5:20-21:00 K6:2.00元 6:1.00元可用IC卡:A/B/C/D/T 7/K7城站火车站-灵隐 上行站点:城站火车站、市第三医院、中河路口、解百商店、湖滨、东坡路平海路口、少年宫、断桥、葛岭、新新饭店、岳庙、玉泉、洪春桥、九里松、石莲亭、灵隐 下行站点:灵隐、石莲亭、九里松、洪春桥、玉泉、岳庙、新新饭店、葛岭、断桥、六公园、三公园、解放路吴山路口、耀江广厦、中河路口、市第三医院、城站火车站 首末班时间:城站火车站:5:00-21:30 灵隐:5:30-22:00 K7:2.00元 7:1.00元可用IC卡:A/B/C/D/T 8/K8鼓楼-德胜东村 上行站点:鼓楼、惠民路、吴山广场、开元路、井亭桥、市一医院、联桥、杭州高级中学、梅登高桥、市体育馆、 宝善桥、莫衙营、公交总公司东、艮山流水苑、焦家村、和平广场、德胜路口、德胜东村

数据结构—交通系统

课程设计报告 课程名称数据结构 课题名称交通咨询系统 专业通信工程 班级通信0902班 学号 姓名 指导教师田娟秀、李杰君、张鏖烽 2011 年07月01 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题交通咨询系统 专业班级通信工程0902 学生姓名肖彬 学号200903020205 指导老师田娟秀、李杰君、张鏖烽 审批 任务书下达日期2011 年06月27 日任务完成日期2011 年07月01 日

1设计内容与设计要求 1.1设计内容 课题六:交通咨询系统 在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。图中顶点表示城市,边表示城市之间的交通关系。设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。 要求完成以下功能: (a).根据实际情况,先建立交通网络图的存储结构。 (b).求某个城市到达其余各城市的最短路径。 (c).任一输入两个城市,要求求出他们之间的最短路径。 1.2设计要求: 1.2.1 课程设计报告规范 (1)需求分析 a.程序的功能。 b.输入输出的要求。 (2)概要设计 a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模 块的功能。 b.课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样 的结构,它们之间有什么关系等。 (3)详细设计 a.采用C语言定义相关的数据类型。 b.写出各模块的类C码算法。 c.画出各函数的调用关系图、主要函数的流程图。 (4)调试分析以及设计体会 a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和 含有错误的输入及输出结果。 b.程序调试中遇到的问题以及解决问题的方法。

海口55条公交线路与站点明细表

海口55条公交线路(站点)明细表 1路秀英-府城(6∶00-22∶30)3-5分钟发一趟车 往:秀华路、秀英大道、海秀路、海府路、琼州大道、文庄路、中山路、高登街 秀英区政府、省医院留医部、市十四中、秀英小街、军供站、燕琼大厦、金鼎大厦、西站、海秀桥、农机公司、滨濂村、凤凰新村、秀英村、金牛岭公园、南庄酒店、海南侨中、海口警备区、国宾大厦、市九中、明珠广场、东湖、南亚广场、省琼剧院、省林业局、省彩票中心、下洋坡、东站、五公祠、琼山自来水公司、琼山中学、琼山文化宫、琼台师院、琼台幼儿园、琼山财政局 2路龙华总站-海职院(6∶00-22∶30)5分钟发一趟车 往:龙华路、解放西路、新华南路、东湖路、博爱南路、海秀东路、大英西路、大同路、海秀路、秀英大道、秀华路、丘海大道、滨涯路、金牛路 友谊商场、市文化宫、新华南、市商务局、博爱南路口、省电台、明珠广场、义龙中学、市九中、国宾大厦、海口警备区、龙华西路口、海南侨中、南庄酒店、金牛岭公园、凤凰新村、滨濂村、农机公司、海秀桥、西站、燕琼大厦、军供站、市十四中、省医院留医部、秀英区政府、海瑞桥、海口供电公司、金山小区南门、农垦中学、关爱医院门诊部、海职院东门 3路秀英-武警医院(6∶00-23∶00)6-7分钟发一趟车 往:秀英大道、滨海大道、长堤路、白龙北路、文明东路 秀英小街、军供站、港口市场、海口港、东方洋、电力村、文华大酒店、财政大厦、人大会堂、万绿园、泰华路口、开总大厦、滨海医院、爱力大厦、钟楼、水巷口、和平桥、新埠桥、旅游学校、南北货运市场、文明东路口、岭下村、武警医院 4路国贸-府城(5∶40-23∶00)3分钟发一趟车 往:文华路、金贸路、金龙路、国贸路、玉沙路、金龙路、龙华路、解放西路、新华南路、东湖路、博爱南路、海府路、琼州大道、建国路、中山路、高登东街 文华路、金贸办税厅、金贸中路、宜欣广场、王府大厦、嘉陵大厦、富豪大厦、金龙市场、椰树集团、省医学院、龙华总站、友谊商场、市文化宫、新华南、市商务局、博爱南路口、东湖、南亚广场、省琼剧院、省林业局、省彩票中心、下洋坡、东站、五公祠、琼山医院、琼山区政府、琼山旅社、琼台师院、琼台幼儿园、琼山财政局 5路万恒路-流水坡(6∶00-22∶00)12分钟发一趟车 往:甸昆路、海甸五西路、人民大道、长堤路、龙华路、解放西路、新华南路、东湖路、博爱南路、文明路、敬贤路 实验中学初中部、甸昆路口、海大北门、怡心路口、白沙园、海南大学、京海花园、人民天桥、钟楼、省医院龙华门诊部、市文化宫、新华南、市商务局、市中医院、文明天桥、华山大厦、市七中、岭下村、武警医院、流水坡 6路新埠岛-荣山(6∶00-21∶00)10分钟发一趟车 往:长堤路、滨海大道、秀英大道、海盛路、长秀路 新世界花园、新埠桥、和平桥、水巷口、钟楼、滨海医院、开总大厦、泰华路口、万绿园、人大会堂、双岛学园、文华大酒店、爱华汽车广场、海事局、港口市场、军供站、秀英小街、军供站、双拥路口、703车队、科园路口、港澳开发区、长怡路口、永桂开发区、长流镇、荣山 7路农垦医院-三西路(6∶00-22∶00)6分钟发一趟车

数据结构公交换乘系统

数据结构程序设计课程设计 题目公交换乘系统 专业 学号 姓名 指导老师 完成日期2010年6月17日

目录 1.公车换乘流程图 (3) 2.数据储存结构 (4) 3. 程序 (4) 4.分析..................................................................................... (16) 5. 总结..................................................................................... . (18)

一、公车换乘流程图

二、数据存储结构 Ⅰ线路信息:定义在结构体中 ①经过站点的所有公交路线,采用整型的1维的数组;数组长度为默认为50。 ②字串符指向下一站和最后一站。 struct str //定义双重链表 { char s[50]; str *next; str *last; }; Ⅱ站点信息:定义在结构体中 ①经过该站点的路线条数。是一个整型变量。 ②把该站作为所要求路线的第一站。 struct location//定义一个结构体来保存车站位置 { int i; str *first; }; 三、程序 location Find(str *pos,char *s)//查找车站位置 { //初始化基本信息 int i=0; location f; f.first=NULL; f.i=0; str *p=pos; //查找车站的位置 while(p) { if(::strcmp (s,p->s)==0) { f.first =p; f.i=i;//车站的位置 return f; } i++; p=p->next;

数据结构--交通咨询系统

目录 1 概述 (2) 1.1 问题描述 (2) 1.2 实现意义 (2) 2 系统分析 (2) 2.1 需求分析 (2) 2.1.1程序的功能 (2) 2.1.2输入输出的要求 (2) 2.2 设计思想 (2) 2.3 设计要求 (3) 3 概要设计 (3) 3.1用邻接矩阵建立交通网络模块 (3) 3.2 查询任意两个顶点之间的最短路径 (4) 3.3 查询一个城市到其他所有城市的最短路径 (5) 4 详细设计 (5) 4.1 用邻接矩阵构造图结构函数CreateMGraph() (5) 4.2 费洛伊德Floyd() (6) 4.3 迪杰斯特拉Dijkstra() (6) 4.4 主要函数流程图及其函数调用 (7) 4.4.1 主要函数流程图 (7) 4.4.2 一个城市到其他城市的路径调用 (8) 4.4.3 任意两个城市之间路径调用 (8) 5 运行与测试 (8) 5.1 有向图存储结构的建立模块的输出 (9) 5.2 单源路径迪杰斯特拉算法模块的输出 (10) 5.3 费洛伊德算法模块的输出 (10) 6 总结与心得 (10) 参考文献 (11) 附录 (11)

1 概述 1.1 问题描述 在交通网络非常发达,交通工具和交通方式不断更新的今天,人们在出差、旅游或做其它出行时,不仅关心节省费用,而且对里程和所需时间等问题也感兴趣。对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。图中顶点表示城市之间的交通关系。这个交通系统可以回答旅客提出的各种问题。比如任意一个城市到其他城市的最短路径,任意两个城市之间的最短路径问题。 1.2 实现意义 便于人们的日常出行,且更好地满足了用户的出行需求。这种最短路径问题的计算方法既简单又便于实现,同时大大提高了计算机的运行速率。 2 系统分析 2.1 需求分析 2.1.1程序的功能 (1)用户自己可以建立不同的路径之间的关系网(2)可以查询某个城市到达其余各城市的最短路径。(3)可以任一查询两个城市之间的最短路径。 2.1.2输入输出的要求 在刚进入主界面后系统提示输入建立交通网络储存结构,输入顶点个数和和边数为整数不能输入其他字符,随后系统提示输入边与边之间的关系分别为i,j,w表示边之间的距离。然后进入查询页面,输入整数1,2,0分别表示你所要查询的功能:一个城市至其他所有城市的最短路径查询、任意两个城市之间的最短路径查询、退出程序。不能输入其他字符否则不能执行操作。在整个操作都是用整数表示城市。 2.2 设计思想 用邻接矩阵来存储交通网络图的信息,运用迪杰斯特拉算法实现图上单源最短路径问题,然后运用费洛伊德算法实现图中任意一对顶点间最短路径问题,这样就会实现交通咨询系统设计的问题。

数据结构课程设计全国交通咨询系统方案

工业应用技术学院 课程设计任务书 题目全国交通资询系统 主要容: 设计了一个方便用户查询交通咨询系统。该系统所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。 基本要求: 1、掌握C语言的变量及函数的灵活使用; 2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现; 3、掌握C语言中文件的基本操作; 4、掌握VC++6.0软件的熟练使用。 主要参考资料: [1] 春葆.数据结构程序设计[M].:清华大学,2002,03 [2] 王黎,袁永康https://www.doczj.com/doc/b93954640.html,战略[M].:清华大学,2002,01 [3] 谭浩强.C程序设计第二版[M].:清华大学,2003,03 [4] 任哲.MFC Windows程序设计[M].:清华大学,2004,06 完成期限:2016.12.05—2017.01.05 指导教师签名: 课程负责人签名:

随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。为此开发一个交通择优系统是十分必要的。采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规化和自动化。同时使乘客能通过网络进行称心的交通工具的选择,这也是交通网络优选智能决策的体现。交通信息的咨询和管理是交通部门管理工作中异常重要的一个环节,因此,运用交通资询管理系统对春运时减轻乘客购票压力、舒缓紧的城际拥堵有重要意义。 关键字:错综复杂;智能化;最优方式;择优系统

浅谈多层次公交网规划

浅谈多层次公交网规划 为了在满足居民出行需求的基础上保护生态环境,我国政府确定了一系列公共交通发展方针,确保多层次公交网络的建立。文章针对多层次公交网的划分,对多层次公交网的规划进行简要设计分析,希望对提高我国公交系统的服务水平提供些许帮助。 标签:公共交通;线网规划;多层次公交网 近些年来城市交通拥堵愈发严重,在针对我国公交线网结构不合理、密度低、重复率高、功能少、服务水平低、候车时间长等一系列问题,提出了“分区服务、逐层展开、整体优化”的规划思想,建立了多层次的公交线网,极大地方便了居民的出行。 1 多层次公交网的划分 公交线网的层次主要可分为以下四级:(1)轨道交通。轨道交通一般布设在客流密集的重要位置,在城市、区域与主要功能区之间起到快速联系的作用,满足居民中长距的出行需求,并以快速、准点、舒适、载客量大等特点,成为城市公交系统的骨干力量。(2)公交快线。公交快线主要采用直达线或大站快车的重要形式,为各大交通枢纽提供快速的服务。(3)公交普线。公交普线一般深入居住区与功能区,在中等站距间为乘客提供方便的服务,对公交快线起到补充与换乘的作用,在接驳快线客流方面起到了良好的作用。(4)公交支线。公交支线主要服务于小区域内的交通出行者,为其减少步行距离,填补中小街道的交通空白,实现真正意义上的“零距离换乘”。 其中,轨道交通与常规公交有所不同,在此不做具体分析;而常规公交中三种不同等级的线路特征对比详情请参见表1。 从表1可以看出,公交线网的三个等级之间相互补充,又相互竞争。欲使交通线网发挥出最大的功效,也绝非简单的结合就能做到。这需要多方考量,制定出一个完整的多层次公交网体系。 2 多层次公交网的规划 2.1 多层次公交网的规划原则 为了对公交线网进行优化,使居民的出行更加方便,规划人员在多层次公交网的规划中,需要秉持以下原则: 2.1.1 重视轨道交通。对于每天人员流动较多的大城市来说,建设载客量大的轨道交通为一种分担客流量的绝佳方法。因此,在城市规划条件允许之下,充分利用轨道交通,并辅以常规交通,完善城市公共客运的网络体系。

数据结构 公交路线管理模拟系统

《数据结构》课程设计报告 一、课程设计名称 公交线路管理模拟系统 二、实用工具软件 Microsoft visual C++ 6.0 三、课程设计内容简介 1、实践目的 1)、掌握图的概念、图的两种存储结构(邻接矩阵和邻接表)的存储思想及其存储实现; 2)、掌握上机实现图的基本方法; 3)、掌握有关图的操作并用高级语言编程实现; 4)、熟练掌握图的深度、广度优先遍历算法思想及其程序实现; 5)、掌握图的常见应用算法的思想及其程序实现。 2、实践要求 1)、掌握本章实践的算法; 2)、上机运行本章的程序,保存和打印出程序的运行结果,并结合程序进行分析; 3)、按照你对图的操作需要,重新改写程序并运行,打印出文件清单和运行结果; 4)、注意理解各算法实现时所采用的存储结构; 5)、注意正、逆邻接表。 3、系统简介及设计思路 本项目是对公交车路线信息的简单模拟,以完成建立公交路线信息、修改公交路

线信息和删除公交路线信息等功能。 本项目的实质是完成对公交路线信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。 公交站点之间的关系可以是任意的,任意两个站点之间都可能相关。而在图形结构中,结点之间的关系可以是任意的,图中任意两个数据之间都可能相关。所以可以用图形结构来表示n个公交站点之间及站点之间可能设置的公交路线,其中网的顶点表示公交站点,边表示两个站点之间的路线,赋予边的权值表示相应的距离。因为公交路线是有一定的连续关系的,如果想输出从某一个起始点开始到某一终点结束的公交路线,就需要找到从某一点开始的第一个邻接点和下一个邻接点。因为在邻接表中容易找到任一顶点的第一个邻接点和下一个邻接点,所以本项目使用了图的邻接表存储结构。 4、程序设计流程 为了创建公交路线,首先建立结构体载入公交车的相关信息:名称、司机、起始站、终点站、站数以及距离。利用邻接表把站点与站点之间的信息储存起来。用文件详细记载了路线信息,便于管理者初始化公交路线信息。再构造子函数来创建、及时修改、插入、删除公交信息、以及查询公交路线是否出错,各站点之间的距离。用主函数来调用子函数,进入导航系统而进行操作。

中心城区公交骨干线网首期建设方案

中心城区公交骨干线网首期建设实施方案 一、中心城区公交骨干网络总体介绍 当前我市轨道交通建设还处于初期阶段,短期内难以形成网络规模及发挥其在公共交通体系中的主体作用,地面公共交通将在一段时间内继续承担城市客运主体功能。针对我市部分公交线路非直线系数偏大、乘客候车时间长等现状问题,现通过新增及调整现有公交线路以构建佛山市公交骨干网络,建立服务品质高、辨向性强、覆盖面广的公交体系,进而提升公交出行比例及整个公交系统运营效率。经研究国内城市构建公交骨干网络的成功经验,结合我市的实际情况,决定构建层次分明和功能互补的多元化公交线网,最终形成公交骨干线路、支撑线路及接驳线路构成的三层线网体系。 公交骨干线路,其主要功能是结合城市规划的空间布局及现有道路网络,覆盖中心城区内市区级各类行政中心、主要商业区、医院、对外交通枢纽、主要居住区和就业中心等主要客流点,满足居民公交出行的基本需求,构建公交网络基础骨架。 公交支撑线路,功能是满足乘客直达需求,提高线网的直达率,完善网络层次和结构,全面支撑骨干层线路的运营和组织。 公交接驳线路,功能是覆盖公交骨干层及支撑层线路无法覆盖的区域,将乘客输送到骨干线网及支撑网络的公交线路。 多层次公交线网能有效解决现状公交线路不成体系、辨向性差、服务水平参差不齐的弊端。通过构建多层次的公交线网能够有效提升公交运营效率。

骨干线网层是佛山市公交线网三层网络体系的核心层次,支撑层和接驳层与骨干层紧密相关。结合佛山市的实际情况,提出“十横十纵”的骨干线网层规划,具体见图2。这20条公交骨干线路覆盖佛山市中心城区的东西向与南北向的主要干道,连接佛山禅桂新区域,覆盖主要的客流需求点,是佛山公交线网体系的基本骨架。 图1:骨干层“十横十纵”走廊示意图(2016-2017年)

数据结构与算法课程设计 城市公共交通最短线路

数据结构与算法 课程设计 一、问题描述及设计目的 城市公共交通最短线路,利用邻接矩阵来构建交通节点,邻接矩阵的行列编号即为交通中的节点,有行列决定的数据即为权值 基本的输入信息和条件: 1. 输入总的节点个数,即为交通中的站点数目 本程序中,站点的数目最大值为100。 2. 输入存在的通路,即为弧两个站点之间是联通的 弧的数目是有限制的,数目小于站点数目[n*(n-1)]/2 3. 输入存在通路的两点,即为两站点 站点编号要小于站点总数目

二、应具备的功能 1. 确定起点的最短路径问题,即已知起始结点,求最短路径的问题。 2. 确定终点的最短路径问题,与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。 3. 确定起点终点的最短路径问题,即已知起点和终点,求两结点之间的最短路径。 三、设计思想、主要算法的实现、基本操作、子程序调用关系 1.Dijkstra算法的基本思想 按路径长度递增顺序求最短路径算法。 2.Dijkstra 算法的基本步骤 设V0是起始源点,S是已求得最短路径的终点集合。 V-S = 未确定最短路径的顶点的集合,初始时S={V0},长度最短的路径是边数为1且权值最小的路径。 下一条长度最短的路径: ①V i V - S ,先求出V0到V i中间只经S 中顶点的最短路径;

②上述路径中长度最小者即为下一条长度最短的路径; ②将所求最短路径的终点加入S 中; 重复直到求出所有终点的最短路径。 3.存储结构设计 本系统采用图结构类型(mgraph)存储抽象交通图的信息。其中:各站点间的邻接关系用图的邻接矩阵类型存储;图的顶点个数及边的个数由分量n、e表示,它们是整型数据。 数据结构如下: typedef struct { int no; //顶点编号 InfoType info; //顶点其他信息,这里用于存放边的权值 } VertexType; //顶点类型 typedef struct //图的定义 { int edges[MAXV][MAXV]; //邻接矩阵 int n,e; //顶点数,弧数 VertexType vexs[MAXV]; //存放顶点信息 } MGraph; //图的邻接矩阵类型 查询站点间的最短路程距离和路径

广州公交线路一览表

广州BRT公交线路一览表 编码起止点行向停靠站点 B1(原292路)夏园至体育中心 上行夏园站.南湾站.庙头站.南海神庙站.沙浦站.双岗站.黄埔客运站站.乌冲站.下沙站.珠江村站.茅岗站.莲溪站.珠村站.黄村站.东圃镇站.车陂站.天朗明居站.棠东站.棠下村站.学院站.上社站.华景新城站.师大暨大站.岗顶站.石牌桥站.体育中心站 下行体育中心站.石牌桥站.岗顶站.师大暨大站.华景新城站.上社站.学院站.棠下村站.棠东站.天朗明居站.车陂站.东圃镇站.黄村站.珠村站.莲溪站.茅岗站.珠江村站.下沙站.乌冲站.黄埔客运站站.双岗站.沙浦站.南海神庙站.庙头站.南湾站.夏园站 B2(原269路)广州火车站至东圃 上行广州火车站总站.电视塔站.花园酒店站.广东工大站.动物园南门站.体育中心站.石牌桥站.岗顶站.师大暨大站.华景新城站.上社站.学院站.棠下村站.棠东站.天朗明居站.车陂站.东圃镇站.东圃总站 下行东圃总站.东圃镇站.车陂站.天朗明居站.棠东站.棠下村站.学院站.上社站.华景新城站.师大暨大站.岗顶站.石牌桥站.体育中心站.动物园南门站.广东工大站.白云宾馆站.电视塔站.越秀公园北门站.广州火车站总站 B2A(原269A)广州火车站至黄村 上行广州火车站总站.电视塔站.花园酒店站.广东工大站.动物园南门站.体育中心站.石牌桥站.岗顶站.师大暨大站.华景新城站.上社站.学院站.棠下村站.棠东站.天朗明居站.车陂站.东圃镇站.黄村总站 下行黄村总站.东圃镇站.车陂站.天朗明居站.棠东站.棠下村站.学院站.上社站.华景新城站.师大暨大站.岗顶站.石牌桥站.体育中心站.动物园南门站.广东工大站.白云宾馆站.电视塔站.越秀公园北门站.广州火车站总站 B3(原289路)罗冲围至东圃客运站 上行罗冲围总站.糖厂路口站.罗冲围客运站站.富力半岛花园站.西场电器城站.和平新村站.东风西路站.市少年宫站.广医站.市总工会站.中山纪念堂站.正骨医院站.东风大酒店站.先烈南路站.广东工大站.动物园南门站.天河立交站.体育中心站.石牌桥站.岗顶站.师大暨大站.华景新城站.上社站.学院站.棠下村站.棠东站.天朗明居站.车陂站.东圃镇站.黄村站.东圃客运站总站 下行东圃客运站总站.黄村站.东圃镇站.车陂站.天朗明居站.棠东站.棠下村站.学院站.上社站.华景新城站.师大暨大站.岗顶站.石牌桥站.体育中心站.天河立交站.动物园南门站.广东工大站.先烈南路站.东风大酒店站.越秀桥站.东风中路站.中山纪念堂站.广医站.东风西路站.和平新村站.西场电器城站.富力半岛花园站.糖厂路口站.松南街口站.松北站.罗冲围总站 B3A罗冲围至棠东单向 罗冲围总站.糖厂路口站.罗冲围客运站站.富力半岛花园站.西场电器城站.和平新村站.东风西路站.市少年宫站.广医站.市总工会站.中山纪念堂站.正骨医院站.东风大酒店站.先烈南路站.广东工大站.动物园南门站.天河立交站.体育中心站.石牌桥站.岗顶站.师大暨大站.华景新城站.上社站.学院站.棠下村站.棠东站 B3B罗冲围至上社单向 罗冲围总站.糖厂路口站.罗冲围客运站站.富力半岛花园站.西场电器城站.和平新村站.东风西路站.市少年宫站.广医站.市总工会站.中山纪念堂站.正骨医院站.东风大酒店站.先烈南路站.广东工大站.动物园南门站.天河立交站.体育中心站.石牌桥站.岗顶站.师大暨大站.华景新城站.上社站

广东海洋大学数据结构课程设计——公交换乘系统(C++)

广东海洋大学信息学院课程设计报告 设计题目公交换乘 课程名称数据结构 姓名(学号) 联系电话 专业名称 所在班级 指导教师 教师职称 起止时间 评定成绩

一、课程设计的主要内容 公交换乘在一个城市的公共交通系统设计中占据着极其重要的地位,公交换乘的过程将直接影响居民出行时间的长短,公交换乘的过程如下:指定一起始公交站点与目的公交站点,依据参考因素,例如:换乘路线的路径最短、耗费时间最短、所需车资最少等,经过分析处理得到可达目的站点换乘次数最少的乘车方案,具体可分为: (1)零次换乘起始站点和目的站点之间存在可直达的公交线路,即出行居民无需转乘就可以直接到达目的站点,这也是较为理想的方案。 (2)一次换乘起始站点和目的站点之间没有公交车直接往返,即两站点之间不存在可直达的公交线路,则出行居民需要在途经的某个站点下车,然后转乘另一线路公交车才能达到目的站点。 (3)多次换乘在起始站点和目的站点之间没有可直达的公交线路,出行居民需要经过一次以上的转乘才能达到目的站点,则得到多次换乘方案。多次换乘方案可通过一次换乘的递归计算得到,一般情况下,超过两次转乘的方案对于出行居民来说是难以接受的,本课程设计只要求计算零次和一次换乘方案,对于一次以上的公交换乘不作要求。 二、功能和结构设计 1、功能设计

在这里通过主函数显示程序的主页版,上面是湛江的公交线路图 在这里输入出发站点的名字,回车确定! 在这里输入最终站点的名字! 输入错误会提醒重新输入! 输入要查询的起点和终点 0次换乘,输出查询结果:

按y或Y,可以继续查询! 输入出发点和终点,一次换乘的结果如下: 2、结构设计 设计一个实现公交换乘的算法:指定任一起始站点和目的站点,依据算法得到所有可达目的站点的的公交线路,包括中间站点的换乘方法以及该公交线路所经过的公交站点。 1.分析公交站点和公交线路的数据属性,并依据公交换乘的功能要求,确定算法设计方案; 2.设计公交站点信息以及公交线路信息的存储结构; 3.设计公交换乘算法,并画出程序流程图; 4.使用C++程序设计语言编写实现公交换乘的程序; 三、流程图和算法设计

城市多层次公交线网指标体系研究 ——以中国深圳为例

Open Journal of Transportation Technologies 交通技术, 2019, 8(5), 305-311 Published Online September 2019 in Hans. https://www.doczj.com/doc/b93954640.html,/journal/ojtt https://https://www.doczj.com/doc/b93954640.html,/10.12677/ojtt.2019.85037 Research on the Index System of Urban Multilevel Bus Network —A Case Study of Shenzhen, China Le Wu1,2, Jun Luo1, Ding Liu2,3 1Shenzhen Institute of Urban Transportation Planning and Design Ltd., Shenzhen Guangdong 2Shenzhen Graduate School, Harbin Institute of Technology, Shenzhen Guangdong 3Shanghai Maritime University, Shanghai Received: Aug. 14th, 2019; accepted: Aug. 26th, 2019; published: Sep. 2nd, 2019 Abstract In this paper, the index system of urban multilevel bus network is explored with the case study of Shenzhen, China. The following key basic factors are considered, for increase or adjustment of bus routes, namely space elements, time elements, condition elements, vehicles elements, and net-work elements while conducting bus network organization. The proposed organization method is explained with bus routes adjustment of Shenzhen in year 2018. This paper offers a reference for the relative engineering, technical and academic personnel. Keywords Urban Public Transportation System, Multilevel Bus System, Megacities, Shenzhen 城市多层次公交线网指标体系研究 ——以中国深圳为例 吴乐1,2,罗俊1,刘鼎2,3 1深圳市都市交通规划设计研究院有限公司,广东深圳 2哈尔滨工业大学深圳研究生院,广东深圳 3上海海事大学,上海 收稿日期:2019年8月14日;录用日期:2019年8月26日;发布日期:2019年9月2日

数据结构全国交通模拟系统

全国交通模拟系统课程设计报告 姓名:唐文龙 班级: 2班 学号: 411417080216 学院:华信学院 专业:计算机科学与技术 指导: 日期:2013.06.20

目录 1 需求分析 (1) 1.1 概述 (1) 1.2 数据需求 (1) 1.3 功能性需求 (1) 1.4 其他需求 (1) 2 概要设计 (2) 3 详细设计 (4) 3.1 记录的定义 (4) 3.2 子程序说明 (5) 3.3 子程序的算法说明 (5) 3.3.1主函数流程图 (6) 4 系统实现 (7) 4.1开发环境 (8) 4.2运行界面 (9) 4.3测试用例 (10) 5 总结 (11) 6.参考文献 (11) 附录:源程序 (11)

1 需求分析 出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。 1.1 概述 程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供两种最优决策:最快到达、最省钱到达。 1.2 数据需求 输入列车或飞机编号时需输入一个整型数据;输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据;在选择功能时,应输入与所选功能对应的一个整型数据。 1.3 功能性需求 总体功能描述 (1) 提供对城市信息进行编辑的功能。 (2) 城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑的功能。 (3) 提供两种最优决策: 最快到达或最省钱到达。全程只考虑一种交通工具,不考虑回程; (4) 旅途中耗费的总时间应该包括中转站的等候时间。 (5) 咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原 则和交通工具, 输出信息: 最快需要多长时间才能到达或者最少需要多少旅费才能到达。 1.4 其他需求 (1)具有可靠性,可用性。

相关主题
文本预览
相关文档 最新文档