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

合集下载

交通图咨询查询系统数据结构(C语言)

交通图咨询查询系统数据结构(C语言)

信息科学与工程学院《结构数据》课程设计报告课程设计名称:交通咨询系统专业班级 : 计算机xxx学生姓名 : xxx学号: 2015xxxx指导教师 : xx课程设计时间:2016。

07.04—2016.07.08计算机应用技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页填表说明1.“课题性质”一栏:A.工程设计;B.工程技术研究;C.软件工程(如CAI课题等);D.文献型综述;E.其它。

2.“课题来源"一栏:A.自然科学基金与部、省、市级以上科研课题;B.企、事业单位委托课题;C.校、院(系、部)级基金课题;D.自拟课题。

目录1 需求分析 01。

1 添加交通图信息 01。

2 查询单源最短路径 01。

3 查询多源最短路径 01。

4 更新交通图信息 01.6 读取、保存信息 (1)2 概要设计 (2)2.1 数据类型的定义 (2)2.2 功能模块结构图 (3)3 运行环境 (6)4 开发工具和编程语言 (6)5 详细设计 (7)5。

1 图结构的基本操作 (7)5。

1。

1添加城市结点和路径结点 (8)5。

1.2修改城市结点和路径结点 (8)5.1。

3删除城市结点和路径结点 (8)5。

1。

4退出保存 (8)5。

2 迪杰斯特拉算法的实现 (8)5.2。

1 迪杰斯特拉算法函数 (8)5.2.2 提取迪杰斯特拉函数信息 (8)5.2。

3 求多源最短路径 (8)6 程序编码 (9)7 运行结果 (39)8 心得体会 (45)9参考文献 (46)1需求分析本系统中的数据来源于标准输入设备(如键盘)和文件,可以实现对交通图城市、城市到其余城市的距离的操作,根据需要可查询某两个城市之间的最短距离、城市到各城市的最短距离,各个城市到各个城市的最短距离,以及路径。

本系统要实现的功能有:添加城市和城市间距离,删除城市及城市间距离,修改城市间距离,查询城市间的最短路径,查询某个城市到某个城市的最短路径。

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

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

X X 学院计算机系《数据结构》课程设计报告书全国交通咨询模拟系统的设计与实现学生姓名:学号:年级专业及班级:指导老师及职称:讲师专业:计算机科学与技术专业提交日期:2011年6月全国交通咨询模拟系统的设计与实现学生:指导老师:(怀化学院计算机系,怀化 418008)摘要:该课程设计主要实现了对全国火车及飞机信息的修改和查询,其中主要包括:管理员对火车、飞机信息的操作,其中又包含对两种交通方式的增加和删除操作。

旅客用户对两种交通信息的查询,其中飞机信息和火车信息都包含了对两个站点间最短路径方式的查询、最少花费方式的查询以及城市中所有的交通信息的查询。

关键词:全国交通咨询;/ 、八—1前言为了完成数据结构的课程设计,为了巩固自己数据结构的知识,也是为了提高自己的编程能力和逻辑思维能力,我选了这道全国交通咨询模拟系统的设计与实现一题。

在对其需求进行分析之后,按照需求分析,逐步完成其各部分的功能实现。

对于总的方面来讲,管理员功能实现并不难,而难点在于用户功能中的算法及数据结构中的知识以及编程的细微方面,下面将详细介绍本课程设计的内容。

2需求分析2.1范围1.1标识2. 1.2系统概述1 •软件名称:全国交通咨询系统V1.02 •软件功能:主要的功能有:管理员增删和修改城市站点信息、飞机路线信息、火车路线信息。

3•用户:查询最小耗费路线、查询最短时间路线、查询城市所有路线。

4•开发者:2. 1.3文档概述需求分析采用在面向对象的方法,主要使用结构体struct的方法来进行实际的编程,在文档中主要采E-R图和对功能的简单描述的方法来表述系统的需求。

本需求分析的审查者是老师,所以主要是写给老师看的,用来说明我对这个系统的分析情况。

