当前位置:文档之家› 数据结构-校园导游程序(附源码)

数据结构-校园导游程序(附源码)

数据结构-校园导游程序(附源码)

简介

本文档旨在介绍一个校园导游程序的设计与实现。该程序使用数据结构来管理校园地点信息,并提供导游功能,供用户查找并导航到目标地点。文档将依次介绍相关的背景知识、程序设计原理、算法实现以及使用方法。

目录

1.背景知识

1.校园导游需求

2.数据结构概述

2.程序设计原理

1.数据结构设计

2.地点信息管理

3.导航算法设计

3.算法实现

1.数据结构定义

2.地点信息管理算法

3.导航算法

4.使用方法

1.程序安装

2.数据录入

3.导游功能使用

5.附录

1.附件1:源码文件

2.附件2:数据样例

1.背景知识

1.1 校园导游需求

校园导游程序是为了帮助使用者在校园中快速找到目标地点,并提供导航功能,方便出行和参观。该程序需要管理校园地点的信息,包括名称、位置和介绍等。使用者可以通过程序查找地点、导航到目标地点。

1.2 数据结构概述

数据结构是计算机中用来组织和存储数据的方式。在校园导游程序中,我们需要选择适合的数据结构来存储和管理地点信息。常

用的数据结构有数组、链表、树、图等。根据需求分析,我们可以使用图这一数据结构来表示校园地点之间的关系,方便进行导航。

2.程序设计原理

2.1 数据结构设计

在校园导游程序中,我们使用图这一数据结构来表示校园地点之间的关系。每个地点可以看作图的一个节点,节点之间的边表示地点之间的连接关系。通过构建图数据结构,我们可以方便地管理地点信息并进行导航。

2.2 地点信息管理

地点信息管理是校园导游程序的核心功能之一。我们需要设计适合的数据结构来存储地点的信息,包括名称、位置和介绍等。通过合理的数据结构设计,可以快速地查找和修改地点信息。

2.3 导航算法设计

导航算法是实现导游功能的关键。我们需要设计算法来计算出从起点到目标地点的最短路径,并提供导航指引。常用的导航算法有Dijkstra算法、A算法等,我们根据需求选择合适的算法进行实现。

3.算法实现

3.1 数据结构定义

我们使用图这一数据结构来表示校园地点之间的连接关系。图由节点和边构成,节点表示地点,边表示地点之间的连接关系。每个节点包含地点的信息,如名称、位置和介绍等。每个边包含两个节点之间的关系信息。

3.2 地点信息管理算法

地点信息管理算法包括地点信息的录入、查找、修改和删除等功能。我们可以使用哈希表来快速地查找和修改地点信息,使用链表来记录地点之间的连接关系。

3.3 导航算法

导航算法用于计算从起点到目标地点的最短路径,并提供导航指引。我们可以使用Dijkstra算法来实现导航功能,该算法能够找到从起点到其他所有节点的最短路径。

4.使用方法

4.1 程序安装

详细介绍校园导游程序的安装方法,包括源码、编译和运行等步骤。

4.2 数据录入

介绍如何录入校园地点的信息,包括名称、位置和介绍等。

4.3 导游功能使用

详细介绍校园导游程序的使用方法,包括地点搜索、导航功能的使用。

5.附录

5.1 附件1:源码文件

附带校园导游程序的源码文件,供用户和参考。

5.2 附件2:数据样例

提供一份校园地点信息的数据样例,供用户参考。

---

1.本文档涉及附件。

2.本文所涉及的法律名词及注释。

校园导游程序

/*校园导游程序*/ /*[问题描述] 用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息.要求能够回答有关景点介绍、游览路径等问题. 游客通过终端可询问: (1)从某一景点到另一景点的最短路径. (2)游客从公园进入,选取一条最佳路线. (3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边). [基本要求] (1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路, 边上的权值表示距离.为此图选择适当的数据结构. (2)把各种路径都显示给游客,由游客自己选择浏览路线. (3)画出景点分布图于屏幕上. [实现提示] (1)构造一个无向图G并用邻接矩阵来存储. (2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,最短路径长度就用一维数组d[i]存放;i的范围:0~20. (3)一维数组have[]是用来记录最短路径出现顶点的顺序. (4)根据起点和终点输出最短路径和路径长度. */

