数据结构 校园导游程序课程设计报告.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 校园导游程序课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2009 ~2010 学年第 二学期 课程 数据结构与算法 课程设计名称 校园导游程序 学生姓名 王 伟 学号 0804013006 专业班级 08计科(3)班 指导教师 李 红 沈亦军 2010 年 6 月 题目:校园导游程序题目:用无向网表示你所在学校的校园景点平面图,图中定点表示主要景点,存放景点的编号、名称、简介等信息。要求能够回答有关景点介绍、游览路经等问题。 要求:(1)查询各景点相关信息; (2)查询图中任意两个景点的最短路径。 (3)查询图中任意两个景点的所有路径。. 选作内容:求多个景点的最佳游览路经。 一、问题分析与任务定义 1、问题分析 我们将每个建筑看作图中的一个点,而建筑物之间直接相连的道路看作是无向图的边, 那么就可以得到一个无向图,而问题也就变成无向图中给定起点和终点的最短路径问题。而求查询图中任意两个景点的所有路径。就可以用深度优先遍历算法来实现。任意两个顶点之间的最短路径用Dirjstra算法来实现。从v1到v2的路径要么是v1-v2,要么中间经过了若干顶点。显然我们要求的是这些路径中最短的一条。这样一来,问题就很好解决了——最初都是源点到目的点,然后依次添加顶点,使得路径逐渐缩短,顶点都添加完了,算法就结束了。景点信息的查询可通过循环查找图中的景点,然后输出其对应的Introducion。在这里用Create_Mgraph()函数实现原始数据的输入 。 2、任务定义 根据设计的基本要求,可知本系统应实现以下几个功能: (1)景点查询:景点查询,输出所查询景点的相关信息 (2)景点之间最佳路径查询功能:输出所选择的两点之间的最短路径及路径长度。 (3)两景点间所有路径:输出两点间存在的所有路径。 二、数据结构的选择和概要设计 1、图的定义:图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。图的信息以邻接矩阵存储,利用二维数组作为矩阵坐标,二维数组的值表示图的两点间的距离,即无向图的权值,若两点间无直接路径,则以无穷大(此程序中为INF=20000)为权值。 2、校园导游程序的数据结构类型如下: #define INF 20000 //用20000表示无穷大 #define max 20 //最多顶点个数 typedef struct{ //定义景点类型 int number; //景点序号 char *sight; //景点的名称 char *Introduction; //景点的简介 }Vertex; typedef struct{ //定义图的类型 int m; //景点个数 int n; //边或弧的数目 Vertex vexs[max]; //一维数组,存储景点 int edges[max][max]; //二维数组,存储边或弧的权值 }MGraph; int D[max];//全局数组,用来存放路径上的个顶点 int visited[max];//全局数组,用来记录各顶点被访问的情况 int a=0;//全局变量,用来记录每对顶点之间的所有路径的条数 3、概要设计 图的信息以邻接矩阵形式存储,邻接矩阵以二维数组的数据结构存储。vexs[i][j];当i=j及i点与j点无直接连通时,其值为无穷大,定义一个很大的整数INF代替无穷大。当i与j点邻接时,其值为两点间的权值即两景点距离。 (1)查询景点信息 1按照景点编号查询 2按照景点名称查询 (2)两点间最短路径 利用迪杰斯特拉(Dirjstra)算法求两点之间最短路径。 (3)两点间所有路径 利用邻接矩阵的“深度优先遍历”查找路径,从起始点a开始依次遍历,如果找到终点b,则输出相应路径,否则继续递归查找。程序框架图如图1所示: 图1 程序框架 三、详细设计和编码 1、首先确定以无向图为数据结构的校园地图如图2: 图2 校园地图 2、设计主函数:调用各子函数完成选择功能。主函数中以switch语句选择操作: 1━━查询景点间的所有路径 2━━查询景点的信息: 1按照景点编号查询 2按照景点名称查询 3━━查询景点间的最短游览路径 e━━退出程序 3、按深度优先遍历输出图中任意两个景点间的所有路径,通过调用函数Searchpath2(MGraph *G), disppath(MGraph *G,int i,int j)和path(MGraph *G,int i,int j,int k)其中函数

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档