数据结构课程设计--校园导航图

合集下载

数据结构课程设计报告,校园导游图

数据结构课程设计报告,校园导游图

淮海工学院计算机工程学院课程设计报告设计名称:数据结构课程设计选题名称:校园导游图姓名:学号:专业班级:系(院):计算机工程学院设计时间: 2011.12.19~2011.12.30 设计地点:软件工程实验室、教室9 体育馆学生体育锻炼地点实际输出的信息为:操作成功,与预期结果一致。

2.打印校园导游图的邻接矩阵:操作成功,与预期结果一致。

3、查询景点间最短路径:比如:查询景点1(计算机楼)和3(图书馆)之间的最短路径,预期结果应为:计算机楼—> 文通楼—> 图书馆,路径总长度为351520操作成功,与预期结果一致。

4、景点信息查询:比如:查询景点为1的景点信息,预期结果应为:景点序号(position)景点名称(name) 景点介绍(intoduction)1 计算机楼计算机学院学生学习基地,楼高6层与预期结果一致。

查询成功。

5、更改图的信息:更改图信息主页面:5.1重新建图比如重新建一个有3个景点和3条路径的无向图:景点信息分别为:景点序号(position)景点名称(name) 景点介绍(intoduction)0 计算机楼信息中心1 第一食堂饮食中心2 B#宿舍男生宿舍矩阵关系为:0 15 2515 0 5025 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,输出的图信息中最后应增加上述的信息。

校园导航数据结构课程设计

校园导航数据结构课程设计

校园导航数据结构课程设计一、课程目标知识目标:1. 理解并掌握数据结构中图的基本概念,包括节点、边、路径等;2. 学习并掌握图的表示方法,如邻接矩阵和邻接表;3. 了解并掌握图的遍历算法,如深度优先搜索(DFS)和广度优先搜索(BFS);4. 学会运用图的相关算法解决校园导航问题。

技能目标:1. 能够运用所学知识构建校园导航系统的数据结构模型;2. 培养学生的编程能力,使其能够独立编写实现图的遍历算法的程序;3. 提高学生解决实际问题的能力,使其能够将图论知识应用于校园导航问题。

情感态度价值观目标:1. 培养学生对数据结构学科的兴趣,激发其学习热情;2. 培养学生的团队协作意识,使其在合作中共同解决问题;3. 引导学生关注校园环境,提高其社会责任感。

课程性质:本课程为高中年级数据结构课程的一部分,侧重于图论知识在实际问题中的应用。

学生特点:高中年级的学生已经具备了一定的编程基础和数学逻辑思维能力,对于解决实际问题的兴趣较为浓厚。

教学要求:结合学生特点,通过讲解、实践和讨论等方式,使学生掌握图论知识,并能够将其应用于解决校园导航问题。

同时,注重培养学生的团队协作能力和实际操作能力,提高其综合运用知识解决问题的能力。

在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。

二、教学内容1. 图的基本概念- 节点、边、路径、连通图、有向图等基本概念介绍- 图的应用场景,以校园导航为例2. 图的表示方法- 邻接矩阵及其性质- 邻接表及其实现3. 图的遍历算法- 深度优先搜索(DFS)算法原理与实现- 广度优先搜索(BFS)算法原理与实现4. 校园导航问题解决方案- 基于图的校园导航系统设计- 最短路径算法,如迪杰斯特拉(Dijkstra)算法介绍5. 教学实践- 编程实现图的遍历算法- 团队合作,设计并实现校园导航系统教学内容安排和进度:第一课时:图的的基本概念及表示方法第二课时:图的遍历算法原理与实现第三课时:最短路径算法介绍第四课时:教学实践,团队合作完成校园导航系统设计教材章节关联:本教学内容与教材中关于图论知识的章节相关,主要包括图的基本概念、图的表示方法、图的遍历算法等部分。

课程设计校园导航图c

课程设计校园导航图c

课程设计校园导航图c一、教学目标本课程旨在通过校园导航图的学习,让学生掌握以下知识目标:了解校园的基本布局,掌握校园内主要建筑和设施的位置及相互之间的关系。

技能目标:培养学生使用地图进行导航的能力,提高学生独立寻找目的地的能力。