2. 2引用文件无2. 3需求概述2. 3.1系统目标本系统的总体目标是通过使用该系统,管理员可以对飞机或者火车的信息的简单管理,也方便外出旅客在不同的需求下(如:最少的花费和最短的路程),快速浏览到所要的信息。

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

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

太原工业学院计算机工程系数据结构课程设计设计题目:全国交通网络咨询系统1班级:计算机科学与技术学号:**********名:**指导教师:***年月日目录一、课程设计题目 (1)二、需求分析 (1)三、测试数据 (2)四、概要设计 (2)五、调用关系图 (3)六、程序代码 (3)七、测试结果 (14)八、心得体会及总结 (14)数据结构课程设计一、课程设计题目全国交通网络咨询系统二、需求分析1、实现功能对城市信息(城市名、城市间的里程)进行编辑:具备添加、修改、删除功能;对城市间的交通工具:火车。

对列车时刻表进行编辑:里程、和列车班次的添加、修改、删除;提供两种最优决策:最快到达或最省钱到达。

全程只考虑一种交通工具,可以不考虑回程;咨询以用户和计算机对话方式进行,要注意人机交互的屏幕界面。

由用户选择最优决策原则和交通工具,输入起始站、终点站、出发时间,输出信息:最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间,并详细说明依次于何时何地乘坐哪一趟列车何时到达何地。

2、设计思路(1) 数据存储。

城市信息(城市名、代码)、交通信息(城市间的里程、各航班和列车时刻)存储于磁盘文件。

在实验中本想用文本储存数据,但操作不熟悉,而是改用图的邻接矩阵储存原始信息,而后用数组进行添加删改(2) 数据的逻辑结构。

根据设计任务的描述,其城市之间的旅游交通问题是典型的图结构,可看作为无向图,图的顶点是城市,边是城市之间所耗费的时间(要包括中转站的时间)或旅费。

(3) 数据的存储结构。

采用邻接表和邻接矩阵都可作为数据的存储结构,这里建议采用邻接矩阵作为数据的存储结构。

(4) 用不同的功能模块对城市信息和交通信息进行编辑。

添加、修改、删除功能可用菜单方式或命令提示方式。

只要能方便的对城市信息和交通信息进行管理即可,但要注意人机界面,具体实现由学生自行设计,也可参考有关程序(届时在网上提供)。

这些工作有不小的工作量。

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

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

工业应用技术学院课程设计任务书题目全国交通资询系统主要容:设计了一个方便用户查询交通咨询系统。

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

该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。

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

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

基本要求:1、掌握C语言的变量及函数的灵活使用;2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现;3、掌握C语言中文件的基本操作;4、掌握VC++6.0软件的熟练使用。

主要参考资料:[1] 春葆.数据结构程序设计[M].:清华大学,2002,03[2] 王黎,袁永康战略[M].:清华大学,2002,01[3] 谭浩强.C程序设计第二版[M].:清华大学,2003,03[4] 任哲.MFC Windows程序设计[M].:清华大学,2004,06完成期限:2016.12.05—2017.01.05指导教师签名:课程负责人签名:随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。

对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。

在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。

尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。

即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。

为此开发一个交通择优系统是十分必要的。

采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规化和自动化。

交通咨询系统设计方案数据结构课程设计方案任务书

交通咨询系统设计方案数据结构课程设计方案任务书

交通资讯系统1.系统需求分析1.1问题描述在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。

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

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

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

1.2功能要求1.交通资讯系统提供用户三种决策方案:一是建立交通网络图的存储结构。

二是某个城市到达其余各城市的最短路径。

三是实现两个城市之间最短路径的问题。

主要目的是给用户提供路径咨询。

2.本系统规定:(1)在程序中输入城市名称时,需输入0到5的城市代号(2)在选择功能是,应输入与所选功能对应的一个整形数据。

(3)程序的输出信息主要是:城市代号,某城市到达其余各城市的最短路径,两城市之间最短路径2.概要设计2.1系统总体设计2.2各模块的功能void main() 主函数void Dijkstr()采用狄克斯特拉算法求从顶点v到其余个顶点的最短路径void DisPath()由path计算最短路径void Ppath()输出各条最短路径void Floyd()采用弗洛伊德算法求所有顶点之间的最短路径void DisPath2()由path计算最短路径void Ppath2()输出各条最短路径2.3相关数据结构设计1.数据结构typedef int InfoType。

