数据结构课程设计报告,校园导游图
校园导游系统数据结构图
郵電學院
数据结构实验报告题目:校园导游系统
院系名称:计算机学院
专业名称:计算机科学与技术
班级:1006
学生:****
学号(8位):*****
指导教师:******
设计起止时间:2011年12月12日~2011年12月16日
一.题目要求
1、设计学校的校园平面图,
地点(地点名称、地点介绍)不少于10个。
2、提供图中任意地点相关信息的查询。
3、提供图中任意地点的问路查询:
1)任意两个地点之间的一条最短(中转最少)的简单路径;
2)任意两个景点的最佳访问路线(带权)查询;
3)任意两个地点之间的所有路径。
4、地点和道路的扩充以及撤销;
地点基本信息的文件存储。(附加:加分题)
二.概要设计
1.功能模块的调用关系图
2.各个模块详细的功能描述。
1.首先,main()函数调用loge()函数,输出欢迎界面,然后调用showmenu()函数来选择用户所要进行的操作。其中showmenu()函数就是一个菜单供使用者来选择他所要进行的相关操作,比如信息的查询,最短路径查询之类。
2.browser()函数,用于输出校园平面图,给用户提供校园的景点分布状况,方便用户选择景点参观。
3.Search()函数,用于查询用户所选的景点信息,用户需要输入要查询的景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出该景点的相关信息,包括景点名字,景点的相关介绍,否则返回重新输入。
4.SearchAllpath()函数,用于查询用户所选的任意两个景点间的所有路径,用户需要输入要查询的起始景点编号,函数会对编号进行判断,如果是合法输入,用户需要输入要查询的终点景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出输查询的两个景点间的所有路径,否则返回重新输入。函数使用深度遍历DeepFirstSeach()查找路径。
校园导游图系统数据结构实验报告
边上的权值表示距离.为此图选择适当的数据结构。
(2)把各种路径都显示给游客,由游客自己选择浏览路线。
(3)画出景点分布图于屏幕上。
[实现提示]
(1)构造一个无向图G并用邻接矩阵来存储。
(2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,
2.查看景点信息:
3.输出两个景点间的最短路径:
2.异常测试数据及运行结果
1.当输出错误编号时程序没有反映,继续输入直到输入正确:
2.当查询两景点编号相同时的最短路径时,结果如下:
六.调试情况,设计技巧及体会
每当写完一个函数的时候,一编译会出现很多错误,当时的信息一下就没了,但怎么样还得继续做下去,就这样坚持着改错误,慢慢的发现其实很多是由于自己粗心造成的,别的错误改多了就习惯了。
if(!final[w]&&(min+G->arcs[v][w].adj<D[w])) //若w不属于s,且v到w有边相连
{
D[w]=min+G->arcs[v][w].adj; //修改v0到w的权值d[w]
for(x=0;x<G->vexnum;x++) //所有v0到v的最短路径上的顶点x,都是v0到w的最短路径上的顶点
数据结构校园导游课程设计汇本报告
一、设计目的与内容
1.设计目的
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
2.设计内容
1> 设计学校的校园平面图,所含13个景点,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
2> 为来访客人提供图中任意景点相关信息的查询。
3> 为来访客人提供景点的问路查询,即已知一个某紫薇.ylbqhm.景点,查询到某景点之间的一条最短路径及长度。
4> 退出导游程序。
二、算法的基本思想
1.使用菜单页,选择不同的功能(景点信息查询、求最短路径、最短路径距离、退出程序等),进行相应的操作;
2.采用数组作为数据的存储结构,存储检索出的路径、最短距离等;
3.利用short函数运算,求两地间的距离,并输出其路径;
4.主程序有掌控函数调用,选择功能模块执行,在程序运行工程中可以反复操作。
算法的思路是
三、需求分析
1.本系统是把校园平面图抽象成一个无向网,取校园中 13 个代表性景点作为图的顶点,存放顶点名称、代号、简介等有关信息、并以边表示路径,两景点间的距离作为边的权值。以二维数组的数据结构存储构建无向图,cost[i][j];当i=j及i点与j点无直接连通时,其值为无穷大,定义一个很大的整数Init_Length代替无穷大。当i与j点连接时,其值为两点间的权值即两点间距离。
2.本程序的目的是为用户提供路径咨询和景点查询。根据用户指定的始点和终点输出相应路径或者根据用户指定的景点输出景点的信息。1> 查询景点信息
将相应景点信息存入函数print中,依据需要调用读取该函数,并显示在屏幕上。
数据结构_校园导游系统课程设计
滨江学院
《数据结构》课程设计题目校园导游咨询程序设计
学号
学生姓名
院系
专业
指导教师
二O一二年月日
1、题目的内容及要求
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
2、需求分析
(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)为来访客人提供图中任意景点相关信息的查询。
3、概要设计
1.功能模块图;
void CreateUDN();//创建无向网
void Search();//查询景点信息
void Shortestpath(int i);//计算最短路径
void Output(int sight1,int sight2);//输出函数
2.各个模块详细的功能描述。
CreateUDN();//创建无向网、主要用来保存各景点信息
Search();//查询景点信息、景点的名称及介绍
Shortestpath(int i);//计算两景点间最短路径
Output(int sight1,int sight2);//输出两景点最短路径及信息
3.模块图
4、详细设计
一、图的储存结构
#define Max 30000
#define NUM 10
typedef struct ArcCell
{
int adj; /* 相邻接的景点之间的路程*/ }ArcCell; /* 定义边的类型*/
typedef struct VertexType
数据结构(C语言版)实验报告 (校园导游咨询)
《数据结构与算法》实验报告
一、需求分析
【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一个最短的简单路径。
【测试数据】
由读者根据实际情况指定。
【实现提示】
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。
【选作内容】
(6)扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
二、概要设计
1)抽象数据类型定义描述
#include<iostream>
using namespace std;
const int MaxSize=18;
const int INFINITY=65535;//最大值无穷
class direction;
template <class T> class MGraph;
template <class T>
class VertexNode//定义景点结点,存储景点信息
{
friend class MGraph<T>;
public:
int vex;//景点名称
T vexname;//景点名称
T vexinf;//景点信息
direction dir;//存放景点方位信息的direction类的dir。
数据结构课程设计--校园导游程序
武汉长江工商学院
计算机科学与技术系
项目名称:校园导游程序
学生姓名:朱捷
学号: 1203090120 班级: 12801 指导教师:刘莹
2013年12月9日
目录
1.课程设计的目的与意义 (1)
1.1课程设计的目的 (1)
1.2课程设计的意义 (1)
2.系统功能描述及设计 (1)
3.系统存储结构及描述 (3)
4.系统功能实现及算法描述 (5)
4.1校园景点信息的录入 (5)
4.2查询图中任意两个景点间的最短路径 (6)
4.3查询图中任意一个景点到其他景点的所有路径 (7)
4.4查询任意两景点间的所有路径 (8)
5. 系统性能测试 (9)
5.1 主界面 (9)
5.2浏览校园全景 (9)
5.3查询图中任意两个景点间的最短路径 (10)
5.4查询图中任意一点到其他景点间的所有路径 (10)
5.5查询任意两个景点间的所有路径 (11)
6.设计小结 (11)
参考文献 (11)
源代码清单 (12)
1.课程设计的目的与意义
1.1课程设计的目的
随着社会的发展,人们对生活的也要求越来越高,从以前的一切都用手用笔的时代到了一切都可以用机器代替的时代。现在的大学校园越来越大了,对于对新学校不熟悉和对于外来着更好的参观和游览学校,特做了这个校园导游图,它能输出所有校园景点的简介供用户参考,并且能找到两个景点间最短路径,让用户少走弯路和冤枉路,而且还可以找到一个景点到其他景点的最短路径,可以提供使用者最好的游览路径。更多的功能将会在后续继续加入。
1.2课程设计的意义
巩固和加深学生对数据结构的基本知识的理解和掌握,掌握C语言编程和程序调试的基本技能。利用数据结构进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用数据结构解决实际问题的能力。
数据结构课程设计报告(校园导游图 )
数据结构
课程设计报告
设计题目:校园导游图
专业计算机(信息处理)
学号********
姓名王强荣
2009 年7 月8 日一、设计题目:校园导游咨询。
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
二、设计要求(内容)
(1)设计你所在的学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点的名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短的简单路径。
三、设计思路:
1.首先用邻接矩阵存储校园图。
2.用数据结构知识创建校园图。
3.手动给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度。得到一个模拟的校园图:
4.利用C语言知识编写查找景点相关信息的程序。
5.利用迪杰斯特拉算法计算任意两点之间的最短路径。
6.最后用一个主函数main输出各项结果。
四、程序简单说明:
1.创建校园图:
(1)先定义节点个数N,边的最大值(MAXedg),节点(景点名称、景点信息),邻接点,边,顶点向量,当前顶点数和边数。
(2)先给一个节点赋上其相关信息,然后再用p = (Node)malloc(sizeof(edgenode))语句申请下一结点,再给所申请的节点赋上相关信息,直到节点数为N=10为止。
(3)读入道路的起始点,为邻接矩阵的边赋相应的值。
(4)节点和边的相关信息都弄好了后,校园图也就创建好了。
2.利用函数Name给10个节点赋上相应的名称,利用函数Information给各节点添加相应的介绍信息。
数据结构课程设计实验报告《校园导游咨询系统》内含程
上海电力学院
数据结构C++课程设计
题目: 校园导游咨询
学生姓名:
学号:
院系:
专业年级:
2011年7月1日
一、设计题目
校园导游咨询;
1、实验目的
(1)熟练掌握图的创建及遍历基本操作算法。
(2)熟练掌握最短路径算法。
(3)利用图的遍历和最短路径求解技术,设计一个校园导游程序,为来访的客人提供各种信息查询服务。
2、实验内容
【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一个最短的简单路径。【测试数据】
由读者根据实际情况指定。
【实现提示】
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。【选作内容】
(6)扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
二、小组成员分工说明
略
三、需求分析
1)运行环境(软、硬件环境)
硬件环境:windows2000、windows XP、windows7 皆可;
软件环境:Microsoft (R) Developer Studio (2)
2)输入的形式和输入值的范围
输入形式:整形数据(景点代号、路径长度、地图上的方位信息),字符串(景点名称及简介);
输入值范围:
景点代号为:整形0~17(共18个景点)
路径长度为:整形1~10(两景点间距离,以近似1::100m比例换算,最远1km)
数据结构:校园导游实验报告
数据结构上机实验报告
厦门大学信息科学与技术学院计算机系
姓名:彭钰杰年级:2012 指导老师:陈锦绣
实验题目:校园导游
问题描述: 设计一个校园导游程序,为来访的客人提供各种信息查询服务。
数据结构设计:因地点与地点之间道路为双向的,所以可看成是一个无向图,本程序采用邻接多重表结构储存,在个别子函数中转化为多维数组以便运算。
实验测试:
构造如下的图:
程序测试图:
主界面
景点道路修改和扩建(模拟地图也会随之更新)道路导航系统 1.最短路径查询
道路导航系统 2两点间所有路径
道路导航系统 3多地点的最佳路径
求关节点
景点清单
模拟地图
增添景点并为其添加道路数据后模拟地图随之更新
程序中并未加入自动检测输入是否错误的系统,模拟地图系统也会出现边界溢出的情况。
程序代码:
##include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <windows.h>
#include <conio.h>
char *heng="━",*shu="┃",*zuos="┏",*zuox="┗",*yous="┓",*youx="┛";
struct adjinfo //路信息
{
int len; //道路长度8
int category; // 道路类别1:车道2:人行道3:观景路径
int dir; //方向1表示i在j的西边,2表示i在j的北边,3表示i在j的西北边,4表示i在j的西南边.负数则表示相反。
};
struct adj //边结构体
校园导游实验报告——数据结构
校园导游实验报告——数据结构
校园导游实验报告——数据结构
一、引言
在校园导游系统中,数据结构起着至关重要的作用。本实验报
告旨在详细描述我们设计和实现校园导游系统时所采用的数据结构,并分析其在系统中的应用。
二、问题定义
在校园导游系统中的问题定义如下:
1·设计一个能够记录校园景点信息的数据库。
2·实现一个能够根据用户需求提供推荐路线的算法。
3·开发一个用户界面,方便用户进行导游操作。
三、数据结构设计
1·数据库设计
●景点信息表:包括景点名称、位置、介绍等字段。
●路线信息表:包括起点、终点、路径、长度等字段。
●用户信息表:包括用户ID、喜好景点等字段。
2·算法设计
●图的表示:使用邻接矩阵或邻接表来表示校园景点之间的关系。
●最短路径算法:采用Dijkstra或Floyd-Warshall算法来计算两个景点之间的最短路径。
●推荐算法:根据用户喜好景点和景点之间的关系,应用基于用户的协同过滤算法或基于内容的推荐算法来为用户推荐最佳路线。
四、系统实现
1·技术选型:选择合适的编程语言和开发框架。
2·数据库创建:根据设计的数据库结构,创建相应的表格。
3·数据导入:将校园景点信息导入数据库中。
4·界面设计:开发用户友好的界面,实现用户导游操作功能。
5·算法实现:根据设计的算法,编写相应的代码。
6·系统集成:将界面和算法进行整合,确保系统正常运行。
五、结果分析
在我们的实验中,校园导游系统表现出了良好的性能和有效的导游功能。用户可以根据自己的喜好景点,快速找到最佳的路线,并享受愉快的导游体验。
六、总结与展望
通过本次实验,我们掌握了校园导游系统的设计与实现方法,熟悉了数据结构在系统中的重要性。我们将继续改进和完善系统功能,提升用户体验。
数据结构试验报告—导游图
实验报告:导游图
姓名:石栋伟班级:计师一班学号:222013321081006
一、需求分析:
1.从全国选取各个省份的省份城市作为旅游景点,抽象成为一个无向带权图。以途中的顶
点作为旅游景点,边上的权值表示两地之间的距离。同时,本程序还可以为用户提供旅游景点的信息。
2.本程序的目的是为用户提供路径咨询。根据用户指定的起点和终点输出相应的路径已经
之间的距离。
3.为用户提供图中任意景点的路径查询,即查询任意两个景点之间的最短简单路径。当用
户输入正确时,为用户输出任意两景点的最短路径;当用户输入不合法时,提示用户输入有误并返回让用户重新输入。
4.测试数据(附后)
二、概要设计:
1.抽象数据类型图的定义如下:
ADT Graph{
数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。
数据关系R:
R={VR}
VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在路径}
基本操作P:
CreatGraph(&G,V,VR)
初始条件:V是图的顶点集,VR是图中边的集合。
操作结果:按V和VR的定义构造图G。
DestroyGraph(&G)
初始条件:图G存在。
操作结果:销毁图G。
LocateVex(G,u)
初始条件:图G存在,u和G中顶点有相同特征。
操作结果:若G中存在顶点u,则返回该顶点在图中位置;否则返回其他信息。
GetVex(G,v)
初始条件:图G存在,v是G中某个顶点。
操作结果:返回v的信息。
FirstEdge(G,v)
初始条件:图G存在,v是G中某个顶点。
操作结果:返回依附于v的第一条边。若该顶点在G中没有邻接点,则返回“空”。NextEdge(G,v,w)
数据结构实验四图的应用-校园导游
3
培养解决实际问题的能力
通过解决校园导游的实际问题,学生将提高解决 实际问题的能力,增强对数据结构的理解和应用 能力。
02
数据结构基础知识
图的基本概念
顶点
表示对象或实体,常用圆圈表示。
边
表示顶点之间的关系,常用线段表 示。
权重
表示边的属性,如距离、时间等。
图的表示方法
邻接表
链表结构,其中每个节点包含一 个链表,链表中的元素表示与该 节点相邻的节点。
利用图结构表示文本中的语义关系,可以 更好地理解自然语言,提高自然语言处理 的准确性和效率。
技术发展趋势与展望
图的规模不断扩大
随着数据量的增长,图的规模 也在不断扩大,需要发展高效
的大规模图处理技术。
图的表示学习
利用深度学习技术对图数据进 行表示学习,提高图数据的理 解和处理能力。
图的动态分析
分析图数据的动态变化,发现 规律和趋势,为决策提供支持 。
坐标转换
将不同来源的数据统一到 一个坐标系下,便于地图 的绘制和展示。
地图缩放与比例尺
根据需求调整地图的缩放 级别和比例尺,以满足不 同场景的需求。
地图数据存储结构选择
矢量地图
关系型数据库
采用矢量地图数据结构,可以精确表 示校园内的各种地理要素,便于地图 的绘制和编辑。
将地图数据存储在关系型数据库中, 便于数据的查询、更新和管理。
数据结构课程设计-校园导航
课程设计报告
课程名称数据结构课程设计题目校园导航
指导教师
设计起始日期
学院计算机学院
系别计算机科学与工程
学生姓名
班级/学号
成绩
一、需求分析
本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求:
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本课题实现校园多个场所(至少10个)的最短路径求解。
(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。
(2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。
(3) 程序所能达到的功能:本程序可供任何人使用,主要功能 1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。
(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
a.首先看到的是校园导航系统的菜单:
b.查看浏览路线等待输入起始景点:
C.选择出发点与目的地等待输入起始景点与目的地编号:
d.参看景点信息等待输入景点编号:
二、概要设计
本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算
法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。
校园导游实验报告——数据结构
数据结构实验报告
——实验六 简单校园导游程序的设计与实现
本实验的目的是通过对校园导游程序的设计与实现来熟练掌握图型结构在
实际问题中的应用。
一、【问题描述】
当人们到一个目生的地方去旅游的时候可能会找一个导游为自己在游玩的
过程中提供方便。导游可以提供不少服务,比如介绍参观景点的历史背景等相关信息,推荐到下一个景点的最佳路径,以及解答旅游者所提出的关于旅游经典的相关问询等等。对于新生刚刚来到校园,对校园环境不熟悉的情况也如此,普通
都是高年级的学生充当了“校园导游员”的角色,如果能够提供一个程序让新生或者来访的客人自主的通过与机器的“对话”来获得相关的信息的话,将会节省大量的人力和时间。而且所提供的信息也能够做到尽可能的准确、详尽。一个成功的校园导游程序可以替代现实生活中这些“校园导游员”,更方便了大家查询校
园相关的信息。
本次实验需要开辟一个简单的校园导游程序,程序的主体功能为:
1、显示校园平面图,方便用户直观的看到校园的全景示意图,并确定自己
的位置。
2、为用户提供对平面图中任意场所的相关信息的查询。
3、为用户提供对平面图中任意场所的问路查询。
二、【数据结构设计】
由于各个场所通过校园中的道路相连,各个场所和连接它们的道路构成为了整个校园的地理环境,所以使用图这种数据结构对他们去进行描述。以图中的顶点
表示校园内各个场所,应包含场所名称、代号、简介等信息;以边表示连接各个
场所的道路,应包含道路的代号、路径的长度等信息。顶点和边均使用结构体定义,整个图的数据结构可以采用教材中介绍的各种表示方法,例如带权的邻接矩阵。
数据结构课程设计—校园导航报告
数据结构课程设计—校园导航报告
校园导航作为一种常用的地图应用,其设计并不复杂,但在功能实现中涉及到多种常
见数据结构,如图、树结构等。本报告对校园导航的数据结构设计进行详细说明,主要可
以分为三个部分:
1、数据输入。
在实现校园导航功能之前,需要输入校园数据,各个元素需要形成节点并构建图,比
如楼宇、地点以及相连的路径等,用户可以输入各个节点的属性,然后形成节点、构建图、标记属性等。
2、数据结构设计
对于校园地图来说,一般采用有向图和无向图这两种图形结构。有向图表示有方向性
的连接关系,一般用于实现单程导航;无向图表示无方向性的连接关系,一般用于实现多
程导航,比如从一个地点到达另一个地点的最短路径。
另外,在校园地图中也会遇到对节点进行索引的情况,一般采用哈希表来构造索引,
哈希表存储不同的数据结构的元素,以及这些元素的信息,从而实现快速查找功能。
3、搜索算法设计
如许多搜索应用,校园导航中也有搜索功能,搜索过程中,会在图和哈希表中寻找符
合条件的结果。有关搜索算法,常用的有深度优先搜索算法和广度优先搜索算法。
深度优先搜索算法通过沿着关系网的深度来搜索,即每次搜索一条路径直至无路可走;而广度优先搜索算法通过沿着关系网的广度来搜索,即每次从多条路径中选择最佳路径进
行搜索,并将其标记,直到找到最终结果
总体来看,校园导航数据结构设计包含了输入、构建图、节点索引以及搜索等多种操作,可以利用图、树、哈希表等数据结构设计实现各项功能,以最优的性能完成地图搜索
工作。
数据结构课程设计报告(校园导游系统)附有源代码(20191123003227)
为空串 . 1nowfTG4KI
数组 s[n] :存放源点和已经生成地终点 <即集合 S), 初态为只有一个源点 v.
算法地伪代码描述是:
1. 初始化数组 dist 、 path 和 s;
2.while<s 中地元素个数 <n)
2.1 在 dist[n] 中求最小值 , 其下标为 k<则 vk 为正在生成地终点);
所以需要针对这一存储结构对路线进行遍历操作
.其遍历算法如图 2.3 所
示 .TIrRGchYzg
开始 选择图片控件
For 循环语句 <i=0 ; i< 顶 点 数 ;
N
i++ )
Y
For 循环语句
N
(j=0。j<i 。j++>
Y
N
如果路径存在
Y 输出该路径信息
结束
7EqZcWLZNX
图 2.3 遍历算法示意图 2.4 求最短路径
课程论文 <设计)
2018-2018 学年第 2 学期
课程名称:数据结构课程设计 课程性质:实践课 专业班级: 考核方式:考查 学生姓名: 学 号: 学 时: 1 周 教师姓名:
自评分: 95 分 评语及评分
目录
1. 作业内 容·································
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院计算机工程学院
课程设计报告
设计名称:数据结构课程设计
选题名称:校园导游图
姓名:学号:
专业班级:
系(院):计算机工程学院
设计时间: 2011.12.19~2011.12.30 设计地点:软件工程实验室、教室
9 体育馆学生体育锻炼地点实际输出的信息为:
操作成功,与预期结果一致。
2.打印校园导游图的邻接矩阵:
操作成功,与预期结果一致。
3、查询景点间最短路径:
比如:
查询景点1(计算机楼)和3(图书馆)之间的最短路径,预期结果应为:
计算机楼—> 文通楼—> 图书馆,
路径总长度为35
1520
操作成功,与预期结果一致。
4、景点信息查询:
比如:查询景点为1的景点信息,预期结果应为:
景点序号(position)景点名称(name) 景点介绍(intoduction)
1 计算机楼计算机学院学生学习基地,楼高6层
与预期结果一致。查询成功。
5、更改图的信息:
更改图信息主页面:
5.1重新建图
比如重新建一个有3个景点和3条路径的无向图:
景点信息分别为:
景点序号(position)景点名称(name) 景点介绍(intoduction)
0 计算机楼信息中心
1 第一食堂饮食中心
2 B#宿舍男生宿舍
矩阵关系为:
0 15 25
15 0 50
25 50 0
与预期结果一致,重新建图成功。
5.2删除景点:
比如删除景点编号为1的景点:
则输出的矩阵中应失去原第一行第一列,
并且其信息不再出现在校园导游中:
删除景点前的图信息:
删除景点前的矩阵:
删除景点后的图的信息和矩阵:
与预期结果一致,删除景点成功。
5.3删除两景点间的路径:
比如删除编号为0和2的两景点间的路径,则打印出来的矩阵在第0行第2列和第2行第0列的值应为0。删除路径前的矩阵:
删除路径后的矩阵:
与预期结果一致,删除路径成功。
5.4增加景点信息
比如增加一个景点,其信息为:
景点序号(position)景点名称
(name)
景点介绍(intoduction)
10 A#7宿舍楼计算机学院女生宿舍
对应的矩阵中应增加一行一列,第10行和第10列上所有元素都应为0,输出的图信息中最后应增加上述的信息。
增加景点前的图信息:
增加景点前的矩阵:
增加景点后的图信息和矩阵:
与预期结果一致,增加景点成功。
5.5增加一条路径
比如在景点0和4之间加一条长度为10的路径,则在第0行第4列与第4行第0列元素应为10。增加路径前的矩阵:
增加路径后的矩阵:
与预期结果一致,增加路径成功。
5.6更新图信息
比如要更新一个景点和一条路径的信息,将景点信息:
景点序号(position)景点名称
(name)
景点介绍(intoduction)
1 计算机楼计算机学院学生学习基地,楼高
6层
改为:
景点序号(position)景点名称
(name)
景点介绍(intoduction)
1 B#8 男生宿舍更改顶点编号为0和3路径长度,路径由30改为15。
更改后的图中编号为1的信息应变为:
景点序号(position)景点名称
(name)
景点介绍(intoduction)
1 B#8 男生宿舍矩阵中第0行第3列和第3行第0列元素应由30变为15.更改景点前的图信息:
更改路径前的矩阵:
更新后的图信息和矩阵:
6、查找两顶点间的所有路径
比如查找1,3两点间的所有路径,所有路径为:
五用户手册
1、进入本系统后,随即显示系统主菜单页面。用户可在此菜单下输入各子菜单对应的数字,并按回车键,执行相应的子菜单命令。
2、查询、修改、增加、删除景点以及景点间的路径,都是通过输入景点的编号来实现的,进入主菜单时,用户最好先选择“1、学校景点介绍”和“2、打印邻接矩阵”,方便用户了解景点信息以及路径信息。
六测试成果
操作主界面
查看淮工景点平面图
打印无向图邻接矩阵
查询两顶点间的最短路径
按编号查询景点信息
查询两顶点间的所有路径:
更改图信息:
退出系统
七附录(源程序清单)
#include
#include
#include
#include
using namespace std;
#define max_ver_num 20
#define OK 1
#define FALSE 0
#define Error -1
#define A 1000
#define TRUE 1
typedef struct arcnode//设置边的权值信息{
int adj;//路径权值
}arcnode,adjarcs[max_ver_num][max_ver_num]; typedef struct verdata//设置景点信息
{
int position;
char name[60];
char introduction[1000];
}verdata;
typedef struct mgraph
{
verdata vexs[max_ver_num];