情感态度价值观目标:培养学生对校园文化的认同感,增强学生对学校的归属感。

二、教学内容根据课程目标,我们选择和了以下教学内容:校园平面图的识读,主要建筑和设施的位置及相互之间的关系,导航技巧的讲解和实践。

具体安排如下:第一课时,介绍校园平面图的基本知识;第二课时,讲解主要建筑和设施的位置及相互之间的关系;第三课时,教授导航技巧并学生进行实践。

三、教学方法为了激发学生的学习兴趣和主动性,我们将采用多种教学方法:讲授法,用于讲解校园平面图的基本知识和主要建筑和设施的位置关系;讨论法,用于引导学生探讨校园导航的技巧;案例分析法,通过分析具体案例,使学生更好地理解校园导航的方法;实验法,学生进行实地导航,提高学生的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:教材《校园导航图》,用于提供学习的基本知识;参考书,为学生提供更多的学习资料;多媒体资料,如校园地图和导航视频,用于直观展示校园布局和导航方法;实验设备,如指南针和地图,用于实地导航实验。

五、教学评估为了全面反映学生的学习成果,我们将采用以下评估方式:平时表现评估,包括学生在课堂上的参与度、提问回答等;作业评估,包括学生完成作业的质量、创新性等;考试评估,包括期中和期末考试,以及对学生掌握知识的全面考察。

评估方式将客观、公正,以最大程度地反映学生的学习成果。

六、教学安排本课程的教学安排如下:共 8 个课时,每个课时 45 分钟。

教学时间安排在每周的周一和周三下午,地点为教室 101。

教学进度将根据学生的实际情况和需要进行调整,以确保在有限的时间内完成教学任务。

七、差异化教学我们将根据学生的不同学习风格、兴趣和能力水平,设计差异化的教学活动和评估方式。

数据结构课程设计导航图

数据结构课程设计导航图

西安邮电大学
(计算机学院)
数据结构设计报告
题目:导航图
专业名称:软件工程
班级:班
学生姓名:
学号(8位):
指导教师:
设计起止时间:2014年12月15日—2014年12月26日
一. 设计目的
1.数据结构课程设计是让学生综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发
2. 通过课程设计,使学生通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。

3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力
二. 设计内容
我设计的是旅游查询系统,是用于校园的,任何景区都可以用。

对于游客来说,游客可以查询要游览的景点,可以显示出该景点的相关信息,景点等级。

也可以输入起点和终点,找到一条最短路径,或者这两点之间所有路径。

或者输入起点,自动生成一个全程最短的游览路线。

当然游客也可以查看校园的平面图。

对于管理员来说,管理员可以增,删,改景点和道路信息。

三.概要设计
1.功能模块图;
2.各个模块详细的功能描述。

1.浏览全景
显示校园的平面图,让游客大概的了解校园的形貌,以及各个景点的位置。

数据结构-算法实验报告——校园导航系统

数据结构-算法实验报告——校园导航系统

数据结构与算法分析课程设计报告设计题目:校园导航咨询系统专业学号姓名2013 年3 月3 日一、问题描述设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)(参考课本P186-P192)。

二、需求分析本程序分为五个模块,分别是显示校园全景、查询景点信息、问路查询系统、查看游览路线和退出系统。

(1)显示校园全景展示校园概貌图和各景点编号、名称。

(2)查询景点信息输入要查询的景点编号,显示景点的编号、名称和景点的简单介绍。

(3)问路查询系统输入要参观的两个景点的编号(按从大到小输入),显示两个景点间的最短路径游览方式和最短路径长。

(4)查看游览路线查询某个景点到其他景点的所有路径,并显示其长度。

