校园导游系统实验报告

  • 格式:docx
  • 大小:34.20 KB
  • 文档页数:15

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

竭诚为您提供优质文档/双击可除校园导游系统实验报告

篇一:校园导游图系统数据结构实验报告

一.设计目的

通过布置具有一定难度的实际程序设计项目,使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;使学生掌握分析问题,求解问题的方法并提高学生设计编程实现的能力。

二.设计内容

用无向网表示学校的校园景点平面图,图中顶点表示主要景点,

存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。游客通过终端可询问:(1)从某一景点到另一景点的最短路径。(2)游客从公园进入,选取一

条最佳路线。

(3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。[基本要求]

(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,

边上的权值表示距离.为此图选择适当的数据结构。

(2)把各种路径都显示给游客,由游客自己选择浏览路线。(3)画出景点分布图于屏幕上。[实现提示] (1)构造一个无向图g并用邻接矩阵来存储。

(2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,

最短路径长度就用一维数组d[i]存放;i的范围:0~20。

(3)一维数组have[]是用来记录最短路径出现顶点的顺序。(4)根据起点和终点输出最短路径和路径长度。

三.概要设计

1.功能模块图;

2.各个模块详细的功能描述。

1.浏览校园全景:采用深度遍历遍历图进行所有景点浏览,将遍历景点信息输出

2.查看所有游览路线:用户输入一个景点,采用迪杰斯特拉算法将从该景点起所有路径查出并输出在屏幕上

3.选择出发点和目的地:用户输入一个出发点和一个目的地编号,采用弗洛伊德算法求出发点到目的地的最短路径

4.查看景点信息:直接用编号进行单个景点查询。四.详细设计重点设计及编码

在求最短路径时采用迪杰斯特拉算法

//迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点voidshortestpath_DIJ(mgraph*g) {//迪杰斯特拉算法,求从顶点v0到其余顶点的最短路经及其带权长度d[v]//若p[v][w]为1,则w是从v0到v的最短路经上的顶点//final[v]类型用于设置访问标志

intv,w,i,min,final[20],D[20],p[20][20],t=0,x,flag=1 ,v0;//vo为起始景点的编号while(flag){printf("请输入一个起始景点编

号:");scanf("%d",if(v0g->vexnum){printf("景点编号不存在!请重新输入景点编

号:");scanf("%d",}if(v0>=0}for(v=0;vvexnum;v++){fin al[v]=0;//初始化各顶点访问标志

D[v]=g->arcs[v0][v].adj;//v0到各顶点v的权值赋值给d[v]for(w=0;wvexnum;w++)//初始化p[][]数组,各顶点间的路径全部设置为空路径0p[v][w]=0;if(D[v]

final[v0]=1;//v0的访问标志设为1,v属于s集

for(i=1;ivexnum;i++)//对其余g.vexnum-1个顶点w,依次

求v到w的最短路径

{min=InFInITY;for(w=0;wvexnum;w++)//在未被访问的顶

点中,查找与v0最近的顶点

vif(!final[w])if(D[w]vexnum;w++)//修改v0到其余各顶点w的最短路径权值d[w]if(!final[w]//修改v0到w的权值d[w]for(x=0;xvexnum;x++)//所有v0到v的最短路径上的顶点x,都是v0到w的最短路径上的顶点

p[w][x]=p[v][x];p[w][w]=1;}}for(v=0;vvexnum;v++)//

输出v0到其它顶点v的最短路径

{if(v0!=v)printf("%s",g->vexs[v0].name);//输出景点

v0的景点名for(w=0;wvexnum;w++)//对图中每个顶点w,试探w是否是v0到v的最短路径上的顶点

{if(p[v][w]t++;}if(t>g->vexnum-1}}

五.测试数据及运行结果1.正常测试数据和运行结果

1.浏览校园全部景点信息:

2.查看景点信息:

3.输出两个景点间的最短路径

:

2.异常测试数据及运行结果

1.当输出错误编号时程序没有反映,继续输入直到输入正确:

2.当查询两景点编号相同时的最短路径时,结果如下:

篇二:校园导游实验报告[1]

校园导游实验报告

学号:20XX30457018

姓名:熊博

班级:09计科1班

完成日期:20XX-12-21

1、问题描述

制作陶瓷学院的校园导游图,游客通过终端可询问:

(1)从某一景点到另一景点的最短路径。

(2)游客从公园进入,选取一条最佳路线3,使游客可以不重复地游览各景点,最后回到出口(出口就在入口处旁边)

2、要求

(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离。为此图选择适当的数据结构。

(2)把各种路径都显示给游客,由游客自己选择游览路线。

(3)画出景点分布图于屏幕上。

3、实现提示

(1)第一实际是最短路径问题,如果有几条路径长度相同,可选择途径景点较少的路径提供给游客。