交通咨询系统设计

合集下载

交通咨询系统设计课程设计

交通咨询系统设计课程设计

课程设计报告课程名称数据结构课题名称交通咨询系统设计专业信息管理与信息系统班级学号姓名指导教师2013 年12月31 日一、设计内容与设计要求1设计内容[问题描述] 在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。

对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

图中顶点表示城市,边表示城市之间的交通关系。

设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。

[基本功能]1).根据实际情况,先建立交通网络图的存储结构。

2).求某个城市到达其余各城市的最短路径。

3).任一输入两个城市,要求求出他们之间的最短路径。

2设计要求:1).设计正确,方案合理。

2).界面友好,使用方便。

3).程序精炼,结构清晰。

4).设计报告5000字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。

5).实际操作过程中遇到的问题及解决方法:设计总结及心得体会。

6).上机演示。

二、进度安排第 17 周星期二 8时:00分——11时:30分星期三 8时:00分——11时:30分星期四 14时:00分——17时:30分星期五 8时:00分——11时:30分第 18 周星期一 8时:00分——11时:30分星期二 8时:00分——11时:30分附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的源代码,要求对程序写出必要的注释)。

正文总字数要求在5000字以上(不含程序源代码)。

数据结构课程设计—城市道路交通咨询系统

数据结构课程设计—城市道路交通咨询系统

榆林学院数据结构课程设计报告题目城市交通咨询系统作者杨朝专业信息管理与信息系统学号指导老师张慧答辩时间目录1 .系统需求分析 (1)用户需求分析 (1)功能需求分析 (2)数据需求分析 (2)小结 (3)2.系统设计 (3)系统设计功能 (3)每个模块的具体功能。

(4)采用C语言定义相关数据类型 (4)建立邻接矩阵交通网络: (4)查询指定城市到其他城市自己建的最短路程: (6)查询任意两个城市之间的一条最短路径: (7)主函数的调用关系图 (8)3.系统测试 (9)操作说明 (9)测试数据 (10)用户进入界面: (10)、具体功能的实现 (11)、结束程序 (12)4.总结 (13)5.致谢 (13)6.附录 (14)1.系统需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

且在图中,顶点表示城市,边表示城市之间的交通关系。

设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。

对系统分析,主要从以下几个方面进行分析。

1.用户需求分析2.功能需求分析3.数据需求分析用户需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

且在图中,顶点表示城市,边表示城市之间的交通关系。

设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。

当要查询某两个城市之间的最短交通路线或者其中一个城市到达其余城市的最短路线时,是一个很繁琐的过程。

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

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

设计题目<二>:交通咨询系统设计P160 一、设计要求 1 .问题描述根据不同目的的旅客对交通工具有不同的要求。

例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅行的旅客希望旅费尽可能的少,而老年人则要求中转次数少。

模拟一个全国城市之间的咨询交通程序,为旅客提供两种或三种最优的交通路线。