(5)退出系统查询完毕关闭窗口,显示退出系统的界面三、概要设计1、主要函数:void main() 主函数,程序入口csinfo() 初始化景点信息csroad() 初始化道路信息showpath() 显示校园全景search() 查询景点信息floyd() 弗洛伊德函数,查询两个景点之间的最短路径所要经过的中间节点print(int i,int j) 打印两个景点的路径及最短距离shortpath() 问路查询,求最短路径ShortestPath_DIJ(Maph * M) 利用Dijkstra算法来计算出起点到各个顶点之间的最短路径,以v0为起点menu() 显示菜单选项2、主要变量:ps[MaxPointNum] 定义主要景点信息,存放景点的编号、名称、简要介绍等信息char name[20] 景点名称char number[15] 景点编号char info[100] 景点简介信息MaxPointNum 最大景点个数INFINITY 近似无穷大,表示两景点不可达Maph M 全局变量,定义M为Maph类型int shortest[MaxPointNum][MaxPointNum] 定义全局变量存贮最短路径int path[MaxPointNum][MaxPointNum] 定义存贮路径3、存储结构:3.1 图的类型定义typedef struct{char name[20]; //景点名称char number[15]; //景点代号char info[100]; //景点信息}Elemtype; //景点类型3.2 定义景点typedef struct{int num; //顶点编号Elemtype data; //顶点信息}Point; //定义顶点3.3定义全局变量typedef struct{Point ps[MaxPointNum]; //存放顶点的一维数组int road[MaxPointNum][MaxPointNum];//存放路径的长度(邻接矩阵)int poinum,arcnum; //顶点数,边数}Maph;4、求解算法:迪杰斯特拉算法求解无向图的最短路径四、详细设计详细参见C语言源程序1.调试分析运行程序进行调试:1.进入主界面,出现校园导航咨询系统主菜单。

数据结构课程设计_校园导航系统 _课程设计报告

数据结构课程设计_校园导航系统 _课程设计报告

南京工程学院课程设计说明书(论文)题目校园导航系统课程名称数据结构院系通信工程学院专业信息工程班级学生姓名学号设计地点指导教师设计起止时间:2008 年12月29 日至年月日目录1.课程设计题目 (1)2.软件功能描述 (1)3.软件总体设计 (1)3.1数据结构描述与定义 (1)3.2模块设计 (3)4.测试结果与分析 (4)5.课程设计总结 (5)附录:源程序清单 (6)1.课程设计题目校园导航系统2.软件功能描述在近一个星期的努力下,我编写的校园导航系统软件终于能够成功完成。

采用工程思想,将系统共分一下几个模块:数据结构定义模块、导航图建立模块、求最短路径模块、主菜单;下面是具体各功能简单的实际应用:➢数据结构定义模块:模块定义了导航图中各个节点的基本结构类型,主要采用邻接矩阵的存储结构来真实反映各节点到其他所有节点的路径长度(权值大小)。

➢导航图建立模块:采用上述结构体类型对导航图中每个节点进行赋值。

包括:各定点的名称(地点名),各个节点到其他所有节点的真实路径长度(赋权值)。

➢求最短路径模块:本模块的基本思想是采用迪杰斯特拉算法求最短路径。

次模块是本校园导航系统的核心模块,求两点间的最短路径与求一点到其他所有点最短路径两个子功能均是在最短路径算法模块的基础上进行调用,进而实现导航功能。

➢主菜单:主菜单中主要是显示导航图中的所有导航节点,能够快速方便的对各个地点进行导航。

以上程序的几个模块,构成了校园导航系统的基本组成部分,程序运行良好,达到了课程设计的基本要求。

由于所学知识有限,功能各个方面还有欠妥之处,希望得到指出与改正。

3.软件总体设计3.1数据结构描述与定义1.节点数据结构类型:#define MAX_V 30 //最大顶点个数typedef struct{char* vexs[MAX_V]; //顶点向量int arcs[MAX_V][MAX_V];//邻接矩阵int vexnum,arcnum;//图的当前顶点数和弧数}MGraph;2.创建导航图函数:int CreateUDN(MGraph &G)函数描述:主要将每个节点进行命名、每个顶点到其他所有定点的路径值用邻接矩阵进行存储。

数据结构课程设计校园导航之欧阳德创编

数据结构课程设计校园导航之欧阳德创编

一、课程设计目的本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。

设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。

通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

二、课程设计内容1)问题描述用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

要求能够回答有关景点介绍、游览路径等问题。

2)基本要求(1)查询各景点的相关信息;(2)查询图中任意两个景点间的最短路径。

(3)查询图中任意两个景点间的所有路径。

(4)增加、删除、更新有关景点和道路的信息三、课程设计过程1.需求分析(1)设计学校的校园平面图,选取出若干的具有代表性的景点构成一个抽象的无向带权图,顶点为景点,边的权值代表了景点间路径的长度。