typedef struct {char cityname。

int no。

InfoType info。

}VertexTypeo typedef struct {int edges[MAXV][MAXV]。

int n,e。

VertexType vxs[MAXV]。

}MGraph o2.数据库结构:下表构成该系统的基本数据库3,详细设计1.1采用c语言定义相关的数据结构本系统定义了整形int,字符型char,还有结构体定义,建立图的存储结构首先定义交通图的存储结构,邻接矩阵是表示图形中顶点之间相邻关系的矩阵.设 G=(V ,E)是具有n(n>0)个顶点的图,则邻接矩阵具有如下定义的n 阶方阵Wij 若 vi/vj 且<vi,vj>£E(G)A[i][j]= y8 其他一个图的邻接矩阵表示是唯一的,除了许用一个二维数组存储顶点之间相邻关系的 邻接矩阵外,通常还需要使用一个具有n 个元素的一维数组来存储顶点信息3.2函数调用关系图3.2.1主函数A[][MAXV] = {{INF,5,INF,7,INF,INF},{INF,INF,4,INF,INF,INF ), {8,INF,INF,INF,INF,9},{INF,INF,5,INF,INF,6},{INF,INF,INF,5,INF,INF}, {3,INF,INF,INF,1,INF}}。

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

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

数据结构设计报告姓名:专业:指导教师:目录摘要 (3)第1章概述 (4)1.1系统实现的目标 (4)1.2系统实现方案 (4)1.3系统实现环境 (4)1.4具体的开发方法 (4)第2章系统设计 (5)2.1系统功能设计 (5)2.2数据设计 (5)2.3界面的设计 (5)第3章系统实现 (9)参考文献 (15)摘要设计、实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案:一是建立交通网络图的存储结构,二实现两个城市间的最短路经问题。

程序所具有的功能特色本程序主要目的是为了给用户提供路径咨询。

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

本程序最大的特点是支持用户自己添加城市信息及城市,或添加城市的路径,既就有可扩展性该程序所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。

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

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

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

第1章概述1.1 系统实现的目标通过进行课程设计,了解并初步掌握设计、实现较大系统的完整过程,包括:系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。

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

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

设计题目<二>:交通咨询系统设计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,已添加城市名称。

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

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

.郑州工业应用技术学院课程设计任务书题目全国交通资询系统主要内容:设计了一个方便用户查询交通咨询系统。

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

该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。

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

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

基本要求:1、掌握C语言的变量及函数的灵活使用;2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现;3、掌握C语言中文件的基本操作;4、掌握VC++6.0软件的熟练使用。

主要参考资料:[1] 李春葆.数据结构程序设计[M].北京:清华大学出版社,2002,03[2] 王黎,袁永康战略[M].北京:清华大学出版社,2002,01[3] 谭浩强.C程序设计第二版[M].北京:清华大学出版社,2003,03[4] 任哲.MFC Windows程序设计[M].北京:清华大学出版社,2004,06完成期限:2016.12.05—2017.01.05指导教师签名:课程负责人签名:随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。

对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。

在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。

尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。

即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。

为此开发一个交通择优系统是十分必要的。

采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规范化和自动化。

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

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

四、详细设计 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构课程设计--城市交通咨询系统、航班信息的查询与检索

数据结构课程设计--城市交通咨询系统、航班信息的查询与检索

课程设计题目:城市交通咨询系统一、课程设计的原始资料及依据在交通网络非常发达,交通工具和交通方式不断更新的今天,人们的出差、旅游或做其他的出行时,不仅关心节省交通运费问题,而且对里程和所需要时间等问题感兴趣。

可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

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

这个交通咨询系统可用回答旅客提出的各种问题。

二、课程设计主要内容及要求1. 建立交通网络图的存储结构。

2. 画出主要的功能结构图和主要模块的流程图。

