欢迎来到天天文库
浏览记录
ID:14766754
大小:84.00 KB
页数:13页
时间:2018-07-30
《景区旅游管理系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、景区旅游信息管理系统1.1.1项目需求在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。任务中景点分布是一个无向带权连通图,图中边的权值是景点之间的距离。 (1)景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导
2、游线路图,导游线路图用有向图表示。遍历采用深度优先策略,这也比较符合游客心理。 (2)为了使导游线路图能够优化,可通过拓朴排序判断图中有无回路,若有回路,则打印输出回路中的景点,供人工优化。 (3)在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离。 (4)在景区建设中,道路建设是其中一个重要内容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。因此归纳起来,本任务
3、有如下功能模块: 创建景区景点分布图; 输出景区景点分布图(邻接矩阵) 输出导游线路图; 判断导游线路图有无回路; 求两个景点间的最短路径和最短距离; 输出道路修建规划图。 主程序用菜单选项供用户选择功能模块。 1.1.2设计流程主程序采用设计主菜单调用若干功能模块,同时在主程序中定义两个邻接链表类型变量G和G1,作为调用子函数的参数。 建图子模块建立无向带权图,输入顶点信息和边的信息,输出邻接链表G。由于是无向边,输入一条边时构建两条边。 输出图子模块:从邻接链表g转换成邻接矩阵a,并输出邻接矩阵a。图中边的权值∞用32767表示。
4、遍历子模块:通过遍历图G,只得到遍历的顶点序列。我们先将顶点序列存在数组vex中,然后再转换成导游线路存入数组vex1中,最后生成导游线路图G1(同样用邻接链表存储,供拓朴排序用)。将遍历顶点序列转换成导游线路。 图10-43(a)(b)(c)三个无向图的深度优先搜索遍历的结果均为v1→v2→v3→v4。但它们的导游线路图却不同。图(a)的导游线路图为v1→v2→v3→v4,与遍历结果相同。 图(b)的导游线路图为v1→v2→v3→v2→v4,图(c)的导游线路图为v1→v2→v3→v2→v1→v4。 遍历结点序列与导游线路图转换的策略: 设
5、遍历结果为v1→v2→…→vi→vi+1→…→vn 对于结点vi和vi+1,如果vi和vi+1存在边,则直接转换。 否则,加入边vi→vi-1,如果vi-1和vi+1存在边,则加入边vi-1→vi+1。 再否则,加入边vi-1→vi-2,如果vi-2和vi+1存在边,则加入边vi-2→vi+1。 如果vi-2和vi+1还不存在边,继续回溯,一定能找到某个整数k(因为景点分布图是连通图),使得vi-k和vi+1存在边,则加入边vi-k→vi+1。 在本任务中,转换后的线路图存于数组vex1中。流程图见10-29。拓朴排序子模块流程图,见图10
6、-39源程序,参见10.7节的samp10-8.c。求最短路径子模块流程图:见10-34。源程序,参见10.6节的samp10-6.c。求最小生成树子模块流程图:见19-33。源程序,参见10.6节的samp10-5.c。1.1.3数据结构景点的信息包括景点的名称和近邻景点之间的通路和距离。用邻接链表存储景点分布图的信息。(带权无向)图的邻接链表 /***************************************************************//*程序功能:建立一个旅游景区管理系统,实现旅游路线选择 */ /*
7、景区道路优化等功能 */ /***************************************************************/ #include“stdio.h” #include“stdlib.h” #include“string.h” #defineMAX_EDGE_NUM100/*定义图的最大边数*/ #defineMAX_VERTEX_NUM20 #defineMAXNUM32767 typedefcharVertex_type[10]; typedefstr
8、uctnode/*边表结点*/ { intadjvex;/*邻接点域*/ intweight;
此文档下载收益归作者所有