ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:73.88KB ,
资源ID:17789581      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17789581.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(景区旅游信息管理系统Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

景区旅游信息管理系统Word格式文档下载.docx

1、小组成员任务分工:项目基本框架设计、项目工程中“4.cpp”文件“main.cpp”文件和“structure.h”文件 、后期的调试工作、PPT制作。项目工程中的“3.cpp”文件、课外实践报告。项目工程中的“2.cpp”文件。项目工程中的“1.cpp”文件。一、问题描述及分析在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线

2、路策略和制订景区道路铺设策略。任务中景点分布是一个无向带权连通图,图中边的权值是景点之间的距离。 (1)景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路图,导游线路图用有向图表示。遍历采用深度优先策略,这也比较符合游客心理。 (2)为了使导游线路图能够优化,可通过拓朴排序判断图中有无回路,若有回路,则打印输出回路中的景点,供人工优化。 (3)在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离。 (4)在景区建设中,道路建设是其中一个重要内容。

3、道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。因此归纳起来,本任务有如下功能模块:创建景区景点分布图;输出景区景点分布图(邻接矩阵)输出导游线路图;判断导游线路图有无回路;求两个景点间的最短路径和最短距离;输出道路修建规划图。主程序用菜单选项供用户选择功能模块。二、功能模块及结构描述1.结构: *图的邻接表存储结构*typedef struct ArcNode int adjvex;/该弧所指向的顶点的位置; int weight;/弧长度 struct ArcNode*nextarc; /指向下一条弧的指

4、针;ArcNode;typedef struct VNode VertexType data; /顶点信息 ArcNode *firstarc; /指向第一条依附该顶点的弧的指针VNode,*AdjList;typedef struct AdjList vertices; int vexnum,arcnum; /图的当前顶点数和弧数;ALGraph;/*end*/*图的邻接矩阵存储结构*typedef char VertexType; VertexType*vexs; /顶点向量; int*arcs; /邻接矩阵/存储对应的长度MGraph;/*end*/*十字链表存储结构*typedef s

5、truct ArcBox int tailvex,headvex; /该弧的尾和头顶点的位置 /该弧的长度; struct ArcBox *hlink,*tlink; /分别为弧头相同和弧尾相同的弧的链域ArcBox;typedef struct VexNode ArcBox *firstin,*firstout;/分别指向该顶点的第一条入弧和出弧VexNode;typedef struct VexNode *xlist; /表头向量 /当前顶点数和边数;OLGraph;/*end*/*求导游线路所用的结构(双向链表)*struct guideNode int adj; guideNode*n

6、ext;/指向节点后继 guideNode*prior;/指向节点前驱;2.功能模块:/*求导游线路图*void guideGraph(ALGraph&G,OLGraph&OG,guideNode*&H);/*创建有向图的十字链表*void createOLGraph(OLGraph&ag);/*创建图的邻接表存储结构*void createALGraph(ALGraph&/#/*转换成邻接矩阵*void transition(ALGraph&ag,MGraph&mg);/*输出邻接矩阵*void printMGraph(MGraph mg);/*确定该顶点在十字链表结构中顶点向量的位置*in

7、t LocateOLGraphGraph(OLGraph&ag,VertexType d);/*确定该节点在邻接表结构中顶点向量中的位置*int LocateVexALGraph(ALGraph&/*确定该节点在邻接矩阵结构中顶点向量中的位置*int LocateVexMGraph(MGraph&mg,VertexType d);/#/*深度优先遍历*void DFSTraverse(const ALGraph&G);/*从第v个顶点出发递归地深度优先遍历图G*void DFS(const ALGraph&G,int v);/*拓扑排序*int TopologicalSort(const OL

8、Graph&/*Floyd算法*void ShortestPath_FLOYD(ALGraph&G,int *&path,int *&d);/*还原最短路径(非递归算法)*void explainPath(int*path,int i,int j,int *S,int &top);/从i到j的路径/*输出路径及长度*void printPath(ALGraph&G,int *path,int *d);/*最小生成树(普利姆算法)*/辅助结构typedef struct VertexType adjvex; int lowcost;Closedeg,*CLOSEDEG;/*求出下一条最短的边*i

9、nt minimum(CLOSEDEG closedeg);/*输出最小生产树的各条边*void MiniSpanTree_PRIM( ALGraph&G,VertexType u);三、主要流程描述四、使用说明程序运行后,进入界面:备注:需按从1 到7的持续执行,因各模块不独立.在如上所示的界面下进行基本的操作。五、问题及解决方法问题:调试时数据录入问题 解决方法:使用文件保存图的信息 邻接表转换成矩阵时,那些在邻接表中体现不出的边如何赋值?创建邻接矩阵时,全部元素先初始化为0,在邻接表中能体现的 边赋值为相应的长度,而其余还为0 深度优先遍历时,如何保存遍历路径?用全局变量. (4)如何完

10、成从深度优先遍历序列到导游线路的转换?解决方法:开始时按”学生课外实践题目”中提供的算法设计,发现无法解决复杂的情况,”实践题目”中的算法是让p在深度优先遍历序列中回溯,我们用双向链表存储导游线路,并且让p在为完成的导游线路中回溯即可解决,在ppt中有详细解释. (5)在拓扑排序中如何统计各顶点入度? 解决方法:用图的十字链表存储结构. (6)在弗洛伊德算法中如何还原路径?用二维数组存储路径,使用非递归算法实现还原.六、课外实践总结1、通过课外实践使我们在巩固了原有的理论知识上,又培养了灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力,使我们体会到自身知识和能力在实际中的应用和发挥

11、。其次,它激发了我们创新意识,开发创造的能力和培养沟通能力。2、这次课外实践设计让我们受益匪浅。我们不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题。在完成实践报告的过程中,遇到一些困难,但经过共同努力,仔细研读教材和相关资料(网络),最终解决.既学到知识,我们也体会到了团队合作的重要性,锻炼了团队协作的意识,以及不怕困难,不惧失败的精神。3、通过这次课外实践,我们深刻的认识到了自己在学习方面的不足之处,但我们也认识到,要学好一门学科,没有刻苦钻研的精神是不行的,只有在不断的尝试中,经历失败,从失败中总结经验,然后再不断的尝试,才能获得成功。七、源代码“struct

12、ure.h”文件:#ifndef structre_h_h#define structre_h_h#includefstreamusing namespace std;#define MAX 10000/*图的邻接表存储结构*/#/#/*end*/#endif“ 1.cpp”文件#includestructure.h/*创建图的邻接表存储结构*ag) ifstream fin(test.txt,ios:in); if(fin=NULL) coutvnumanum;/输入顶点数,边数,和是否有信息的判断信息 ag.vexnum=vnum; ag.arcnum=anum; ag.vertices=

13、new VNodevnum;/开辟空间,存储顶点信息 for(i=0;iag.verticesi.data;/输入顶点信息 VertexType d1,d2; ArcNode *p;d1d2weight; m=LocateVexALGraph(ag,d1);/确定d1在顶点向量中的位置 n=LocateVexALGraph(ag,d2);/确定d2在顶点向量中的位置 p=new ArcNode;/开辟空间,存储边的信息 p-adjvex=m;weight=weight; /把该边链入邻接表nextarc=ag.verticesn.firstarc; ag.verticesn.firstarc=p;adjvex=n; /把对应的边链入邻接表nextarc=ag.verticesm.firstarc; ag.verticesm.firstarc=p; cout邻接表:ag

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1