3. 使用迪杰斯特拉算法:求一个城市到其它所有城市最短路径。

4. 使用弗洛伊德算法:求任意两个城市间最短路径。

三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。

一般不应少于3000字。

2.在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。

设计小组评语处注明设计组编号、设计组组长、设计组成员,并由设计组组长给出评语。

4.课程设计说明书手写或打印均可。

手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。

文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。

5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。

四、设计完成后应提交成果的种类、数量、质量等方面的要求1.完成“任务书”中指定的操作功能,运行稳定。

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

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

欢迎阅读榆林学院数据结构课程设计报告题目城市交通咨询系统1 .1.11.21.31.4 小结2.2.12.22.2.12.2.22.2.32.2.42.33.系统测试 (9)3.1操作说明 (9)3.2测试数据 (10)3.2.1用户进入界面: (10)3.2.2、具体功能的实现 (11)3.2.3、结束程序 (12)4.总结 (13)5.致谢 (13)6.附录 (14)1.系统需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

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

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

(2)用户根据自己设置的城市个数和路径数,具体输入每个路径的起始点以及每条路径的长度。

(3)进入菜单选择界面(4)选择2,系统为用户进行提供任意城市的交通查询,即查询任意两个城市之间的一条最短路径。

(5)选择1,系统为用户提供指定城市的交通查询,即查询指定城市到其他城市之间的最短路径。

如若输入顶点超出范围显示错误,系统回到菜单重新选择(6)选择0,系统推出程序。

1.2功能需求分析城市交通咨询系统总体的设计目标:用《数据结构》中的邻接矩阵作数据结构,并结合数据结构有向图的最短路径计算方法,结合相应的数据算法以及c采用邻接矩阵表示法构造有向图G,n、e表示图的当前顶点数和边数∙用弗洛伊德算法求任意一对顶点的最短路径用函数 void Floyd(MGraph *G,int n) 来定义。

利用费洛伊德算法,求出最短路径。

1.4 小结从各种需求方面下手改编代码,并不断调试,让界面更加友好。

不断地尝试上,在各种问题上不断突破,慢慢的完善代码,等最大限度的满足用户需求。

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

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

交通咨询系统设计数据结构课程设计一、引言随着城市人口的增加和交通需求的不断增长,交通咨询系统变得越来越重要。

交通咨询系统可以提供准确的交通信息,帮助用户规划最佳的出行路线,减少交通拥堵和时间浪费。

本文将介绍一个交通咨询系统的设计,重点关注其数据结构的设计与实现。

二、系统需求分析在设计交通咨询系统的数据结构之前,首先需要对系统的需求进行分析。

用户使用该系统可以进行以下几个方面的咨询:1. 路线规划:根据用户提供的起点和终点,系统可以返回最佳的路线规划方案。

2. 实时交通信息:系统可以提供实时的交通信息,包括道路拥堵情况、车流量、事故等。

3. 公交查询:用户可以查询公交车的实时位置、到站时间等信息。

4. 地点搜索:用户可以根据关键词搜索附近的地点,如餐厅、加油站等。

三、数据结构设计基于以上需求,我们可以设计以下数据结构来实现交通咨询系统:1. 地点信息表:包含地点的名称、经度、纬度等信息。

可以使用哈希表或者树结构来存储地点信息,以便快速查询。

2. 道路网络图:采用图的数据结构来表示道路网络,每个路口和道路分别表示图的顶点和边。

可以使用邻接矩阵或者邻接表来实现图。

3. 路线规划表:记录用户查询的起点和终点,以及最佳路线的详细信息。

可以使用链表或者数组来实现路线规划表。

4. 交通信息表:记录道路的实时交通信息,包括车流量、拥堵情况等。

可以使用哈希表或者树结构来存储交通信息。

5. 公交车信息表:记录公交车的实时位置、到站时间等信息。

可以使用链表或者数组来实现公交车信息表。

四、系统实现在设计完数据结构之后,需要实现相应的算法来支持系统的功能。

以下是几个重要的算法:1. 路线规划算法:可以使用Dijkstra算法或者A*算法来实现最短路径的计算。

