景区旅游信息管理系统

上传人:l**** 文档编号:145854225 上传时间:2020-09-23 格式:DOC 页数:28 大小:1.22MB
返回 下载 相关 举报
景区旅游信息管理系统_第1页
第1页 / 共28页
景区旅游信息管理系统_第2页
第2页 / 共28页
景区旅游信息管理系统_第3页
第3页 / 共28页
景区旅游信息管理系统_第4页
第4页 / 共28页
景区旅游信息管理系统_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《景区旅游信息管理系统》由会员分享,可在线阅读,更多相关《景区旅游信息管理系统(28页珍藏版)》请在金锄头文库上搜索。

1、校园旅游信息管理系统1.1项目需求分析在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。任务中景点分布是一个无向带权连通图,图中边的权值是景点之间的距离。1)景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路图,导游线路图用有向图表示。遍历采用深度优

2、先策略,这也比较符合游客心理。(2)为了使导游线路图能够优化,可通过拓朴排序判断图中有无回路,若有回路,则打印输出回路中的景点,供人工优化。(3)在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离。(4)在景区建设中,道路建设是其中一个重要容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。因此归纳起来,本任务有如下功能模块:创建景区景点分布图;输出景区景点分布图(邻接矩阵)输出导游线路图;判断导游线路图有无

3、回路;求两个景点间的最短路径和最短距离;输出道路修建规划图。主程序用菜单选项供用户选择功能模块。1.2项目设计流程 1.2.1项目总体框架校园旅游信息管理系统创建景区景点分布图输出景区景点分布图输出景区导游线路图导游线路图有无回路两个景点间的最短路径输出道路修建规划图1.2.2项目数据结构#ifndef SUCCESS/标志位成功#define SUCCESS1#endif#ifndef FAILURE/标志位失败#define FAILURE0#endif#ifndef INF /标志位无穷#define INF 0x3f3fffff#endif#ifndef MAXNUM #define

4、MAXNUM20#endiftypedef bool STATUS;/定义函数状态数据类型typedef char VERTEXTYPEMAXNUM11;/定义顶点向量数据类型typedef int ADJMATRIXMAXNUMMAXNUM;/定义邻接矩阵数据类型typedef struct GRAPH/定义图数据类型VERTEXTYPE Vexs;/图的顶点向量ADJMATRIX Arcs;/图的邻接矩阵int VexNum;/图的当前顶点int ArcNum;/图的当前弧*PGRAPH;/定义图的指针数据类型typedef struct CLOSEDGE/定义辅助数组数据类型VERTEX

5、TYPE Vexs;/图的顶点向量int LowcostMAXNUM;/*PCLOSEDGE;/定义辅助数组指针数据类型1.2.3项目模块设计创建景区景点分布图一. 邻接矩阵 (Adjacency Matrix)(二维数组表示法)在图的邻接矩阵表示中,有一个记录各个顶点信息的顶点表,还有一个表示各个顶点之间关系的邻接矩阵。设图 A = (V, E)是一个有 n 个顶点的图, 图的邻接矩阵是一个二维数组 A.edgenn,定义(满足如下条件的n阶矩阵):无向图数组表示法特点:1)无向图邻接矩阵是对称矩阵,同一条边表示了两次;2)顶点v的度:在无向图中等于二维数组对应行(或列)中1的个数;在有向图

6、中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 j 列 1 的个数可得顶点 j 的入度。3)判断两顶点v、u是否为邻接点:只需判二维数组对应分量是否为1;4)顶点不变,在图中增加、删除边:只需对二维数组对应分量赋值1或清0;5)设存储顶点的一维数组大小为n(图的顶点数n), G占用存储空间:n+n2;G占用存储空间只与它的顶点数有关,与边数无关;适用于边稠密的图;流程图:程序:/创建景区景点分布图STATUS CreateGraph(PGRAPH pGraph)printf(ttt_n);printf(nttt$t创建景区景点分布图t$n);printf(ttt_n);/初始化图

7、的顶点数printf(ttt初始化顶点数和弧度数.n);printf(ttt请输入图的顶点数(VexNum);/检查if(pGraph-VexNum20)printf(ttt警告:输入数据错误!n);printf(ttt按任意键回主菜单!);getch();return FAILURE;/初始化图的弧数printf(ttt请输入图的弧度数(ArcNum);/检查if(pGraph-ArcNum20)printf(ttt警告:输入数据错误!n);printf(ttt按任意键回主菜单!);getch();return FAILURE;/初始化图的顶点名称printf(ttt-n);printf(t

8、tt初始化的顶点名称.n);for(int i=0;iVexNum;i+)printf(ttt请输入第%d个顶点名称:,i+1);scanf(%s,pGraph-Vexsi);/初始化图的弧权值为最大值for(i=0;iVexNum;i+)for(int j=0;jVexNum;j+)pGraph-Arcsij=INF;/输入弧的信息printf(ttt-n);printf(ttt初始化的弧的信息.n);printf(ttt请输入弧的信息(注:从0开始):n);for(i=0;iArcNum;i+)int Stav,Endv,Weight;printf(ttt请输入第%d条弧(格式:Vi Vj

9、 Weight):,i+1);scanf(%d%d%d,&Stav,&Endv,&Weight);pGraph-ArcsEndvStav=Weight;pGraph-ArcsStavEndv=Weight;printf(ttt创建景区景点分布图成功!n);printf(ttt按任意键回主菜单!);getch();return SUCCESS;输出景区景点分布图流程图:程序:/输出景区景点分布图STATUS PrintGraph(const PGRAPH pGraph)printf(ttt_n);printf(nttt$t显示景区景点分布图t$n);printf(ttt_nn);/printf(

10、t景区景点名称.nt);for(int i=0;iVexNum;i+)printf(%st,pGraph-Vexsi);printf(nnt景区景点信息.n);for(i=0;iVexNum;i+)printf(t_nt);for(int j=0;jVexNum;j+)if(pGraph-Arcsij=INF)printf(t);elseprintf(%dt,pGraph-Arcsij);printf(n);printf(t_nt);printf(按任意键回主菜单!);getch();return SUCCESS;输出景区导游线路图图的遍历从图中某一顶点出发访遍图中所有的顶点,且使每个顶点仅被访问一次,这一过程就叫做图的遍历 (Traversing Graph)。图中可能存在回路,且图的任一顶点都可能与其它顶点相通,在访问完某个顶点之后可能会沿着某些边又回到了曾经访问过的顶点。为了避免重复访问,可设置一个标志顶点是否被访问过的辅助数组 visited 。辅助数组 visited 的初始状态为 0, 在图的遍历过程中, 一旦某一个顶点 i 被访问, 就立即让 visited i 为 1, 防止它被多次

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号