公园导游图数据结构课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:数据结构本科学生课程设计(论文)
题目公园导游图
摘要
随着中国经济不断的发展,城市发展的越来越好,越来越多的人融入了城市生活。公园成为人们散心,娱乐的场所,公园也随即也在不断的扩张,变得越来越全面,但是这不利于逛公园的人寻找自己想要去的地方,尤其是对公园陌生的游客,更是不知道如何走,才能更好的游玩公园,达到的最好经济效益。所以针对这种现象,为了方便游客,开发这么一款公园导游系统软件。
系统是用C语言实现,基于visual c++6.0 开发的,采用图这么一种数据结构,采用邻接矩阵的存储方式,用一个二维数组来记录所有的边,为了实现地图的随时更新,采用了静态链表实现对图的接点的添加,删除。
本系统设计基于图的结构,创建一个无向图,针对游客的需求,将涉外公园的景点编号、名称、介绍等信息放入到图的顶点当中并保存景点文本文件中,将两个景点的编号和它们之间的距离当权值也保存在相同的文本文件中,利用迪杰特斯拉算法来求从一个景点到另一个景点的最短距离,利用Serach();查找景点,本显示他的信息,从而解决了要查找景点信息和两个景点之间的最短路径的问题,最后按照显示屏上的提示进行相关的操作。
关键词:公园导游;图;邻接矩阵;二维数组;静态链
目录
第一章前言 (1)
1.1课题的研究背景、要求和意义 (1)
1.2课题的目标、研究范围 (1)
1.3理论技术方案的选取 (2)
1.4研究方法 (2)
1.5结构与安排 (2)
第二章系统功能分析 (4)
2.1可行性分析 (4)
2.1.1技术可行性 (4)
2.1.2 工具可行性 (4)
2.1.3 经济可行性 (4)
2.1.4 操作可行性 (5)
2.2需求分析 (5)
2.2.1 功能需求 (5)
2.2.2 输入输出的要求 (5)
第三章总体设计 (6)
3.1程序模块 (6)
3.2系统涉及的数据结构 (6)
3.2.1 程序数据结构 (7)
3.2.2 具体数据类型定义 (7)
第四章详细设计 (9)
4.1创建图(F PRINT-L INK) (9)
4.2寻找最佳路径(DFST RAVERSE) (9)
4.3最短路径(S HORT P ATH) (10)
4.4遍历出某一起点到终点的所有路径(S EARCH A LL P ATH) (12)
4.5导入新文件(L OADNEWMAP) (13)
第五章系统实现 (14)
5.1程序执行之前的准备 (14)
5.2主界面 (14)
5.3游客界面 (15)
5.4系统用户界面 (15)
5.5浏览公园全景简图 (16)
5.6寻找某一起点的最佳路径和指定起点、终点的最短路径 (16)
5.7寻找指定起点、终点的所有路径 (17)
5.8删除,添加结点,保存和导入新地图 (17)
第六章解决的关键问题 (18)
6.1如何实现寻找最短路径功能 (18)
6.2如何实现深度优先搜索 (18)
6.3如何修改地图 (18)
6.4如何导入其他文件信息 (18)
第七章结论 (19)
结束语 (20)
参考文献 (21)
1.2求最短路径
给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数。另外,还给定 V 中的一个顶点,称为源。现在我们要计算从源到所有其他各顶点的最短路径长度。这里的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。
1.2.1单源最短路径问题
DIJKSTRA提出按各顶点与源点V间的路径长度的递增次序,生成到各顶点的最短路径的算法。既先求出长度最短的一条最短路径,再参照它求出长度次短的一条最短路径,依次类推,直到从源点V 到其它各顶点的最短路径全部求出为止。
1.3求最小生成树
对于连通的带权图(连通网)G,其生成树也是带权的。生成树T各边的权值总和称为该树的权,记作:
TE,W(U , V)
TE表示T的边集
W(U,V)表示边(U,V)的权。
权最小的生成树称为G的最小生成树(MINIMUM SPANNING TREE)。最小生成树可简记为MST。
最小生成树性质:
设G=(V,E)是一个连通网络,U是顶点集V的一个真子集。若(U,V)是G 中一条“一个端点在U中(例如:U∈U),另一个端点不在U中的边(例如:V∈V-U),且(U,V)具有最小权值,则一定存在G的一棵最小生成树包括此边(U,V)。
第一章前言
1.1课题的研究背景、要求和意义
现代公园范围的广阔,内容不断的增加,使得公园整个系统变得复杂。使用电脑对游客进行导游成为发展的趋势,以达到更好的为游客服务的目的。
对于公园的游客来说,他们要求:能够浏览整个公园的信息、查询每一个景点的信息、从任意景点遍历全部的景点、能够查找最短路径。对于系统用户来说,他们要求:删除地点、添加地点、添加路径、删除路径、保存修改、导入文件数据。
采用图这么一种数据结构,采用邻接表的存储方式,用一个二维数组来记录所有的边,为了实现地图的随时更新,采用了静态链表实现对图的接点的添加,删除。应用文件的读写来进行文件操作。
查找最短路径采用迪杰特斯拉算法实现,从任意景点遍历全部的景点采用深度优先遍历实现。
对于界面设计,游客不能进行地图的修改,更换,所以首先要验证身份,再出现对应的界面。
1.2课题的目标、研究范围
实现的目标:实现对某一个公园导游及地图的修改与更新的系统。
通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。
综合运用数据结构课程中学到的几种典型数据结构,如链表,栈,队列,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发,对自己学过的知识进一步的加深理解,对数据结构的算法思想要有更深的理解。
图(Graph)是一种较线性表和树更为复杂的数据结构。在线性表中,数据元素之间仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继;在树