公园导游图课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
题目公园导游图
专业网络工程
班级1班
姓名尹颖
指导老师孙菁
2014 年12 月28 日
课程设计(论文)
课程设计任务书
2014~2015学年第 1学期
学生姓名:尹颖吴东旭许益强葛溆李永康朱世豪
专业班级: 12网络工程
指导教师:孙菁
一、课程设计题目:公园导游图
二、课程设计内容
给出一张某公园的导游图,游客通过终端询问可知:从某一景点到另一景点的最短路径。游客
从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就
在入口旁边)。
三、进度安排
1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2.完成最低要求:建立一个文件,包括5个景点情况,能完成遍历功能;
3.进一步要求:进一步扩充景点数目,画出景点图,有兴趣的同学可以自己扩充系统功能。
四、基本要求
1. 界面友好,函数功能要划分好
2. 总体设计应画一流程图
3. 程序要加必要的注释
4. 要提供程序测试方案
5. 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值
的。
目录
摘要
1 问题描述 (3)
1.1图、无向图 (3)
1.1.1图的存储结构 (3)
1.1.2 图的邻接矩阵表示法 (3)
1.2算最短路径 (4)
1.3无向图遍历 (4)
1.4广度优先搜索 (4)
2.系统分析 (5)
2.1系统流程图 (5)
3 系统设计 (5)
3.1主要数据结构 (6)
3.2主要函数说明 (6)
3.3主要算法说明 (6)
3.3.1数组表示法 (6)
3.3.2F LOYD算法 (6)
4 心得体会 (7)
附录一:源程序 (8)
附录三:参考文献························································错误!未定义书签。
摘要
计算机解决一个具体问题时,大致需要经过下列几个步骤:首先要从具体问
题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法(Algorithm),最后编出程序、进行测试、调整直至得到最终解答。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语
言加以描述。计算机算法与数据的结构密切相关,算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。运算是由计算机来完成,这就要设计相应
的插入、删除和修改的算法。也就是说,数据结构还需要给出每种结构类型所定
义的各种运算的算法。
1.问题描述
课程设计(论文)
1.1图的存储结构
图的存储方式很多,这里用的是邻接矩阵的方式。为了适合用C 语言描述,以下假定顶点序号从0开始,即图G 的顶点集的一般形式是V(G)={v 0 ,v i ,…,V n-1 }。
1.1.1 图的邻接矩阵表示法
(1)用邻接矩阵表示顶点之间的相邻关系; (2)用一个顺序表来储存顶点信息
1.1.2 图的邻接矩阵(Adacency Matrix)
设G=(V ,E)是具有n 个顶点的图,则G 的邻接矩阵是具有如下性质的n 阶方阵: 若G是网络,则邻接矩阵可定义为:
1.2求最短路径
给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数。另外,还给定 V 中的一个顶点,称为源。现在我们要计算从源到所有其他各顶点的最短路径长度。这里的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。
1.2.1单源最短路径问题
Dijkstra 提出按各顶点与源点v 间的路径长度的递增次序,生成到各顶点的最短路径的算法。既先求出长度最短的一条最短路径,再参照它求出长度次短的一条最短路径,依次类推,直到从源点v 到其它各顶点的最短路径全部求出为止。
1.3求最小生成树
对于连通的带权图(连通网)G ,其生成树也是带权的。生成树T 各边的权值总
⎪⎩⎪⎨
⎧>∈<=,其它
0E(G)
v ,v 或)v ,(v 若1,],[j i j i j i A
和称为该树的权,记作:
Te,W(u , v)
TE表示T的边集
w(u,v)表示边(u,v)的权。
权最小的生成树称为G的最小生成树(Minimum Spanning Tree)。最小生成树可简记为MST。
最小生成树性质:
设G=(V,E)是一个连通网络,U是顶点集V的一个真子集。若(u,v)是G中一条“一个端点在U中(例如:u∈U),另一个端点不在U中的边(例如:v∈V-U),且(u,v)具有最小权值,则一定存在G的一棵最小生成树包括此边(u,v)。
2.系统分析
2.1系统流程
本系统主要是实现图的最短路径问题
课程设计(论文)
图2-1
2.2系统相关抽象数据类型
2.2.1图的邻接矩阵存储结构形式说明
#define MaxVertexNum l00 //最大顶点数,应由用户定义
typedef char VertexType; //顶点类型应由用户定义
typedef int EdgeType; //边上的权值类型应由用户定义
typedef struct{
VextexType vexs[MaxVertexNum] //顶点表
EdeType edges[MaxVertexNum][MaxVertexNum];
//邻接矩阵,可看作边表
int n,e; //图中当前的顶点数和边数
}MGragh;
2.2.2建立无向网络的算法
void CreateMGraph(MGraph *G)
{//建立无向网的邻接矩阵表示
int i,j,k,w;