2. 地点搜索算法:可以使用字符串匹配算法或者正则表达式来实现关键词搜索。

3. 实时交通信息更新算法:可以使用定时任务或者事件驱动的方式来更新交通信息。

4. 公交车位置更新算法:可以使用定时任务或者事件驱动的方式来更新公交车位置信息。

数据结构课程设计:交通资讯系统

数据结构课程设计:交通资讯系统

目录一、实验目的: (2)二、实验要求: (2)三、总体设计: (2)四、详细设计: (3)五、程序代码: (4)六、测试 (16)七、总结: (22)参考文献 (22)交通咨询系统一、实验目的:1、充分了解并掌握最短路径问题及其应用。

学习迪杰斯特拉算法和弗洛伊德算法。

2、根据有向图的存储结构解决实际问题。

3、了解程序模块化的过程。

4、给用户提供路径咨询。

实现了帮助用户了解全国各大城市间往来的最短路径问题。

5、可以提供用户查询各大城市的相关信息。

二、实验要求:设计一个交通咨询系统,能让旅客在任一个城市顶点到另一个城市顶点之间的最短路径(里程)或最低花费或最少时间等问题。

(城市名称用数字代替)。

本程序可以在TC2.0和VC6.0中运行。

三、总体设计:本程序页面清晰,功能明确,主要分为两个部分,即交通查询部分和管理员管理部分。

交通查询部分又分为城市信息、城市路径、最短路径查询3个模块,而其中最短路径查询系统又分为2个城市之间的最短路径和1个城市到其它各城市之间路径的查询。

而管理员管理的部分则包括交通查询里面的功能以及添加城市、添加城市间的路径、删除城市以及删除两个城市之间的路径等部分。

四、详细设计:详细设计全国交通信息咨询系统的存储结构:struct city_info /*城市信息结构*/{ char name[20];char info[100];}cities[SIZE_city];struct way_info /*路径信息结构*/{ int start_id;int end_id;int dist;}ways[SIZE_way];struct path_info /*路径查询结构*/{ int count;int path[SIZE_city];};typedef struct Graph{ char vexs[SIZE_city];/*顶点*/ int arcs[SIZE_city][SIZE_c ity];/*邻接矩阵*/ int vexnum;/*顶点数*/ int arcnum; /*弧数*/ }Graph;划分本程序采用自顶向下的编程模式,分为7个主模块,即考虑到7种算法的实现:1、显示全国各地城市相关信息的算法;void ShowCity();初始条件:void ReadCitiesFile();void ReadW aysFile();读取数据成功,操作结果:根据用户查询城市的名字,输出城市的特色;2、添加城市及城市相关信息的算法;void AddView();初始条件:构造了结构体数组views[VIEW_SIZE];操作结果:添加一个城市顶点到views数组中,并将数据输出到VIE WS文件中保存。

数据结构课程设计-应用java实现全国交通咨询系统

数据结构课程设计-应用java实现全国交通咨询系统

6.用户使用说明双击打开界面,在起始站和终点站所在文本框输入对应名称,选择最优决策和交通工具,点击查询,若起始站或终点站有一个不存在,都会跳出对应的提示信息,若起始站和终点站都存在,点击查询按钮就会显示对应的信息。

也可以点击帮助,就会弹出帮助信息的对话框。

如果想删除或添加火车列表或飞机航班表,点击编辑按钮,选中要操作的选项,点击开始编辑。

若是选择删除,就在弹出的对话框中输入对应起始站和终点站名,点击删除即可,然后便会弹出提示信息。

若是添加,就在对应的文本域按照规则添加信息,点击添加即可,也可以点击添加帮助按钮查看细节。

编辑完重启即可查询刚编辑完的信息。

