1 问题描述
如今生活水平提高,大家都喜欢在假期中到一个旅游景点参观,在旅游景区中经常听到游客打听从一个景点到另一个景点的最短路径和最短距离,这类不喜欢按照导游图来游览的游客常常需要一个景区管理系统来挑选自己喜欢的旅游景点,再规划一个最短路径和最短距离来游览,一边节省时间跟提高旅游效率。
2 数据结构的设计
- 建立一个景区旅游信息管理系统,实现如下功能:
- 创建景区景点分布图
- 通过一个邻接矩阵(实质是一个二维数组,m[i][j]表示从i到j的权值大小,为零表示没有直达的路径)记录景区景点的分布图
- 输出景区景点分布图(邻接矩阵)
- 通过扫描邻接矩阵输出景区景点分布图
- 输出导游线路图:深度优先策略
- 首先通过遍历景点,通过用户给出的一个入口景点c,建立一个导游线路图,导游线路图用有向图表示。遍历采用深度优先策略(递归),这个也是正常的游客的心理
- 判断导游线路图有无回路:拓扑排序(查找入度大于1的景点)
- 为了使导游线路图能够优化,可以通过拓扑排序判断图中有无回路,若有回路则打印输出回路中的景点,供人工优化
- 求两个景点间的最短路径和最短距离:floyd算法
- 在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离
- 输出道路修建规划图:prime算法
- 在景区建设中,道路建设是其中一个重要的内容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题,通过prime算法来求最小生成树
通过修改后添加的功能:
- 将景区景点分布图安装指定的文件名(可以景区名字命名)保存到默认的目录file下
- 在这里我遇到了路径格式问题,通过查询资料得以解决这个问题
- 从默认目录file下读取指定文件名的景区景点分布图
- 这样就减少了每次都要创建景区景点分布图,也方便从已有的景区景点分布图导入系统,不用手动新建,实际应用中更加的方便人性化
- 为当前的景区添加景点道路
- 一开始没有将景区景点的路径清零,以至于添加景点道路后,再从新导入景点较少的景区景点分布图,再添加景点道路的时候发现之前的道路依然存在,因此在添加景点道路之前要将道路景区清零
![938700f5c55814e1267ccb2565fa37b3.png](https://i-blog.csdnimg.cn/blog_migrate/682b38e3ed8a38709d09aee0e2ced139.jpeg)
![8765551fcc7eba7160eca49f9a2cc141.png](https://i-blog.csdnimg.cn/blog_migrate/e36a055854e0525f4d767b46dff79bf9.png)
参考文档和完整的文档和源码下载地址:
https://www.write-bug.com/article/1626.html