#define INFINITY10000 /*无穷大*/ #define MAX_VERTEX_NUM 40 #define MAX 40 #include #include #include #include typedef struct ArCell{ int adj; //路径长度 }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct{ //图中顶点表示主要景点,存放景点的编号、名称、简介等信息, char name[30]; int num; char introduction[100];//简介 }infotype; typedef struct{ infotype vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum; }MGraph; MGraph b; void cmd(void); MGraph InitGraph(void); void Menu(void); void Browser(MGraph *G); void ShortestPath_DIJ(MGraph * G); void Floyd(MGraph *G); void Search(MGraph *G); int LocateV ex(MGraph *G,char* v); MGraph * CreatUDN(MGraph *G); void print(MGraph *G); /******************************************************/ void main(void){ system("color 1f"); system("mode con: cols=140 lines=130"); cmd(); }//main /******************************************************/

校园导游咨询系统数据结构课程设计c语言

校园导游咨询系统数据结构课程设计c语言校园导游咨询系统数据结构课程设计c语言 一、课程设计的目的 本次课程设计旨在通过C语言程序设计实现校园导游咨询系统,学生能够了解并掌握数据结构的基本概念、算法和编程技术,培养学生的编程能力和解决实际问题的能力。 二、系统需求分析 (1)用户管理 系统需要实现学生、教师、管理员三种用户的管理,分别具有不同的权限等级。要实现用户注册、登录、退出等基本功能。 (2)地图导航 系统需要实现校内地图的导航功能,包括校门、教学楼、图书馆、宿舍等位置的标注,提供校园内部的导航和查找服务。 (3)建筑信息 系统需要提供校内建筑的信息查询功能,包括建筑名称、位置、使用情况等,方便师生查询。 (4)在线咨询 系统需要提供在线咨询功能,方便学生、教师等用户在线咨询学校相

关事宜,并实现客服人员的消息处理。 三、数据结构设计 (1)用户信息表 采用哈希表作为用户信息表的数据结构,将用户信息存储在表中,方 便用户登录和信息的管理。哈希表的键值是用户名,值是用户信息 (包括用户名、密码、权限等级等)。 (2)建筑信息 采用结构体数组作为建筑信息的数据结构,将建筑信息存储在数组中,方便查询和展示。结构体包含建筑名称、位置、使用情况等信息。 (3)校内地图 为方便地图导航,采用邻接矩阵作为校内地图的数据结构,将校内各 个建筑之间的距离存储在矩阵中。矩阵的行和列分别表示建筑的编号,矩阵元素表示建筑之间的距离。 (4)消息队列 为实现在线咨询功能,采用队列作为消息队列的数据结构,将用户发 送的消息存储在队列中。消息队列的队首指针和队尾指针分别表示最 早和最晚的消息,方便客服人员的处理。 四、代码实现 (1)用户管理

校园导游程序报告