7.测试结果1.测试数据本次测试所用测试数据如下:火车列表:G005--->北京--->上海--->8:00--->12:00--->400D002--->北京--->广州--->8:00--->15:30--->1100G309--->沈阳--->北京--->5:00--->12:00--->300T001--->兰州--->北京--->8:00--->13:00--->500G002--->沈阳--->上海--->12:00--->15:30--->800G329--->广州--->桂林--->5:00--->12:00--->400T001--->桂林--->成都--->8:00--->13:00--->500Z509--->上海--->广州--->16:00--->17:30--->520飞机列表:P004--->上海--->北京--->10:00--->15:00--->600P005--->厦门--->广州--->9:00--->12:00--->300P005--->北京--->厦门--->9:00--->12:00--->163P001--->兰州--->北京--->8:00--->13:00--->500P005--->广州--->武汉--->9:00--->12:00--->560P101--->上海--->厦门--->13:00--->16:30--->830由此可列出火车图和飞机图如下:2.测试查询截图:(1)双击打开界面(2)输入起始站和终点站,选择最快捷火车(3)点击查询(4)选择最省钱(5)更换终点站(6)跟换最优决策(7)多中转站(8)终点站不存在(9)起始站不存在(10)起始站终点站都不存在(11)交通工具选用飞机最优选择:最快捷(12)最优选择改为:最省钱(13)多中转站3.编辑信息(1)点击编辑信息按钮(2)下拉框一览(3)选中删除飞机航班表,点击开始编辑,弹出对话框如下(4)查看未删除前的文档(5)输入起始站终点站(6)点击删除,弹出对话框(7)查看文档,对应的信息不见了(8)重新输入查询(9)点击编辑信息选中添加(10)点击开始编辑,弹出对话框(11)查看未添加前的火车列表(12)点击添加帮助(13)输入信息(14)点击添加(15)关闭添加界面后稍等片刻,查看火车列表文档,输入的信息已经写入到文档中(16)回到主界面查询输入的信息3.帮助按钮4.分析经过分析,以上输出的信息基本正确,基本功能也可以实现,但是还存在个别问题尚未解决,由于编者能力有限,至今仍未解决。

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

信息科学与工程学院课程设计任务书题目:交通咨询系统设计学号: 201112220141姓名:年级:专业:计算机应用与技术课程:数据结构指导教师:职称:完成时间:课程设计任务书及成绩评定一、需求分析设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的最短路径(里程)或最低花费或最少时间等问题。

对于不同的咨询要求,可输入城市间的路程或所需时间或所需费用。

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

1.1.1建立图的存储结构邻接矩阵是表示图形中顶点之间相邻关系的矩阵。

图的邻接矩阵是定义如下的n 阶方阵:设G=(V ,E )是一个图,结点集为{}n v v v V ,,,21 =。