(2)将景点的序号,名称,介绍存放起来准备查询。

(3)提供任意景点的信息;(4)提供任意经典的路径查询及其最优路线的查询(5)平面图景点的增加及删除,以及边和权值(长度)的改变2.概要设计1:第一点是主界面的设计,首先,为了该系统各个功能的管理,设计出含有多个菜单项的主菜单界面,可以更方便的使用该系统。

2:第二点是存储结构的设计,采取了图结构类型(mgraph)存储校园图的信息,景点信息用结构数组vexs存储,而且利用全局变量:visited[]数组用于存储顶点是否被访问标志;d[]数组用于存放权值和查找路径顶点的编号;campus是一个图结构的全局变量。

数据结构课程设计——校园导游图

数据结构课程设计——校园导游图

景德镇陶瓷学院信息工程学院班级:11计科(2)班学号:*************名:**指导老师:李娟、徐星时间:2013年6月27号题目:13*:图(校园导游图)7 :建立二叉树,层序、先序遍历14 :拓扑排序题目一:图(校园导游图)1.1、需求分析:需求:(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离。

为此图选择适当的数据结构。

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

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

分析:完成对整个导游图系统的功能实现,需要对的每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行。

有以下设计思路:(1).结合本校的实际情况,选出10个景点;(2).人为手工为选出的10个景点赋上相关信息(名称、代号、简介信息、以及路权等等);(3).根据选出来的10个景点用邻接矩阵存储校园图。

(4).依照景点的相关信息创建校园图。

(5).把纸质上的内容,利用C++编程语言编写查找景点相关信息的程序。

(6).根据人为赋值的路权,迪杰斯特拉算法计算任意两点之间的最短路径。

(7).综上所诉,用一个主函数把这些板块合成,生产一个菜单界面呈现在用户面前。

1.2、设计与实现:选出本校10个景点结合景德镇陶瓷学院实际情况,我选出以下10个景点,从1到10编号:图的初始化由于邻接矩阵特殊的存储方式,它非常便于快速的查找两个顶点之间的边上的权值。

所以,图采用带权的邻接矩阵存储。

决定了图的存储方式后,以华南农业大学10个景点的游览地图作为蓝本,把校园地图抽象化成顶点与边构成的图形式,如图2.2所示,途中数字代表线的权值。

1.3、模块的划分含有四个模块:(1)陶院地图信息(2)陶院景点信息(3)查找两点间最短路径(4)退出模板功能(1)将陶院的地图显示在程序运用上;(2)输入一个景点,运用程序上能够显示该景点的信息;(3)可以给游客提供两个景点的最短路径;(4)给游客提供方便。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
extern void Dispath(int dist[],int path[],int s[],int v,int i);
extern void Ppath(int path[],int i,int v);
void Point(MGraph p)
{
int x,y;
printf("请输入您所在的位置及目的地\n");
{8,32767,32767,8,32767,32767,6,32767,32767}};
p.n=M;p.e=N;
int i,j;
for(i=1;i<=M;i++)
for(j=1;j<=M;j++)
p.edges[i][j]=a[i][j];
for(i=1;i<=M;i++)
p.vexs[i].no=i;
typedef struct mgraph
{ int edges[MAXV][MAXV];
int n,e;//元素总个数边数
VertexType vexs[MAXV];
}MGraph;
extern void Check();
extern void Order(MGraph);
extern void Point(MGraph);
extern void Out(int x);
void Order(MGraph p)
{
int a[M+1][M+1];
a[M+1][M+1]={{0,1,2,3,4,5,6,7,8},
{1,0,5,32767,32767,32767,32767,32767,32767},
{2,5,0,10,8,32767,32767,32767,32767},
{
int INF=32767;
int dist[MAXV],path[MAXV];
int s[MAXV];
int mindis,i,j,u;
for(i=1;i<=g.n;i++)
{
dist[i]=g.edges[v][i];//距离初始化
s[i]=0;//s[]置空
if(g.edges[v][i]<INF)//路径初始化
extern void Beidamen();
extern voidXingzhenglou();
extern voidTushuguan();
extern voidJuyuan();
extern voidLiyuan();
extern voidChanglang();
extern voidDongdamen();
#include<stdio.h>
#include<process.h>
#define MAXV 100
#define M 8//顶点个数
#define N 9//边的个数
typedef struct vertextype
{ int no; //顶点编号
int data; //顶点其他信息
}VertexType;
printf("2校园一日游\n");
printf("3点对点地图查询\n");
for(;;)
{
scanf("%d",&x);
if(x==1) Check();break;
if(x==2)Order(p);break;
if(x==3)Point(p);break;
if(x==4)exit (0);
else printf("请重新输入:");
Ppath(path,k,v);//找顶点k的前一个顶点
printf("%d,",k);//输出顶点k
}
void Dispath(int dist[],int path[],int s[],int v,int i)
{
if(s[i]==1)
{
printf("从%d到%d的最短路径长度为:%d\t路径为:",v,i,dist[i]);
extern voidShiyanlou();
extern voidXiaoyuan();
extern void Allnames();
void main()
{
MGraph p;
int x;
do
{
printf("欢迎进入湖北经济学院校园导航系统\n");
printf("请选择:\n");
printf("1校园景点或建筑查询\n#43;g.edges[u][j];
path[j]=u;
}
}
Dispath(dist,path,s,v,y);//输出最短路径
}
void Ppath(int path[],int i,int v)//前向递归查找路径上的顶点
{
int k;
k=path[i];
if(k==v) return;//找到了起点则返回
printf("%d,",v);
Ppath(path,i,v);
printf("%d\n",i);
}
else printf("从%d到%d不存在路径\n",v,i);
}
void Allnames()
{
printf("1北大门\n2行政楼\n3图书馆\n4桔苑\n5栎苑\n6经济学家长廊\n7东大门\n8实验楼\n");
}
}while(x!=4);
}
//查询景点或建筑
void Check()
{
int x;
do
{
printf("请选择想查询的地点\n");
Allnames();//学校各个建筑名称
printf("0校园简介\n");
printf("9返回主菜单\n");
printf("请输入:\n");
for(;;)
if(x==7)Dongdamen();break;
if(x==8)Shiyanlou();break;
if(x==0)Xiaoyuan();break;
if(x==9)return;
else printf("请重新输入0到9:");
}
}while(x>0&&x<9);
}
//校园一日游
extern void DFS(MGraph p,int v);
}
void Out(int x)
{
switch (x)
{
case 1:printf("北大门\n");
case 2:printf("行政楼\n");
case 3:printf("图书馆\n");
case 4:printf("桔苑\n");
case 5:printf("栎苑\n");
case 6:printf("经济学家长廊\n");
{
scanf("%d",&x);
if(x==1)Beidamen();break;
if(x==2)Xingzhenglou();break;
if(x==3)Tushuguan();break;
if(x==4)Juyuan();break;
if(x==5)Liyuan();break;
if(x==6)Changlang();break;
case 7:printf("东大门\n\n");
case 8:printf("实验楼\n");
}
}
void Beidamen()
{
printf("壮丽雄伟的北大门,上书湖北经济学院几个大字,\n大门对面是商业街,还有大排档,大门右边是校园\n内部的商业街,发展的很不错,也很繁华的。\n");
}
voidXingzhenglou()
rear=(rear+1)%MAXV;
queue[rear]=v;
while(front!=rear)
{
front=(front+1)%MAXV;
for(i=1;i<=M;i++)
if(p.edges[v][i]=1&&visited[i]!=1)
DFS(p,i);
}
}
extern void Dijkstra(MGraph g,int v,int y);
DFS(p,1);
}
void DFS(MGraph p,int v)
{
int i;
int queue[MAXV],front=0,rear=0;
int visited[MAXV];
for(i=0;i<=M;i++) visited[i]=0;
printf("%2d",v);
Out(v);
visited[v]=1;
if(s[j]==0&&dist[j<mindis])
{
u=j;
mindis=dist[j];
}
s[u]=1;//顶点u加入s中
for(j=1;j<=g.n;j++)//修改不在s中的顶点的距离
if(s[j]==0)
if(g.edges[u][j]<INF&&dist[u]+g.edges[u][j]<dist[j])
相关文档
最新文档