实验四校园导游程序 指导教师签名:__________ 成绩:__________ 一、问题描述 问题描述:用无向图表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等。 设计要求: 1.查询各景点的相关信息; 2.查询图中任意两个景点间的最短路径; 3.查询图中任意两个景点间的所有路径 二、算法说明 1.数据结构说明 typedef struct { int NO; //景点序号 char name[10]; //景点名称 char jianjie[M*2]; //景点介绍 }Adjst; //景点信息结点 typedef struct ArcNode { int NO; //景点序号 float distance; //邻接景点间距离 ArcNode *Nnext; //某景点的另一邻接景点 }ArcNode; //景点邻接表 typedef struct PreNode { int AimId; //目的地序号 float Adistance; //总距离 int *path; //路径 int lenth ; //路径长度 struct PreNode *next; //下一个路径 }PathNode; typedef struct HeadLink { Adjst S; //景点全部信息

ArcNode *Nnext; //该景点邻接景点 PathNode *PathColl; //该景点到其余景点的路径集合}HeadLink; //景点头表 typedef struct TU { int Num; //景点个数 HeadLink *scenicSpot; //景点头表 }TU; //景区 2.算法说明 这个程序是实现图的最短路径而设计的;其中涉及到图的创建、图的查询、以及各种算法!首先该程序是利用链表的结构来创建图的,用的是邻接链表来实现图的各个结点来联系。在功能菜单中运用for循环来实现各个功能的选择! 1:图的创建邻接表的创建是利用链表的尾插法来将各个结点的邻接结点插入;用for循环来实现将各个顶点按照编号实现信息的创建!同时利用循环将各个路径数组和结点结点遍历的标志初始化!利用while循环输出所有景点信息! 2:所有路径查询输入两景点的序号,利用深度优先遍历将所有可能的情况保存;将通过的路径存在路径数组中在setpath()函数中实现,在利用标志来判断景点是否遍历过,进行深度优先遍历;利用递归将所有可能的情况列出,其中将遍历的所有结果记录在数组中;输出所有结果。 3:最短路径求两景点之间的最短路径通过深度优先算法将全部路径求出,在比较个路径的路径长度;最短的输出! 该算法是以邻接表为结构的,通过循环将各个景点信息创建,同时也利用尾插法将单个景点的相邻景点创建成功,这样图也就创建成功啦!通过深度优先算法将所有路径求出,将所有结果,存入路径和统计长度的数组中,进行比较,得出结果 ! 三、测试结果

校园导游咨询系统课程设计(14级网工二班)

湖南人文科技学院 数据结构课程设计 课程名称: 数据结构课程设计题目: 校园导游咨询系统年级/专业/班: 14级信工系网工二班组长姓名(学号): 刘贵成(14420221)成员姓名(学号): 康子祺(14420211) 何旭亚(14420206) 罗豪(14420233)

《数据结构》课程设计 --校园导游咨询系统设计 一、引言 随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C++,基于《数据结构》中图的相关算法与HGE引擎的窗口界面开发了“湖南人文科技学院导游咨询系统”。 开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。而且本系统使用引擎创建窗口,更加方便,更加美观,更加易懂。 本系统界面友好,提示信息充分,在实际使用过程中运行良好。 二、设计目的与任务 1、设计目的: 通过本课程设计教学所要求达到的目的是:巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解;能熟练掌握几种基本数据结构的基本操作;能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。能简单的运用HGE引擎创建窗口,更好地实现校园导游咨询功能。 2、设计任务: 校园导游程序:用窗口界面实现以下功能: (1)景点信息的查询和简介; (2)两景点间路径的查询; (3)增加、删除、更新有关景点和道路的信息。

(003)(校园导游系统)c语言

校园导游咨询 一、目的 1、对自己学过的知识进一步的加深理解,对数据结构的算法思想要有更深的理解。 2、通过课程设计,学会通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 3、学会综合运用数据结构课程中学到的数据结构和算法,如图的存储结构,数组,迪杰斯特拉算法和Floyd算法等自行实现一个较为完整的应用系统的设计与开发。 二、需求分析 1、功能需求 (1)在菜单中显示校园景点地图。 (2)能够查找任意景点的路径。 (3)能够自动查找用户键入始点景点和终点景点的最短路径。 (4)用户能够查询任意景点的景点信息。 2、输入 根据菜单提示键入相应的数字键已完成相应的操作。例如:在菜单界面中键入数字3,再根据系统提示键入始点和终点对应的编号,系统便会输出相应的路径。 3、输出 程序将根据用户键入的数字键,调用相应函数,完成查找过程,并将结果输出到屏幕。 三、概要设计 1、变量定义 typedef struct //图中顶点表示主要景点,存放景点的编号、名称、简介 { char name[30]; int num; char introduction[100];//简介 }infotype; typedef struct ArCell //定义结构体变量来储存路径长度 { int adj; //路径长度 }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM

typedef struct //景点信息的结构体定义: { infotype vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum; }MGraph; MGraph b; 2.函数模块 void cmd( );//菜单选择模块 MGraph InitGraph( );//赋值函数 void Menu(void);//菜单函数 void Browser(MGraph *G);//浏览景点信息的函数 void ShortestPath_DIJ(MGraph * G);//迪杰斯特拉算法 void Floyd(MGraph *G);//Floyd 算法 void Search(MGraph *G);//查找景点信息函 ()(MGraph *G);//初始化图形 void print(MGraph *G);//校园全景显示函数 3、流程图 四、详细设计 2

数据结构-校园导游程序(附源码)

实习报告 实验名称:校园导游程序日期:2017年7月7日 姓名:李琛学号:20153204 班级:信1501-2 指导教师:陈娜 1.实验题目 校园导游程序 [问题描述] 用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 2.需求分析 游客通过终端可询问: (1)从某一景点到另一景点的最短路径。 (2)游客从公园进入,选取一条最佳路线。 (3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。 [基本要求] (1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离.为此图选择适当的数据结构。 (2)把各种路径都显示给游客,由游客自己选择浏览路线。 (3)画出景点分布图于屏幕上。 3.概要设计 数据类型定义 #include #include //图的邻接矩阵存储表示 #define MaxInt 32767 //极大值 #define MVNum 100 //最大顶点数 //顶点类型为字符型 typedef int ArcType; //边的权值为整型using namespace std; int i, j; int S[100], D[100], min, Path[100]; int N = 49; int bestcost = MaxInt; //记录目前最少运费或代价int currentcost; //当前运费或代价 int current[MaxInt]; //当前路径 int best[MaxInt]; //记录最佳路径 struct AMGraphd {

校园导游程序

校园导游程序报告 一、问题分析和任务定义 1、题目与要求 校园导游程序题目:用无向网表示你所在学校的校园景点平面图,图中定点表示主要景点,存放景点的编号、名称、简介等信息。要求能够回答有关景点介绍、游览路经等问题。要求:(1)查询各景点相关信息; (2)查询图中任意两个景点的最短路径。 (3)查询图中任意两个景点的所有路径。. 选作内容:求多个景点的最佳游览路经。 根据设计的基本要求,可知本系统应实现以下几个功能: (1)景点查询:景点查询,输出所查询景点的相关信息 (2)景点之间最佳路径查询功能:输出所选择的两点之间的最短路径及路径长度。 (3)两景点间所有路径:输出两点间存在的所有路径。 2、问题分析 确定以无向图为数据结构的校园地图如图1: 图1校园地图 图的信息以邻接矩阵形式存储,邻接矩阵以二维数组的数据结构存储。cost[i][j]; 当i=j时及i点与j点无直接连通时,其值为无穷大,定义一个很大的整数Maxint代替无穷大。当i与j点邻接时,其值为两点间的权值即两景点距离。 (1)、查询景点信息

将相应景点信息存入文本文档中,依据需要调用读取文件,并显示在屏幕上。(2)、两点间最短路径 利用迪杰斯特拉(Dirjstra)算法求两点之间最短路径。 (3)、两点间所有路径 利用邻接矩阵转换为邻接表,以邻接表的遍历查找路径,并将路径暂时存储,最后一次将各路径输出。 3、任务定义 设计creat ();函数存入图的矩阵信息。 设计infor ();函数查询景点信息。 设计DJ_shortestpath ();函数利用迪杰斯特拉算法求最短路径。 设计Allpath ();函数求两点间所有路径。 4、程序实现功能 查询某景点信息。 查找两景点间最短路径。 查找两景点间所有路径。 二、数据结构的选择和概要设计 1、数据结构的定义 图的定义: 图的信息以邻接矩阵存储,利用二维数组作为矩阵坐标,二维数组的值表示图的两点间的距离,即无向图的权值,若两点间无直接路径,则以无穷大为权值。 景点相关信息: 景点相关信息以文本文档存储,利用函数直接读取文本输出。 景点名称输出 以结构体存储各个景点编号及相对的名称,以便于输出显示。 struct PlaceName { char name[10]; }Place[11]; 2、概要设计 主函数:调用各子函数完成选择功能。 主函数中以switch语句选择操作。 查询景点信息——1 查找路径——2 查找所有路径——3 退出程序——4 程序框架图如图2

校园导游实验报告——数据结构

数据结构实验报告 ——实验六简单校园导游程序的设计与实现 本实验的目的是通过对校园导游程序的设计与实现来熟练掌握图型结构在实际问题中的应用。 一、【问题描述】 当人们到一个陌生的地方去旅游的时候可能会找一个导游为自己在游玩的过程中提供方便。导游可以提供很多效劳,比方介绍参观景点的历史背景等相关信息,推荐到下一个景点的最正确路径,以及解答旅游者所提出的关于旅游经典的相关问询等等。对于新生刚刚来到校园,对校园环境不熟悉的情况也如此,一般都是高年级的学生充当了“校园导游员〞的角色,如果能够提供一个程序让新生或来访的客人自主的通过与机器的“对话〞来获得相关的信息的话,将会节省大量的人力和时间。而且所提供的信息也能够做到尽可能的准确、详尽。一个成功的校园导游程序可以替代现实生活中这些“校园导游员〞,更方便了大家查询校园相关的信息。 本次实验需要开发一个简单的校园导游程序,程序的主体功能为: 1、显示校园平面图,方便用户直观的看到校园的全景示意图,并确定自己的位置。 2、为用户提供对平面图中任意场所的相关信息的查询。 3、为用户提供对平面图中任意场所的问路查询。 二、【数据结构设计】 由于各个场所通过校园中的道路相连,各个场所和连接它们的道路构成了整个校园的地理环境,所以使用图这种数据结构对他们去进行描述。以图中的顶点表示校园内各个场所,应包含场所名称、代号、简介等信息;以边表示连接各个场所的道路,应包含道路的代号、路径的长度等信息。顶点和边均使用结构体定义,整个图的数据结构可以采用教材中介绍的各种表示方法,例如带权的邻接矩阵。 三、【功能〔函数〕设计】 1、显示校园平面图的功能模块。 通过读文件的方式将各个地点的信息读入程序中.平面图中应醒目的标识出场所的准确名称以备用户查询。河北大学校园导游的根本地点信息。 ***************欢送进入河北大学校园导游系统!************** -----------------------景点名称--------------------------- 主楼多功能馆毓秀园图书馆 操场留学生楼七教八教 九教成教南大门北大门 一教逸夫楼博物馆物

校园导游课程设计

校园导游课程设计 一、问题描述: 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 二、实验内容: 基本要求:查询各景点的相关信息;查询图中任意两个景点间的最短路径;查询图中任意两个景点间的所有路径;增加、删除、更新有关景点和道路的信息。 选作内容:①求多个景点的最佳(最短)游览路径。 ②区分机动车道和人行道。 ③实现导游图的仿真界面。 三、数据结构: typedef struct message { int num;//景点代码 char name[100];//景点名称 char pro[500];//简介 }Ciceroni; Ciceroni school[10]={{1,"行政楼\n"},{2,"食堂\n"},{3,"赛博楼,信息分院办公室所在地\n"},{4,"求是楼,实验楼计算机中心

\n"},{5,"格致楼,法学管理学院"}, {6,"工程实习中心,金工实习\n"},{7,"仰仪楼,机电计测分院 \n"},{8,"体育馆,旁边有篮球场`足球场`还有网球场\n"},{9,"一号教学楼,主要以阶梯教室为主\n"},{10,"二号教学楼,小教室为多\n"}}; /*景点名称和简介*/ 操作: /*给景点之间的路径赋最大值*/ /*最短路径的C语言函数*/ /*输出最短路径和最短距离函数*/ /*输入景点代码查景点名称和简介*/ /*输入景点代码查到其它景点的最短距离*/ 四、需求分析: 现在大多数学校由于不断扩张,造成学校面积大而造成人们人出游困难的问题,人们如果不熟悉该地点。找到一个地方就会很困难,然而如果有一个校园导游系统,人们出行就会方便很多。 五、概要设计: 用图的算法进行构造,用链表建立无向图,然后再用深度优先遍历进行搜索,查找所需的路径。再用弗洛伊德算法求出两个景点之间的最短路径。 系统结构图:

数据结构课程设计-校园导游咨询

上海电力学院 数据结构(C++)课程设计 题目: 校园导游咨询 姓名: 学号: 院系:计算机科学与技术学院 专业年级:信息安全2014 2016年7 月 3 日

目录 1.设计题目.................................................................................... 错误!未定义书签。 2.需求分析 (1) 2.1运行环境 (1) 2.2输入的形式和输入值的范围 (1) 2.3 输出的形式描述 (1) 2.4功能描述 (1) 2.5测试数据 (1) 3.概要设计 (2) 3.1抽象数据类型定义描述 (2) 3.2功能模块设计 (3) 3.3 模块层次调用关系图 (3) 4.详细设计 (4) 5.调试分析 (7) 6.测试结果 (8) 7.附件 (9)

一、设计题目 校园导游咨询 二、需求分析 1)运行环境(软、硬件环境) 电脑型号X64 兼容笔记本电脑 操作系统Windows 8 编程环境Microsoft Visual Studio 2012 2)输入的形式和输入值的范围 3)输出的形式描述

4)功能描述 (1)设计学校的校园平面图,所含景点14个。以图中顶点表示校内各景点,存 放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一个最短的简单路径,并提示出各景点之间的方位关系,行走方向。 (5)测试数据

