景区旅游管理系统
发布时间:
>>>>word
景区旅游信息管理系统
1.1.1项目需求
在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。
任务中景点分布是一个无向带权连通图,图中边的权值是景点之间的距离。
(1)景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路图,导游线路图用有向图表示。遍历采用深度优先策略,这也比较符合游客心理。
(2)为了使导游线路图能够优化,可通过拓朴排序判断图中有无回路,若有回路,则打印输出回路中的景点,供人工优化。
(3)在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离。
(4)在景区建设中,道路建设是其中一个重要内容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。
因此归纳起来,本任务有如下功能模块:创建景区景点分布图;
输出景区景点分布图(邻接矩阵)输出导游线路图;判断导游线路图有无回路;
求两个景点间的最短路径和最短距离;输出道路修建规划图。
主程序用菜单选项供用户选择功能模块。
1.1.2设计流程
主程序采用设计主菜单调用若干功能模块,同时在主程序中定义两个邻接链表类型变量
1
>>>>>>>>word
>>>>G和G1,作为调用子函数的参数。
建图子模块建立无向带权图,输入顶点信息和边的信息,输出邻接链表G。由于是无向边,输入一条边时构建两条边。
2
>>>>>>>>word
>>>>
输出图子模块:从邻接链表g转换成邻接矩阵a,并输出邻接矩阵a。图中边的权值∞用32767表示。>>>>
遍历子模块:通过遍历图G,只得到遍历的顶点序列。我们先将顶点序列存在数组vex
3
>>>>>>>>word
>>>>中,然后再转换成导游线路存入数组vex1中,最后生成导游线路图G1(同样用邻接链表存储,供拓朴排序用)。将遍历顶点序列转换成导游线路。
图10-43(a)(b)(c)三个无向图的深度优先搜索遍历的结果均为v1→v2→v3→v4。但它们的导游线路图却不同。图(a)的导游线路图为v1→v2→v3→v4,与遍历结果相同。
图(