2.需求分析二、概要设计1.主界面设计(图“交通咨询系统”主菜单)2.存储结构设计本系统采用图结构类型存储抽象交通咨询系统的信息typedef struct TrafficNodetmp = k;}printf("%s", AdjList[track[i]].Train[tmp].name);pri ntf("%2d:%2d-%2d:%2d",AdjList[track[i]].Trai n[tmp].StartTime / 60,AdjList[track[i]].Train[tmp].StartTime % 60,AdjList[track[i]].Trai n[tmp].StopTime / 60,AdjList[track[i]].Trai n[tmp].StopTime % 60);else{for (i--; i>0; i--) um;[k++)ghar name[MAX_STRlNG_NUM];jajnN{printf("\n%s:", CityName[track[i]]);end = track[i - 1]; min = 32767;for (k = 0; k<AdjList[track[i]].FlightNum; k++)if (AdjList[track[i]].Train[k].EndCity ==end&&min>AdjList[track[i]].Flight[k].Cost){min = AdjList[track[i]].Flight[k].Cost;tmp = k;}printf("%s",AdjList[track[i]].Flight[tmp].name);printf("%2d:%2d-%2d:%2d",AdjList[track[i]].Flight[tmp].StartTime / 60,AdjList[track[i]].Flight[tmp].StartTime % 60,AdjList[track[i]].Flight[tmp].StopTime / 60,AdjList[track[i]].Flight[tmp].StopTime % 60);}}printf("\n%s: DESTINATION!", CityName[track[0]]);printf("\nMin Cost : %d\n", cost);}void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int p_end, int TravelType){int PreCity[Dij_MAXN]; 添加城市在主菜单下,用户输入 1,添加城市名称(图添加城市)2.删除城市在主菜单下,用户输入2,删除已添加城市名称(图删除城市)3.添加交通路线在主菜单下,用户输入3,已添加城市名称。

交通咨询系统 C语言【范本模板】

交通咨询系统 C语言【范本模板】

CHINA交通咨询系统目录一、需求分析 (2)1、程序的功能及设计要求 (2)2、输入输出的要求 (2)二、环境说明 (2)三、详细设计 (3)1、模块设计 (3)2、画出各函数的调用关系图、主要函数的流程图。

(3)2、详细代码 (4)四、调试分析 (4)1、测试数据: (4)2、借鉴的资料 (5)五、课程总结 (6)六、附录 (6)一、需求分析1、程序的功能及设计要求在交通网络非常发达、交通工具和交通方式不断更新的今天,人们在出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也感兴趣.对于这样一个人们关心的问题,通过建立交通网络图的存储结构图,提供用户查询的功能,功能一:通过输入城市名及任意两个城市的距离,查询任意两个城市之间的最短距离,从而达到最省目的;功能二:通过输入城市名以及任意两个程序的距离,查询中转路线最少。

程序所具有的功能特色本程序主要目的是为了给用户提供路径咨询,可以通过输入设置,延续程序的拓展性。

设计要求及分析设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的中转次数最少问题或最低花费或最少时间(最短路径)问题。

该设计共分三个部分:一是建立交通网络图的存储结构;二是解决单源最短路径问题;最后再实现任意两个城市顶点之间的最短路径问题。

1。

建立交通网络图的存储结构要实现设计要求,首先要定义交通图的存储结构:邻接链表和邻接矩阵;2。

解决任意两个城市顶点之间的中转次数最少的问题;3. 解决任意两个城市顶点之间的最短路径(最低花费或最少时间)问题。

2、输入输出的要求定义变量类型应该保持类型一致,通过键盘输入,确保输入输出一致,使最短路径途径以及最短路径能够简单明了的输出,同时保持程序简洁美观,效果明显。

输入要求为输入界面直观、亲切;有利于快速输入;有利于准确输入;有利于输入、修改;方便操作。

输出要求:输出要求应简单、直观,一目了然,尽量符合用户的习惯,便于用户阅读、理解与使用.输出内容应尽量汉字化,从而使输出格式醒目;各种输出设计要长考虑以利于系统发展和输出项目扩充、变动的需要;输出操作方便二、环境说明系统:WINDOS7开发软件:vc6+三、详细设计1、模块设计交通咨询系统模块图如下由模块图可知,该设计共分三个部分:一是建立交通网络图的存储结构;二是解决单源最短路径问题;最后再实现任意两个城市顶点之间的最短路径问题。

交通咨询程设计

交通咨询程设计

交通咨询系统(一)需求分析设计、实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案:一是建立交通网络图的存储结构,二实现两个城市间的最短路经问题。

本程序主要目的是为了给用户提供路径咨询。

实现了帮助用户了解全国各大城市间往来的最短路径问题,可以提供用户查询各大城市的相关信息。

本程序最大的特点是支持用户自己添加城市信息及城市,或添加城市的路径,既有可扩展性。

该程序所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。

此程序规定:(1)在程序中输入城市名称时,需输入10个字母以内的字母串;输入列车或飞机编号时需输入一个整型数据;输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据(以hh:mm的形式);在选择功能时,应输入与所选功能对应的一个整型数据。

(2)程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。

(3)程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。

.1题目分析1.由题目的分析知全国交通咨询管理系统是有对城市信息的增加、删除、修改、保存、查询、有错时提示出错信息等功能,最后对数据进行保存并退出操作系统。

由此可知需要将函数模块化,将它做为一个独立的函数体去实现它的功能。

它可以分为四大功能模块,每个模块需要去各个击破。

2.根据这些功能和基本要求,可充分运用我们所学的数据结构的基本知识和技能去逐步的解决。

其中将函数进行模块化。

在数据结构中,通过队列,栈,图的声明来实现系统的各种功能的存储各城市之间乘火车的消耗价格,时间,乘飞机的价格,时间,以及中转站最少。

利用指针和结点来实现城市与城市之间各种操作,而这些知识点都是我们学习数据结构必须掌握和学会运用的。

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

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

四、详细设计 1.数据类型定义
(1)全局变量的定义 typedef short int CityType;//CityType 定义短整形的变量 typedef struct TrafficNode { char name[MAX_STRING_NUM]; //班次 //MAX_STRING_NUM最为
for (i--; i>0; i--) { printf("\n%s:", CityName[track[i]]); end = track[i - 1]; min = 32767; for (k = 0; k<AdjList[track[i]].FlightNum; k++) if (AdjList[track[i]].Train[k].EndCity == end&&min>AdjList[track[i]].Flight[k].Cost) { min = AdjList[track[i]].Flight[k].Cost; tmp = k; } printf("%s", AdjList[track[i]].Flight[tmp].name); printf("%2d:%2d-%2d:%2d", AdjList[track[i]].Flight[tmp].StartTime / 60, AdjList[track[i]].Flight[tmp].StartTime % 60, AdjList[track[i]].Flight[tmp].StopTime / 60, AdjList[track[i]].Flight[tmp].StopTime % 60); } } printf("\n%s: DESTINATION!", CityName[track[0]]); printf("\nMin Cost : %d\n", cost); } void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int p_end, int TravelType) { int PreCity[Dij_MAXN]; //PreCity[i]==-1,never used; //PreCity>0,the precity of City i

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

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

数据结构课程设计全国交通咨询系统数据结构课程设计全国交通咨询系统随着交通工具的快速发展,现代人的出行方式更加灵活便捷,交通行业也变得越来越重要。

然而,随之而来的交通拥堵、安全问题和出行效率等问题亟待解决。

因此,交通咨询系统的开发应运而生。

本文介绍一个数据结构课程设计项目——全国交通咨询系统,该系统旨在为用户提供便捷、全面的交通出行信息和服务。

该系统主要包括以下方面的功能:1. 城市选择及路线查询功能用户可选择目的地城市,系统将返回该城市的基本信息,以及从用户当前位置到目的地的交通路线和方案,并提供相应的时间和费用信息。

2. 交通工具查询功能用户可在系统中查询各种交通工具的班次、价格、车次和到达时间等相关信息,以便用户做出最优出行方案。

3. 路况信息查询该系统可实时获取交通状况信息,并展示给用户最新的路况信息。

此外,当用户选择出行方式时,系统可根据实时路况为用户提供最佳出行方案。

4. 预订和购票该系统可为用户提供方便的预订和购票服务。

用户可在线预订和购买机票、火车票和长途汽车票等交通工具,并选择合适的座位和时间。

5. 旅游景点推荐功能该系统可根据用户的出行方案提供适宜的旅游景点推荐。

用户可在系统中了解这些景点的详细信息和交通时间,以便更好地规划自己的行程。

该全国交通咨询系统的实现需要多种数据结构的支持,例如图、树、堆栈、链表、哈希表等。

下面分别讨论每个功能的实现方法和相关数据结构。

1. 城市选择及路线查询功能城市选择及路线查询功能需要通过图的遍历来实现。

图是由顶点和边组成的集合,可以用来表示城市及它们之间的相互关系。

在本系统中,每个城市可以看做一个顶点,每条连接两个城市的路径被视为一条边。

为了实现城市选择及路线查询功能,需要对图进行遍历。

在这个系统中,广度优先搜索算法(BFS)是最佳选择,因为BFS可以给出最近的解决方案。

2. 交通工具查询功能交通工具查询功能需要通过树来实现。

树是由节点和边组成的集合,可以用来表示各种结构化数据。

交通咨询模拟系统课程设计

交通咨询模拟系统课程设计

交通咨询模拟系统课程设计一、课程目标知识目标:1. 让学生掌握交通咨询模拟系统的基本原理和功能。

2. 引导学生了解交通咨询模拟系统在实际生活中的应用。

3. 帮助学生理解并掌握交通流量的数据分析方法。

技能目标:1. 培养学生运用所学知识设计和搭建简单的交通咨询模拟系统的能力。

2. 提高学生分析交通数据,提出合理解决方案的能力。

3. 培养学生团队协作和沟通表达的能力。

情感态度价值观目标:1. 激发学生对交通咨询模拟系统相关领域的兴趣,培养探究精神。

2. 培养学生关注社会交通问题,认识到科技在解决交通问题中的重要性。

3. 引导学生树立正确的价值观,关注交通安全,提高社会责任感。

课程性质:本课程为实践性较强的课程,以项目式教学为主,结合理论讲解和实际操作。

学生特点:学生为初中生,具备一定的信息技术基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:教师需关注学生个体差异,提供针对性的指导,鼓励学生积极参与讨论和实践,注重培养学生的学习兴趣和动手能力。

通过本课程的学习,使学生能够将所学知识应用于实际生活中,提高解决实际问题的能力。

二、教学内容1. 交通咨询模拟系统概述- 交通咨询模拟系统的定义与作用- 交通咨询模拟系统的发展与应用2. 交通咨询模拟系统的基本原理- 交通流量的基本概念- 交通流量的数据分析方法- 交通咨询模拟系统的构建原理3. 交通咨询模拟系统的设计与实现- 系统设计的基本流程与方法- 系统实现的工具与技术- 系统测试与优化4. 实践项目:设计一个简单的交通咨询模拟系统- 项目目标与要求- 项目实施步骤与方法- 项目成果展示与评价5. 交通咨询模拟系统在实际生活中的应用案例- 城市交通拥堵解决方案- 公共交通优化- 紧急救援路径规划教学内容安排与进度:第1课时:交通咨询模拟系统概述第2课时:交通咨询模拟系统的基本原理第3课时:交通咨询模拟系统的设计与实现(上)第4课时:交通咨询模拟系统的设计与实现(下)第5课时:实践项目:设计一个简单的交通咨询模拟系统第6课时:交通咨询模拟系统在实际生活中的应用案例教学内容与教材关联性:本教学内容紧密结合教材中关于信息技术应用、数据分析、系统设计等相关章节,确保学生能够学以致用,提高解决实际问题的能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构课程设计》实验报告
编号实验五实验项目名称交通咨询系统设计
学时数3课时指导教师冯韵班

计科一班


33


周兴
实验日期2010-10-16 成绩
一、实验目的:设计一个交通咨询系统能让旅客咨询从任意一个城市顶点到另一城市顶点之间的最短路径或最低花费或最少时间等问题。

二、内容与设计思想:(设计思想、主要数据结构、主要代码结构、主要代码段分析)
1.设计思想:一是用有向图的邻接矩阵建立交通网络图的存储结构;二是是用迪杰斯特拉(Dijkstra)算法解决源点到所有点的最短路径问题;三是用费罗伊德(Floyd)算法算出任意两点之间的最短路径。

2.主要数据结构:1.建立有向图的存储结构
2.迪杰斯特拉算法
3.费罗伊德算法
4.主框架函数的实现
3.主要代码结构:
{//采用邻接矩阵表示法构造有向图G,n,e表示图的当前顶点数和边数
int i,j,k,w;
for(i=1;i<=n;i++)
G->vexs[i]=(char)i;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
G->arcs[i][j]=Maxint;
printf("输入%d条边的i,j及w:\n",e);
for(k=1;k<=e;k++){
scanf("%d,%d,%d",&i,&j,&w);
G->arcs[i][j]=w;
}
printf("有向图的存储结构建立完毕!\n");
}
void Dijkstra(MGraph*G,int v1,int n)
{ int D2[MVNum],P2[MVNum];
int v,i,w,min;
enum boolean S[MVNum];
for(v=1;v<=n;v++){
S[v]=FALSE;
D2[v]=G->arcs[v1][v];
if(D2[v]<Maxint)
P2[v]=v1;
else
P2[v]=0;}
D2[v1]=0;S[v1]=TRUE;
for(i=2;i<n;i++){
min=Maxint;
for(w=1;w<=n;w++)
if(!S[w]&&D2[w]<min)
{v=w;min=D2[w];}
S[v]=TRUE;
for(w=1;w<=n;w++)
if(!S[w]&&(D2[v]+G->arcs[v][w]<D2[w])){
D2[w]=D2[v]+G->arcs[v][w];
P2[w]=v;}
}
printf("路径长度路径\n");
for(i=1;i<=n;i++){
printf("%5d",D2[i]);
printf("%5d",i);v=P2[i];
while(v!=0){
printf("<-%d",v);
v=P2[v];}
printf("\n");}
}
void Floyd(MGraph*G,int n)
{ int i,j,k,v,w;
for(i=i;i<=n;i++)
for(j=1;j<=n;j++)
{
if(G->arcs[i][j]!=Maxint)
P[i][j];
else
P[i][j]=0;
D[i][j]=G->arcs[i][j];}
for(k=1;k<=n;k++)
{ for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{if(D[i][k]+D[k][j]<D[i][j]){
D[i][j]=D[i][k]+D[k][j];
P[i][j]=P[i][k];}
}
}
}
void main()
{ MGraph*G;
int n,e,v,w,k;
int xz=1;
G=(MGraph*)malloc(sizeof(MGraph));
printf("输入图中顶点个数和边数n,e:");
scanf("%d,%d",&n,&e);
CreateMGraph(G,n,e);
while(xz!=0){
printf("******求城市之间的最短路径******\n");
printf("===============================\n");
printf("1.求一个城市到所有城市的最短路径\n");
printf("2.求任意的两个城市之间的最短路径\n");
printf("===============================\n");
printf(" 请选择:1或2,选择0退出: \n");
scanf("%d",&xz);
if(xz==2){
Floyd(G,n);
printf("输入源点(或称起点)和终点:v,w:");
scanf("%d,%d",&v,&w);
k=P[v][w];
if(k==0)
printf("顶点%d到%d无路径!\n",v,w);
else
{ printf("从顶点%d到%d的最短路径是:%d",v,w,v);
while(k!=w){
printf("→%d",w);
k=P[k][w]; }
printf("→%d",w);
printf(" 路径长度:%d\n",D[v][w]);}
}
else
if(xz==1){
printf("求单源路径,输入源点v:");
scanf("%d",&v);
Dijkstra(G,v,n); }
}
printf("结束求最短路径,再见!\n");
}
三、调试过程(测试数据设计与测试结果分析)
按要求输入图中的定点个数和边数n,e:4,5
i,j是图中边的顶点编号,w是边的权值
按要求输入:
按enter键选择1,求单源路径,输入1(求顶点1到其它点的最短路径)
此为源点1到其它点的最短路径
然后选择2后,程序调用Floyd算法
输入源点和终点v,w:2,3
顶点2到顶点3无路径,选择0退出。

四、总结
1、设计中遇到的问题及解决过程
在输入i,j,w的值时对数据的输入规则不够清楚,有向图的认识不熟悉,多看几遍实验程序了解输入数据的有向单一性。

2、设计中产生的错误及原因分析
在Floyd算法中v,w是无效引用的局部变量,将i=1错输为i=i让程序在求最短路径是发生错误
3、设计体会和收获
对于图的认识更深入了解,了解迪杰斯特拉算法和费罗伊德算法的数据结构。

五、评阅意见:。

相关文档
最新文档