距离邻接矩阵: 0 20 999 999 999 25 999 40 999 999 999 999 999 999 20 0 40 15 999 20 999 999 999 999 999 999 999 999 999 40 0 25 999 999 999 999 999 999 40 999 999 999 999 15 25 0 20 999 999 999 999 999 999 999 999 999 999 999 999 20 0 20 999 999 999 20 15 999 999 999 25 20 999 999 20 0 10 20 999 999 999 999 999 999 999 999 999 999 999 10 0 999 10 999 999 999 999 999

(完整word版)数据结构课程设计-校园导游图

齐齐哈尔大学 计控学院 数据结构课程设计 选题名称:校园导游图 系(院):计算机与控制工程学院 专业:软件工程 班级:软件121班 姓名:刘泽强 学号:2012023019 指导教师:吴迪 2014年7月1日

数据结构课程设计评分表 90~100为优,80~89为良,70~79为中,60~69为及格,60分以下不及格

目录 一、问题描述 (4) 二、程序设计 (5) 三、运行结果: (8) 四、总结 (11) 附录: (12)

一.问题描述 设计你所在的学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点的名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短的简单路径。

二、程序设计 1.用数据结构知识创建校园图。 void creatgraph(vexnode g[],int *n, EdgeType e[],adjmax *adj) //创建校园图 { int b,i,s,d,len; struct edgenode *p,*q; //定义图的结构体 2.手动给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度。得到一个模拟的校园图: 图2.2 3.利用C语言知识编写查找景点相关信息的程序。 手动创建一个校园图creat(Matrix_Graph *G),然后为相应的边赋上真正的值。 主要代码: do{ printf("是否继续? Y/N");