G 的邻接矩阵,E,,0E,,)(,)(⎪⎩⎪⎨⎧>∉<∞>∈<==⨯⨯j i j i j i j i n n j i ij n n ij v v v v v v v v w a a A )或当(,或)或当(, 当邻接矩阵的行表头、列表头顺序一定时,一个图的邻接矩阵表示是唯一的。

图的邻接矩阵表示,除了需用一个二维数组存储顶点之间的相邻关系的邻接矩阵外,通常还需要使用一个具有n 个元素的一维数组来存储顶点信息,其中下标为i 的元素存储顶点i 的信息。

因此,图的邻接矩阵的存储结构定义如下:1.1.2 单源最短路径最短路径的提法很多。

在这里先讨论单源最短路径问题:即已知有向图(带权),我们希望找出从某个源点S ∈V 到G 中其余各顶点的最短路径。

为了叙述方便,我们把路径上的开始点称为源点,路径的最后一个顶点为终点。

那么,如何求得给定有向图的单源最短路径呢?迪杰斯特拉(Dijkstra )提出按路径长度递增产生诸点的最短路径算法,称之为迪杰斯特拉算法。

迪杰斯特拉算法求最短路径的实现思想是:设G=(V ,E )是一个有向图,结点集为,}v ,,v ,{v V n 21⋯=,cost 是表示G 的邻接矩阵,cost[i][j]表示有向边<i,j>的权。

若不存在有向边<i,j>,则cost[i][j]的权为无穷大(这里取值为32767)。

设S 是一个集合,其中的每个元素表示一个顶点,从源点到这些顶点的最短距离已经求出。

设顶点v 1为源点,集合S 的初态只包含一个元素,即顶点v 1。

数组dist 记录从源点到其他顶点当前的最短距离,其初值为dist[i]=cost[v 1][i],i=1,2,……,n 。

从S 之外的顶点集合V-S 中选出一个顶点w ,使dist[w]的值最小。

于是从源点到达w 只通过S 中顶点,把w 加入集合S 中,调整dist 中记录的从源点到V-S 中每个顶点v 的距离:从原来的dist[v]和dist[w]+cost[w][v]中选择较小的值作为新的dist[v]。

重复上述过程,直到V-S 为空。

最终结果是:S 记录了从源点到该顶点存在最短路径的顶点集合,数组dist 记录了源点到V 中其余各顶点之间的最短路径,path 是最短路径的路径数组,其中path[i]表示从源点到顶点i 之间的最短路径的前驱顶点。

因此,迪杰斯特拉算法可用自然语言描述如下:1.1.3 任意一对顶点间最短路径任意一对顶点间最短路径问题,是对于给定的有向网络图G=(V ,E ),要对G 中任意一对顶点有序对“v,w(v ≠w)”,找出v 到w 的最短路径。

要解决这个问题,我们可以依次把有向网络图中每个顶点作为源点,重复执行前面讨论的迪杰斯特拉算法n 次,即可以求得每对顶点之间的最短路径。

这里还可以用另外一种方法,称作费洛伊德(Floyd )算法。

费洛伊德(Floyd )算法算法的基本思想是:假设求从顶点 v i 到v j 的最短路径。

如果从vi 到vj存在一条长度为arcs[i][j]的路径,该路径不一定是最短路径,还需要进行n次试探。

首先考虑路径<vi ,v1>和<v1,vj>是否存在。

如果存在,则比较<vi ,vj>和< vi,v1,vj>的路径长度,取长度较短者为当前所求得的最短路径。

该路径是中间顶点序号不大于1的最短路径。

其次,考虑从vi 到vj是否包含有顶点v2为中间顶点的路径<vi,…,v2,…,vj>,若没有,则说明从vi到vj的当前最短路径就是前一步求出的;若有,那么<vi ,…,v2,…,vj>可分解为<vi, (v)2>和<v2,…,vj>,而这两条路径是前一次找到的中间顶点序号不大于1的最短路径,将这两条路径长度相加就得到路径<vi ,…,v2,…,vj>的长度。

将该长度与前一次中求出的从vi 到vj的中间顶点序号不大于1的最短路径比较,取其长度较短者作为当前求得的从vi 到vj的中间顶点序号不大于2的最短路径。

依此类推,直到顶点vn 加入当前从vi到vj的最短路径后,选出从vi到vj的中间顶点序号不大于n的最短路径为止。

由于图G中顶点序号不大于n,所以vi 到vj的中间顶点序号不大于n的最短路径,已考虑了所有顶点作为中间顶点的可能性,因此,它就是vi 到vj的最短路径。

1.2 程序流程图二、详细设计2.1 建立有向图的存储结构void CreateMGraph(MGraph * G,int n,int 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");}2.2迪杰斯特拉算法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;elseP2[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");}}2.3 费洛伊德算法void Floyd(MGraph *G,int n){ int i,j,k,v,w;for(i=1;i<=n;i++)for(j=1;j<=n;j++){ if(G->arcs[i][j]!=Maxint)P[i][j]=j;elseP[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];;}}}}2.4 运行主控程序void main(){ MGraph *G;int m,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("1.求一个城市到所有城市的最短路径\n");printf(“2.求任意的两个城市之间的最短路径\n");printf(" 请选择:1 或 2,选择 0 退出:");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",k);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("结束求最短路径");}三、调试分析编译: 在第一次编译时出现了很多错误,是因为我对C语言的不熟练,比如调用费洛伊德算法时出现了调用的错误,找了好久,才改正过来,还有就是for 语句的运用,由于本次程序要用很多for循环,我把一次for循环放到了上面for循环中,导致程序不能正确输出结果。

相关文档
最新文档