- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构公园导游
1.课程设计的目的
(1) 熟练使用 C ++语言编写程序,解决实际问题;
(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
(3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
(4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
2.需求分析
(1)设计所在公园的公园平面图,所含景点不少于十个。以图中顶点表示园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个顶点之间的一条最短的简单路径。
(4)公园导游图的景点和道路的修改扩充功能。
(5)扩充道路信息,如道路类别(车道、人行道),以致可按客人所需分别查询人行路径或车行路径。
(6)扩充每个景点的林洁景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
(7)实现公园导游的仿真界面。
3.公园导游问题的设计
图1-1 函数调用图
4.调试分析
图1-2
图1-3
图1-4
图1-5
图1-6
5.小结
数据结构书中的迪杰斯特拉算法只能求出最短路径中有哪个景点,但无法求出这几个景点的经过顺序,所以先利用迪杰斯特拉算法记录下某个顶点求出到最短路径的顺序,然后再比对哪几个景点是最短路径里所经过的得出最短路径及景点路过的顺序。
6、参考文献
[1] 严蔚敏,吴伟民 编著. 数据结构(C 语言版)--北京: 清华大学出版社,2007.2
[2]严蔚敏,吴伟民 米 宁 编著. 数据结构题集(C 语言版)--北京: 清华大学出版社, 2007.3
[3]网上搜索相关程序作为参考
附录:#define Infinity 1000
#define MaxVertexNum 35
#define MAX 40
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
#includeiostream
using namespace std;
typedef struct arcell //边的权值信息
{
int adj; //权值
}arcell,adjmatrix[MaxVertexNum][MaxVertexNum]; //图的邻接矩阵类型
typedef struct vexsinfo //顶点信息
{
int position; //景点的编号
char name[32]; //景点的名称
char introduction[256]; //景点的介绍
}vexsinfo;
typedef struct mgraph //图结构信息
{
vexsinfo vexs[MaxVertexNum]; //顶点向量(数组)
adjmatrix arcs; //邻接矩阵
int vexnum,arcnum; //分别指定顶点数和边数
}mgraph;
//全局变量
int visited[35]; //用于标志是否已经访问过
int d[35]; //用于存放权值或存储路径顶点编号
mgraph campus; //图变量(大公园园)
// (1) 对图初始化
mgraph initgraph()
{
int i=0,j=0;
mgraph c;
c.vexnum =28; //顶点个数
c.arcnum =39; //边的个数
for(i=0;ic.vexnum ;i++) //依
文档评论(0)