scanf("%c",&ch); getchar(); if(ch == 'Y' || ch == 'y') //继续 { flag = 1; i = 1; printf("请输入您要查询的景点序号:\n"); scanf("%d",&len); getchar(); printf("此景点的名称是:"); Name(len); printf("此景点的介绍是:"); Information(len); 4.利用迪杰斯特拉算法计算任意两点之间的最短路径。 用path函数来求任意两景点之间的最短路径。 while(c<=N) { t=MAX; for(i=1;i<=N;i++) if(flag[i]&&G->arcs[s][i]arcs[s][i];v=i;r[v][1]=v;} for(i=1;i<=c;i++) for(j=1;j<=N;j++) if(flag[j]&&d[i]+G->arcs[T[i]][j]arcs[T[i]][j];v=j; if(r[v][0]!=-1) { u=1; while(r[T[i]][u]!=0) { r[v][u]=r[T[i]][u];u++;} } r[v][u]=v;

西安邮电大学-(数据结构)校园导游系统课程设计报告---精品管理资料

西安郵電大學 数据结构课程设计报告书 系部名称计算机学院 学生姓名崔斌 专业名称计算机科学与技术专业班级计科1106 学号04111185 指导教师衡霞 2012年12月15日至 时间 2012年12月21日

实验题目:校园导游系统 一、实验目的 ①:为了让非本校的同学们,家长们能够充分了解本校---西安邮电大学。 ②:实践数据结构所学知识。 二、实验内容 ①:学校简易的俯视图。 ②:各个景点的简单介绍. ③:任意两景点之间的所有路径. ④:任意两景点之间的最少中转景点路径。 ⑤:任意两景点之间的带权路径长度。 三、需求分析 Init();初始化两个顺序栈 Menu();进行选择的模块函数; Intro();景点介绍函数; Search();判断是否有此编号的景点; Findallpath();找路径函数; Findallway();找任意两个景点之间的所有路径;(存在栈里面)Shortestway();任意两个景点之间中转次数最少的路径;(从栈里面读取出来)Niceway();任意两个景点之间总权值最小的路径;(从栈里面读取出来)

Calculate();(从栈里面读取出来相关数据),进行分析运算; Byebye(); 你懂得! 四、概要设计 1、方案设计 对系统进行分析,给出景区图 重点: ①: //思想;递归结合循环,然后,找到终点时还要回溯; void findallway(adjlist *G,int m,int n)//两点之间的所有路径 { int i,t,k; arcnode *p; pa_th rp; push(s,m); G—>vertex[m—1].flag=1; if(m==n) { rp.sumweight=k=calculate(G); rp.sum=s-〉top; rp。num=(y+1); push1(&z,rp); printf(" 路径%3d为(途径%2d个景点,长度为%3d):”,y+1,s—〉top,k); for(i=0;i〈=s—>top;i++) printf(”—〉%d",s—〉elem[i]); printf("\n"); G-〉vertex[m-1]。flag=1;

数据结构-校园导游系统

课程设计论文(附有代码!)题目:校园导游咨询 学院:计算机科学与工程学院 专业:计算机科学与技术 姓名: 学号: 指导教师: 2014年9月22日

摘要 桂林众山环绕,风景优美,加之近年来校园环境也得到不断地改善,来访校园的游客逐渐增加,为了方便众多游客对校园景点的参观,需要给来访人士提供校园导游咨询服务,利用计算机建立一个便利的咨询系统可以很好地解决这个问题。 在本设计实验中,我所采用的是邻接矩阵作为数据的存储结构,用不同的功能模块对两地距离和校园道路信息进行编辑。当游客来访时,系统能根据用户输入的景点代号查询景点信息,提供任意两个景点间的最短路径查询,并能查询校园内的交通信息,方便游客访问。工作人员还可以为校园更新景点以及路径信息。 本文将简单介绍该系统的开发背景,详细介绍系统的主要设计思路,函数的建立和使用过程,该系统功能的实现方式和实现结果,以及对所遇到问题的分析解决,最后对该系统进行总结描述。 关键词:校园导游咨询;C++;数据结构;最短路径;查询;

目录 引言 (1) 1系统概述 (1) 2需求分析 (1) 2.1 系统需求 (1) 2.2 开发环境 (2) 3详细设计 (3) 3.1 系统结构 (3) 3.2 数据结构设计以及数据的初始化 (4) 3.2.1 图结构设计 (4) 3.2.2 数据的初始化 (4) 3.3 查询模块的详细设计 (5) 3.3.1 查询模块功能子函数设计 (5) 3.4 更新功能模块详细设计 (7) 3.4.1 更新模块功能子函数设计 (8) 4所遇到的问题和分析解决 (10) 5系统特色及关键 (11) 6结论 (12) 参考文献 (13)

相关主题
文本预览
相关文档 最新文档