校园导航系统课程设计报告

合集下载

校园导航程序课程设计

校园导航程序课程设计

校园导航程序课程设计一、课程目标知识目标:1. 学生能理解并掌握校园导航程序的基本原理和功能。

2. 学生能了解并运用编程语言(如Python)实现基本的地图展示、路径规划和信息查询功能。

3. 学生能掌握基础的地理信息系统(GIS)知识,并将其应用于校园导航程序设计。

技能目标:1. 学生能运用编程技能,设计并开发出一个简单的校园导航程序。

2. 学生能通过小组合作,进行需求分析、功能设计和程序测试,提高团队协作能力。

3. 学生能运用问题解决策略,解决在编程和调试过程中遇到的问题。

情感态度价值观目标:1. 学生能培养对编程和地理信息科学的兴趣,激发创新意识。

2. 学生能在课程学习过程中,体验编程带来的成就感,增强自信心。

3. 学生能认识到科技在现实生活中的应用,理解科技对人类生活的积极作用,培养社会责任感。

课程性质:本课程为信息技术与地理学科融合的实践性课程,旨在培养学生的编程能力、地理信息系统应用能力和团队协作能力。

学生特点:六年级学生具有一定的编程基础和地理知识,对新鲜事物充满好奇,喜欢动手实践,具备一定的自主学习能力。

教学要求:注重理论与实践相结合,关注学生个体差异,鼓励学生积极参与,充分调动学生的主观能动性。

将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 校园导航系统概述:介绍校园导航系统的基本概念、功能和应用场景,让学生对课程内容有一个整体的认识。

相关教材章节:信息技术课本第五章第二节“地理信息系统及其应用”。

2. 编程语言基础:回顾Python编程基础知识,重点复习变量、条件语句、循环语句和函数等基本概念。

相关教材章节:信息技术课本第二章“Python编程基础”。

3. 地理信息系统(GIS)知识:讲解GIS的基本原理,介绍地图坐标系、空间数据结构等基础知识。

相关教材章节:地理课本第八章第三节“地理信息系统及其应用”。

4. 校园导航程序设计:a. 需求分析:组织学生进行小组讨论,明确校园导航程序的功能需求。

校园导航系统课程报告

校园导航系统课程报告

数据结构课程设计报告题目:校园导航系统学生姓名:谌幼华学号: 09110806班级:091108指导教师:邹国华2011 年6 月3 日目录一、需求分析说明 (3)二、总体设计 (3)三、详细设计 (5)四、实现部分 (8)五、程序测试 (13)六、总结 (15)七、参考文献 (15)校园导航系统一、需求分析说明:(一)课程设计目的:本课程设计的目的就是要达到理论与实际应用相结合,使我们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。

(二)设计要求:设计一个校园导航系统,为来访的客人提供导航服务,具体要求:1. 设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

2. 为来访客人提供图中任意景点相关信息的查询。

3. 提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径以及任意景点到其他所有景点的最短路径查询。

4.列出所有校内无重复排列的景点,将所有景点的距离以邻接矩阵的方式呈现给使用者,提供使用者选择功能界面,按照提示进行操作。

5.在邻接矩阵中MAX表示最大距离即两个景点之间是不可到达的。

用实际权值来表示两个景点之间的距离,并且是可达的。

二、总体设计:1.数据结构:用图(无向网)来描述学校n个景点之间的关系,顶点为单位代号,权值为两景点的距离。

本系统基于东华理工大学校园平面图为基准而设计,先将校园内15个具有代表性的顶点列出,然后绘制出其平面图,标出任意两顶点间是否有直达的边,同时在图上有直达边的两顶点边的权值,本系统中设计的东华理工大学校园平面图如下(景点前面所对应的代号为系统中无向网的顶点号):东华理工大学学校平面图2.系统功能图:三、详细设计:一、按所设想的功能,把程序化分为7个模块,各模块的名称和其数据类型如下表所示:各模块的说明如下:1.类模块:本系统中只涉及了一个Graph(无向网类)类,其数据成员为无向网的相关信息,例如图的邻接矩阵(程序中用数组arcs[n+1][n+1]存放有关邻接矩阵的相关信息)、原点到各定点的相关信息(存放在dist[n+1数组中])、最短路径上该顶点的前一顶点相关信息(存放在path[n+1]数组中)、以求得到的最短路径上的顶点的顶点号(存放在s[n+1]数组中),同时将求最小路径的实现函shortest_path()定义为其成员函数。

课程设计校园导航系统

课程设计校园导航系统

课程设计校园导航系统一、课程目标知识目标:1. 学生能理解校园导航系统的基本概念,掌握其构成要素和应用场景。

2. 学生能描述校园导航系统中常用的定位技术和路径规划算法。

3. 学生了解地理信息系统(GIS)在校园导航系统中的作用,并掌握基本操作方法。

技能目标:1. 学生能够运用所学知识,设计并实现一个简单的校园导航系统。

2. 学生能够运用GIS软件进行地图数据处理、分析和可视化。

3. 学生能够通过小组合作,解决实际校园导航中的问题,提高团队协作能力。

情感态度价值观目标:1. 学生对校园导航系统产生兴趣,认识到科技在生活中的重要作用。

2. 学生在探究过程中,培养勇于尝试、不断优化的科学精神。

3. 学生通过解决实际问题,增强对学校环境的责任感,提高爱护公共设施的意识。

本课程针对初中年级学生,结合信息技术和地理学科,以实用性为导向,培养学生运用科技手段解决实际问题的能力。

课程设计注重理论与实践相结合,充分考虑学生的年龄特点和认知水平,通过小组合作、动手实践等方式,激发学生兴趣,提高学生的综合素养。

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

二、教学内容本章节教学内容主要包括以下几部分:1. 校园导航系统概述:介绍校园导航系统的基本概念、构成要素和应用场景,对应教材中“地理信息系统及其应用”章节。

2. 定位技术:讲解全球定位系统(GPS)、无线局域网(WLAN)等定位技术在校园导航系统中的应用,结合教材中“定位技术及其发展”章节。

3. 路径规划算法:介绍Dijkstra、A*等路径规划算法,分析其在校园导航系统中的作用,对应教材中“路径规划与优化”章节。

4. 地理信息系统(GIS)操作:学习GIS软件的基本操作,包括地图数据处理、分析和可视化,结合教材中“GIS软件与应用”章节。

5. 实践项目:设计并实现一个简单的校园导航系统,包括地图数据采集、路径规划、导航功能等,分阶段完成,对应教材中“实践项目与应用”章节。

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

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

南京工程学院课程设计说明书(论文)题目校园导航系统课程名称数据结构院系通信工程学院专业信息工程班级学生姓名学号设计地点指导教师设计起止时间: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)函数描述:主要将每个节点进行命名、每个顶点到其他所有定点的路径值用邻接矩阵进行存储。

校园导航系统课程设计报告

校园导航系统课程设计报告

题目石铁大校园导航系统学院信息科学与技术学院专业计算机科学与技术学号********学生姓名刘铸辉指导教师姓名陈娜日期:2013-8-31一.题目与要求实习一校园导游程序[ 问题描述]用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

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

游客通过终端可询问:(1 )从某一景点到另一景点的最短路径。

(2 )游客从公园进入,选取一条最佳路线。

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

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

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

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

[ 实现提示](1 )构造一个无向图G 并用邻接矩阵来存储。

(2 )利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,最短路径长度就用一维数组d[i] 存放;i 的范围:0 ~20 。

(3 )一维数组have[] 是用来记录最短路径出现顶点的顺序。

(4 )根据起点和终点输出最短路径和路径长度。

二.需求分析本校园导航系统由C语言编写,主要掌握最短路径的实现方法,以及构造无向图G并用邻接矩阵来存储,掌握迪杰斯特拉算法来算最短路径。

1.输入的形式和输出的范围:2.输出的形式:3.程序所能到达的功能:A.图中任意景点的相关信息查询B.任意两个景点间的最短路径C.任意两个景点间的所有路径D.增加有关景点和道路的信息E.删除更新有关景点和道路的信息F.更新有关景点和道路的信息G.显示全景H.退出该系统三.概要设计(1)本程序包含了10个函数①主函数main()②显示操作菜单函数menu()③景点名称及其简介设置函数picture(void)④图中任意景点相关信息查询函数checkscene(algraph g)⑤图中任意两个景点间的最短路径Dijkstra(algraph g)⑥任意两个景点间的全部路径alldistance(algraph g)⑦增加有关景点和道路的信息addscene(algraph g)⑧删除有关景点和道路的信息delscene(algraph g)⑨更新有关景点和道路的信息change(algraph g)⑩显示全景chang()(2)各函数之间的关系menu()picture(void)checkscene(algraph g)Dijkstra(algraph g)main() alldistance(algraph g)addscene(algraph g)delscene(algraph g)change(algraph g)chang()四.详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪代码,对主程序和其他模块也都需要写出伪代码算法。

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

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

课程设计报告学院、系:大学学院计算机科学与技术系专业:软件工程班级:2008级9班课程设计科目数据结构学生:04080904 喆指导教师:娄雅芳完成时间:2010年10月-12月校园导航系统设计报告一、设计任务与目标设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

本系统是一个涉及大学学院相关景点和场所查询系统,是为了方便人们能够更快更准地获得学校各个景点和场所的详细信息。

本系统为用户提供以下功能:(一)、查询了解学校概况,为导游参观者提供关于学校的相关信息。

(二)、查询校园各个场所和景点信息;(三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校。

校园导航查询系统的开发方法总结如下:(1) 调查,了解学校各个场所与场所或者是各个景点与景点之间的信息,路径和距离,从外来人员或者参观者和走访者的角度出发,该如何设计才能满足用户需求。

(2) 分析,对调查得到的数据进行分析,根据其要求实现的功能分析系统结构和界面将实现的基本功能。

(3) 设计与开发,设计系统界面并编辑实现其各个功能的代码。

(4) 调试,在设计完成后,调试系统运行的状况,修改完善系统,然后进行测试。

二、方案设计与论证校园旅游模型是由各个景点和景点以及场所和场所之间的路径组成的,所以这完全可以用数据结构中的图来模拟。

用图的结点代表景点或场所,用图的边代表景点或场所之间的路径。

所以首先应创建图的存储结构。

结点值代表景点信息,边的权值代表景点间的距离。

结点值及边的权值采用图存储。

本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。

计算路径长度,最短路线和最佳路径时可分别用迪杰斯特拉(Dijkastra)算法和哈密而顿回路算法实现。

最后用switch选择语句选择执行浏览景点信息或查询最短路径和距离。

《校园导航系统》课程设计报告

《校园导航系统》课程设计报告

《校园导航系统》课程设计报告姓名:郭璇学号:110263100129 班级:10网络专业:网络工程指导教师:唐轶媛蒋荣萍时间:2012/6/25-2012/7/6信息科学与工程学院目录摘要 (1)1.题目 (1)2.概要设计 (1)3.调试分析 (15)4.参考文献 (15)1.题目校园导航系统设计一个校园导游程序,后台操作:1、操作员信息管理如修改密码等2、能根据学校的规模进行添加景点信息、修改景点信息等功能,3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等)前台为来访的客人提供各种信息查询服务:1、设计学校的校园平面图,所含景点不少于10个。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

2、为来访客人提供图中任意景点相关信息的查询。

3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。

1.1 需求分析设计一个校园导航系统,导航系统又分为游客和管理员。

要进行管理操作还是游客操作由用户自己选择管理员的操作:修改景点信息、增加景点信息、交通管制等。

游客的操作:查看景点信息和查最短路径。

2.概要设计景点的信息由一维数组存放,景点关系由二维数据来存放景点的信息和关系从文件读取,进而初始化typedef struct //保存单个景点信息的结构体{char code[10]; //存放景点代码char name[20]; //存放景点名称char instruction[100]; //存放景点简介}ViewPoint;typedef struct //存放景点关系的二维数组{int edges[MAXV][MAXV]; //两景点间的距离int number; //景点的数量ViewPoint V[MAXV]; //保存景点信息的结构体数组}MGraph;2.1 流程图↓↓↓↓↓↓↓2.2详细设计void MainMenu(); 主菜单,写界面操作的函数。

校园导航定位系统课程设计

校园导航定位系统课程设计

校园导航定位系统课程设计一、课程目标知识目标:1. 理解并掌握校园导航定位系统的基本原理与功能;2. 学习并运用相关的地理信息系统(GIS)知识,进行校园地图的解读与分析;3. 了解全球定位系统(GPS)及其在校园导航中的应用。

技能目标:1. 能够运用校园导航定位系统,进行校园内位置信息的查找与路径规划;2. 培养学生团队协作能力,通过小组讨论、分享,共同解决校园导航中遇到的问题;3. 提高学生的实际操作能力,学会使用相关设备和技术进行定位与导航。

情感态度价值观目标:1. 培养学生对地理信息科学的兴趣,激发学生探索未知、勇于创新的精神;2. 强化学生的环保意识,倡导绿色出行,提高学生对校园环境的保护意识;3. 培养学生热爱学校、关爱他人的情感,提高学生社会责任感。

本课程针对中学生设计,结合学科特点,以实用性为导向,充分考虑学生年龄特点和认知水平。

通过本课程的学习,使学生能够将所学知识应用于实际生活,提高解决问题的能力,同时培养良好的情感态度价值观。

课程目标具体、可衡量,为后续教学设计和评估提供明确方向。

二、教学内容1. 校园导航定位系统原理介绍- 导航定位技术的发展背景与现状- 校园导航定位系统的组成与工作原理2. 地理信息系统(GIS)知识- 校园地图的基本要素与解读- GIS在校园导航中的应用3. 全球定位系统(GPS)应用- GPS的原理与功能- GPS在校园导航中的实际应用4. 实践操作与案例分析- 校园导航定位设备的认识与使用- 实际操作:校园内路径规划与导航- 案例分析:解决校园导航中遇到的问题5. 团队协作与讨论分享- 小组讨论:探讨校园导航定位系统的优缺点- 分享经验:介绍个人在校园导航中的实用技巧教学内容依据课程目标,结合教材章节,确保科学性和系统性。

教学大纲明确,教学内容安排合理,注重理论与实践相结合,充分调动学生的积极性与参与度。

通过本章节的学习,使学生深入理解校园导航定位系统的相关知识,提高实际操作能力。

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

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

##大学数据结构课程设计报告题目:校园导航系统院(系):计算机工程学院学生姓名:班级:学号:起迄日期: 2011.6.19--6.30指导教师:指导教师评语:成绩:签名:年月日20XX—20XX年度第 2 学期一、需求分析1.问题描述:从理工大学的平面图中选取10个有代表性的景点,抽象成一个无向带权图。

以图中顶点表示景点,边上的权值表示两地之间的距离,求取任意两点间最短路径。

2.基本功能本程序主要实现的功能是为用户提供路径咨询。

根据用户指定的始点和终点输出相应路径(用到output()函数),或者根据用户指定的景点输出景点的信息(用到search()函数)。

3.输入输出本程序主要输入输出信息是景点编号和景点名称,以字符串的形式输入输出。

二、概要设计1.设计思路:本程序是校园导航系统,即求两点间的最短路径。

其主要算法是迪杰斯特拉算法,在此基础上再加上菜单函数输出函数造图函数查找函数即可。

2.数据结构设计:抽象数据类型图的定义如下: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)初始条件:图G存在,v是G中某个顶点,w是v的邻接顶点。

课程设计校园导航

课程设计校园导航

课程设计校园导航一、教学目标本课程旨在通过校园导航的学习,让学生掌握校园地图的阅读和使用方法,培养学生独立寻找目的地和规划路线的能力。

具体目标如下:1.了解地图的基本要素,如比例尺、图例、方向等。

2.掌握如何阅读校园地图,理解地图上的符号和标注。

3.能够使用校园地图找到指定的地点。

4.学会根据目的地和起始位置规划合理的路线。

5.能够运用地图信息进行简单的方向判断和距离估算。

情感态度价值观目标:1.培养学生对校园环境的认知和热爱,增强校园归属感。

2.培养学生独立思考和解决问题的能力,提高自信心。

二、教学内容本课程的教学内容主要包括校园地图的阅读方法和路线规划技巧。

具体安排如下:第一课时:校园地图的基本知识1.介绍地图的基本要素,如比例尺、图例、方向等。

2.学习如何阅读校园地图,理解地图上的符号和标注。

第二课时:校园地图的使用技巧1.学习如何找到指定的地点,认识校园地图上的重要建筑物和设施。

2.学会根据目的地和起始位置规划合理的路线,考虑交通方式和时间成本。

第三课时:校园地图的实际应用1.进行校园实地考察,运用地图找到指定的地点。

2.小组合作,根据目的地和起始位置规划并执行路线。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法等。

1.讲授法:教师通过讲解地图的基本知识和使用技巧,为学生提供理论支持。

2.讨论法:学生分组讨论实际案例,分享自己的理解和经验,互相学习。

3.案例分析法:通过分析具体的校园导航案例,引导学生思考和解决问题。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用适合学生年龄特点和认知水平的校园导航教材,提供系统的知识框架。

2.参考书:提供相关的参考书籍,供学生拓展阅读和学习。

3.多媒体资料:制作课件和教学视频,以图文并茂的形式展示教学内容。

4.实验设备:准备地图和导航工具,如指南针、测距仪等,让学生进行实际操作和实验。

校园导航问题课程设计

校园导航问题课程设计

校园导航问题课程设计一、课程目标知识目标:1. 学生能理解并掌握校园导航问题的基本概念,包括坐标系、方向、距离等。

2. 学生能够运用所学的数学知识,如几何、代数等,解决校园导航中的实际问题。

3. 学生能够通过分析校园地图,识别并描述校园内的主要建筑、道路和地标。

技能目标:1. 学生能够运用地图阅读技巧,准确地找到校园内任意两点之间的路径。

2. 学生能够运用计算工具或手工计算,估算路径的长度和所需时间。

3. 学生能够运用问题解决策略,如比较、分类、推理等,解决复杂的校园导航问题。

情感态度价值观目标:1. 学生能够培养对数学学习的兴趣,认识到数学在生活中的广泛应用。

2. 学生能够培养合作精神,与同学一起探讨和解决校园导航问题。

3. 学生能够培养空间观念和方向感,提高在校园环境中的适应能力和自主能力。

分析课程性质、学生特点和教学要求:本课程为数学学科,结合校园导航问题,旨在让学生在实际情境中运用所学知识。

考虑到学生所在年级的特点,课程设计注重培养学生的空间观念和问题解决能力。

在教学过程中,注重启发式教学,引导学生主动探究,提高学生的实践操作能力和创新思维。

二、教学内容1. 校园坐标系建立:介绍坐标系的定义,通过校园地图建立平面直角坐标系,使学生理解坐标与实际位置的关系。

2. 方向与距离测量:讲解方向的概念,学习使用量角器、直尺等工具测量地图上的方向和距离。

3. 路径规划:结合实际校园路径,运用最短路径算法(如Dijkstra算法)进行路径规划,分析并优化行走路线。

4. 时间与速度计算:运用速度公式,根据路径长度计算行走时间,培养学生运用数学知识解决实际问题的能力。

5. 校园导航应用:结合现代导航技术,介绍GPS定位、电子地图等导航工具的使用方法,使学生了解科技在导航中的应用。

教学内容安排和进度:第一课时:校园坐标系建立与方向距离测量。

第二课时:路径规划与时间速度计算。

第三课时:校园导航应用与实践操作。

校园导航系统的课程设计

校园导航系统的课程设计

校园导航系统的课程设计一、课程目标知识目标:1. 学生能理解并掌握校园导航系统的基本概念和原理;2. 学生能掌握使用校园导航系统所需的相关地图知识,如地图阅读、方向识别等;3. 学生能了解并描述校园导航系统中的定位技术、路径规划算法等关键技术。

技能目标:1. 学生能够运用所学知识,独立操作校园导航系统,完成校园内的定位和路径规划;2. 学生能够分析并解决在使用校园导航系统过程中遇到的问题,提高问题解决能力;3. 学生能够通过小组合作,共同设计与完善校园导航系统,提高团队协作能力。

情感态度价值观目标:1. 学生通过学习校园导航系统,培养对地理信息科学和现代信息技术的兴趣和热情;2. 学生在学习过程中,增强对团队合作、互助互爱的认识,培养良好的团队精神和沟通能力;3. 学生能够认识到科技在现实生活中的应用,提高社会责任感和创新意识。

本课程针对初中年级学生设计,结合学生年龄特点,注重培养学生的学习兴趣和实际操作能力。

课程性质以实践性、综合性为主,通过讲授、实践、小组合作等多种教学方式,使学生掌握校园导航系统的相关知识,提高学生的实际问题解决能力和团队协作能力。

在教学过程中,注重分层教学,关注学生的个体差异,确保课程目标的实现。

课程目标的具体分解,便于教师在教学设计和评估中,有针对性地提高教学质量,实现学生的全面发展。

二、教学内容本章节教学内容主要包括以下几部分:1. 校园导航系统基础知识:- 地图的基本概念与类型;- 方向识别与地图阅读技巧;- 常见导航系统的功能与原理。

2. 定位技术与路径规划算法:- GPS定位原理及其在校园导航中的应用;- 路径规划算法的基本原理与分类;- 校园路径规划的实际应用案例分析。

3. 校园导航系统的操作与应用:- 系统注册、登录及基本设置;- 校园地图浏览与搜索功能;- 实地操作:使用校园导航系统完成指定路线的导航。

4. 小组合作设计与完善校园导航系统:- 分析现有校园导航系统的优缺点;- 小组讨论、设计并完善校园导航系统功能;- 展示与评价:展示各组设计成果,进行评价与交流。

校园导航系统课程设计报告材料

校园导航系统课程设计报告材料

题目石铁大校园导航系统学院信息科学与技术学院专业计算机科学与技术学号 20112840 学生姓名铸辉指导教师娜日期:2013-8-31一.题目与要求实习一校园导游程序[ 问题描述]用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

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

游客通过终端可询问:(1 )从某一景点到另一景点的最短路径。

(2 )游客从公园进入,选取一条最佳路线。

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

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

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

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

[ 实现提示](1 )构造一个无向图G 并用邻接矩阵来存储。

(2 )利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,最短路径长度就用一维数组d[i] 存放;i 的围:0 ~20 。

(3 )一维数组have[] 是用来记录最短路径出现顶点的顺序。

(4 )根据起点和终点输出最短路径和路径长度。

二.需求分析本校园导航系统由C语言编写,主要掌握最短路径的实现方法,以及构造无向图G并用邻接矩阵来存储,掌握迪杰斯特拉算法来算最短路径。

1.输入的形式和输出的围:2.输出的形式:3.程序所能到达的功能:A.图中任意景点的相关信息查询B.任意两个景点间的最短路径C.任意两个景点间的所有路径D.增加有关景点和道路的信息E.删除更新有关景点和道路的信息F.更新有关景点和道路的信息G.显示全景H.退出该系统三.概要设计(1)本程序包含了10个函数①主函数main()②显示操作菜单函数 menu()③景点名称及其简介设置函数 picture(void)④图中任意景点相关信息查询函数 checkscene(algraph g)⑤图中任意两个景点间的最短路径 Dijkstra(algraph g)⑥任意两个景点间的全部路径 alldistance(algraph g)⑦增加有关景点和道路的信息 addscene(algraph g)⑧删除有关景点和道路的信息 delscene(algraph g)⑨更新有关景点和道路的信息 change(algraph g)⑩显示全景 chang()(2)各函数之间的关系menu()picture(void)checkscene(algraph g)Dijkstra(algraph g)main() alldistance(algraph g)addscene(algraph g)delscene(algraph g)change(algraph g)chang()四.详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪代码,对主程序和其他模块也都需要写出伪代码算法。

毕业论文校园导航系统数据结构课程设计报告书

毕业论文校园导航系统数据结构课程设计报告书

毕业论⽂校园导航系统数据结构课程设计报告书课程设计报告书课程名称数据结构设计题⽬校园导航系统专业班级计算机11-4 班⽬录1.设计时间 (2)2.设计⽬的 (2)3.设计任务 (2)4.设计内容 (2)4.1需求分析 (2)4.2总体设计 (3)4.3详细设计 (4)4.4测试与分析 (12)4.4.1测试 (12)4.4.2分析 (13)4.5 附录 (14)5 总结与展望 (20)6.参考⽂献 (21)7.成绩评定 (21)1 设计时间2013年12⽉3⽇2 设计⽬的1.加深对《数据结构》这⼀课程所学内容的进⼀步理解与巩固2.通过完成课程设计,逐渐培养⾃⼰的编程能⼒;3.培养给出题⽬后,构建框架,⽤计算机解决的能⼒;4.通过调试程序积累调试C程序设计的经验;3设计任务给出校园各主要建筑的名称信息及有线路联通的建筑之间的距离,利⽤校园导航系统计算出给定的起点到终点之间的最近距离及线路。

4 设计内容4.1需求分析1.程序所能达到的功能:(1) map——输出⼭东科技⼤学平⾯图。

(2) init()——按相应编号输⼊各个节点内容,对相应路径赋值的函数。

(3) floyd()-- --弗洛伊德求最短路径(4) information()——输出简介的函数(5) Path()——最短路径的输出函数(6) shortestpath()——调⽤弗洛伊德和最短路径输出的函数(7) main()——主函数2.输⼊的形式和输⼊值的范围:输⼊数字和字母:字母:以s查询最短路径;以i查询信息;以e退出程序。

数字:从1到9输⼊。

3.输出的形式:从A到B得最短路径为:A-到-C-到-D-到-B最短距离为:xxx⽶。

4.测试数据包括在正确的输⼊及输出结果及含有错误的输⼊及输出结果:Input:sOutput:Please enter the number two to query : 1 7Output:The shortest path from Area C dormitory building to library is: Area C dormitory building--Area C restaurant--library; The shortest distance is:150meters.Input:iOutput:Please enter the number of query site: 3Output:@name: Area B dormitory building@introduction:Area B student rest areainput:eoutput:Thank you for you use4.2总体设计1.抽象数据类型定义typedef struct{char name[100] ;int number;char introduce[100];}Vertex;2.主程序模块的整体流程1、进⼊主函数,调⽤init(),map()。

校园导航课程设计

校园导航课程设计

校园导航课程设计一、课程目标知识目标:1. 学生能理解并掌握校园平面图的基本要素,如比例尺、方向、图例等。

2. 学生能通过校园导航课程,学习并运用地理知识,如定位、方向判断和路线规划。

3. 学生能了解并描述学校的历史、文化及各个设施的用途。

技能目标:1. 学生能够运用地图和导航工具,进行实地定位和方向判断。

2. 学生能够独立规划从一点到另一点的校园内最优路线。

3. 学生通过小组合作,提高问题解决能力和团队协作能力。

情感态度价值观目标:1. 学生培养对校园环境的热爱,增强校园荣誉感和归属感。

2. 学生在课程中培养勇于探索和实践的精神,提高自信心。

3. 学生通过学习校园导航,培养尊重规则、关爱他人的品质,增强社会责任感。

课程性质:本课程以实践性、互动性为主,结合地理知识,培养学生实际运用能力。

学生特点:六年级学生具备一定的地理知识基础,好奇心强,喜欢探索和实践活动。

教学要求:教师应注重引导学生将理论知识与实际操作相结合,鼓励学生积极参与,培养实际问题的解决能力。

同时,关注学生的情感态度价值观的培养,使学生在掌握知识技能的同时,形成良好的品质。

通过对课程目标的分解和实现,为学生提供明确的学习成果,便于教学设计和评估。

二、教学内容1. 校园平面图的认识:- 比例尺的理解与应用- 方向的判断与识别- 图例的解读与使用2. 实地导航技巧:- 定位的实践与应用- 路线规划的步骤与方法- 方向定位仪器的操作与使用3. 校园文化与历史:- 学校历史简介- 校园主要设施的介绍与了解- 校园特色文化的传承与发扬4. 小组合作与问题解决:- 小组分工与合作方法- 问题的发现与提出- 解决方案的设计与实施教学大纲安排:第一课时:校园平面图的认识与解读第二课时:实地导航技巧的实践与应用第三课时:校园文化与历史的了解与传承第四课时:小组合作与问题解决能力的培养教学内容关联教材:《小学地理》六年级上册第三章“地图的识别与应用”;《小学社会》六年级上册第二章“我们的学校”;《小学综合实践活动》六年级上册“校园探秘”主题。

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

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

数据结构课程设计—校园导航报告
校园导航作为一种常用的地图应用,其设计并不复杂,但在功能实现中涉及到多种常
见数据结构,如图、树结构等。

本报告对校园导航的数据结构设计进行详细说明,主要可
以分为三个部分:
1、数据输入。

在实现校园导航功能之前,需要输入校园数据,各个元素需要形成节点并构建图,比
如楼宇、地点以及相连的路径等,用户可以输入各个节点的属性,然后形成节点、构建图、标记属性等。

2、数据结构设计
对于校园地图来说,一般采用有向图和无向图这两种图形结构。

有向图表示有方向性
的连接关系,一般用于实现单程导航;无向图表示无方向性的连接关系,一般用于实现多
程导航,比如从一个地点到达另一个地点的最短路径。

另外,在校园地图中也会遇到对节点进行索引的情况,一般采用哈希表来构造索引,
哈希表存储不同的数据结构的元素,以及这些元素的信息,从而实现快速查找功能。

3、搜索算法设计
如许多搜索应用,校园导航中也有搜索功能,搜索过程中,会在图和哈希表中寻找符
合条件的结果。

有关搜索算法,常用的有深度优先搜索算法和广度优先搜索算法。

深度优先搜索算法通过沿着关系网的深度来搜索,即每次搜索一条路径直至无路可走;而广度优先搜索算法通过沿着关系网的广度来搜索,即每次从多条路径中选择最佳路径进
行搜索,并将其标记,直到找到最终结果
总体来看,校园导航数据结构设计包含了输入、构建图、节点索引以及搜索等多种操作,可以利用图、树、哈希表等数据结构设计实现各项功能,以最优的性能完成地图搜索
工作。

校园导航地系统课程设计

校园导航地系统课程设计

校园导航地系统课程设计一、课程目标知识目标:1. 学生能理解校园导航地系统的基本概念,掌握其功能与应用场景。

2. 学生能描述地图坐标系、定位技术和路径规划算法的基本原理。

3. 学生了解地理信息系统(GIS)在校园导航中的应用。

技能目标:1. 学生能运用所学知识,使用校园导航地系统进行定位和路径规划。

2. 学生能通过实际操作,掌握地图坐标系转换和距离、角度测量方法。

3. 学生具备分析问题、解决问题的能力,能够针对校园导航中的实际问题提出解决方案。

情感态度价值观目标:1. 学生培养对地理信息科学的兴趣,激发探索精神和创新意识。

2. 学生认识到校园导航地系统在生活中的重要性,增强学以致用的意识。

3. 学生通过合作学习,培养团队协作能力和沟通能力,提高人际交往能力。

课程性质:本课程为实践性较强的信息技术课程,结合地理、数学等学科知识,旨在培养学生的实际操作能力和问题解决能力。

学生特点:六年级学生具有一定的信息技术基础和地理知识,对新鲜事物充满好奇心,喜欢动手操作,但注意力集中时间有限。

教学要求:结合学生特点,课程设计应注重实践操作,以任务驱动法引导学生主动探究,充分调动学生的积极性。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 导航地系统基础知识:- 校园地图的基本构成要素- 地图坐标系及其转换方法- 定位技术原理及其在校园导航中的应用2. 地理信息系统(GIS)应用:- GIS的基本概念与功能- 校园导航中GIS的应用实例- GIS软件的基本操作与使用方法3. 路径规划与导航:- 路径规划算法原理- 校园路径规划的实际操作- 导航系统界面设计与使用4. 实践操作与案例分析:- 使用GIS软件绘制校园地图- 基于定位技术的校园导航应用- 分析校园导航中的实际问题,并提出解决方案教学内容安排与进度:第一课时:导航地系统基础知识,地图坐标系及其转换方法第二课时:定位技术原理及其在校园导航中的应用第三课时:GIS的基本概念与功能,校园导航中GIS的应用实例第四课时:路径规划算法原理,校园路径规划的实际操作第五课时:导航系统界面设计与使用,实践操作与案例分析教材章节及内容:《信息技术》六年级上册:第二章 地理信息系统与导航2.1 导航地系统基础知识2.2 GIS的基本概念与功能2.3 路径规划与导航2.4 实践操作与案例分析教学内容紧密结合课程目标,确保科学性和系统性,通过实践操作与案例分析,帮助学生将理论知识应用于实际情境中。

综合实习报告-校园导航系统的设计

综合实习报告-校园导航系统的设计

综合实习报告题目校园导航系统的设计学院信息科学与工程学院专业计算机科学与技术姓名学号班级指导教师助理指导教师二O一五年一月十一日1 设计背景背景概要:我校每年都会招收一大批新生,而且每年都会有校外人员来到我们济南大学参观。

这些人对我们济南大学不是很熟悉,他们需要花时间去熟悉我们的学校,特别是新生,他们将会在这里生活学习四年或者更久,他们所需要熟悉了解的东西比一般的人都要多很多,同时所需要花的时间也会多很多,有的时候还不是很方便。

随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。

采用计算机进行校园导航已成为衡量校园数字化的重要标志。

校园导航效率的好坏对于来校参观的客人和学校管理者来说都至关重要,在很大程度上影响着校园的数字化建设和学校的影响力。

因此,本次实习研究的校园导航系统具有一定的使用价值和现实意义。

有利条件:现在计算机软硬件的发展迅速,各种网络技术的逐渐成熟:GPS定位系统的成熟JSP技术的发展和逐渐成熟B/S架构的兴起和发展开发工具:SQL Servere 2000DreamwaeverNetBeans2 需求分析现在的大学占地面积越来越大,建筑物越来越多,功能越来越多样,校内的道路也是纵横交错,校园导航系统可以帮助用户更加快速的了解学校的道路,建筑布局及建筑物的基本信息等(用户主要是新生,家长,教职工,外来参观人员等),在帮助用户了解小小道路、实现导航的功能的基础上,校园导航系统还录入了学校各个景点建筑的相关信息,以供使用者更方便快捷的找到目的地。

2.1 系统功能1.查看学校的全景图2.学校主要景点的分布和各个景点的简介3.景点按名称搜索、按功能搜索4.定位使用者的当前位置5.查看某一景点到其它所有景点的最短路径(迪杰斯特拉算法)6.查询任意两个景点之间的最短路径7.游客的需求或留言等。

2.1.1 描述功能1导入学校地图,选择查看全景图时可以显示出来,可以对全景图进行放大和缩小操作,还可以进行拖动。

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

题目石铁大校园导航系统学院信息科学与技术学院专业计算机科学与技术学号 20112840 学生姓名刘铸辉指导教师姓名陈娜日期:2013-8-31一.题目与要求实习一校园导游程序[ 问题描述]用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

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

游客通过终端可询问:(1 )从某一景点到另一景点的最短路径。

(2 )游客从公园进入,选取一条最佳路线。

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

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

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

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

[ 实现提示](1 )构造一个无向图G 并用邻接矩阵来存储。

(2 )利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,最短路径长度就用一维数组d[i] 存放;i 的范围:0 ~20 。

(3 )一维数组have[] 是用来记录最短路径出现顶点的顺序。

(4 )根据起点和终点输出最短路径和路径长度。

二.需求分析本校园导航系统由C语言编写,主要掌握最短路径的实现方法,以及构造无向图G并用邻接矩阵来存储,掌握迪杰斯特拉算法来算最短路径。

1.输入的形式和输出的范围:2.输出的形式:3.程序所能到达的功能:A.图中任意景点的相关信息查询B.任意两个景点间的最短路径C.任意两个景点间的所有路径D.增加有关景点和道路的信息E.删除更新有关景点和道路的信息F.更新有关景点和道路的信息G.显示全景H.退出该系统三.概要设计(1)本程序包含了10个函数①主函数main()②显示操作菜单函数 menu()③景点名称及其简介设置函数 picture(void)④图中任意景点相关信息查询函数 checkscene(algraph g)⑤图中任意两个景点间的最短路径 Dijkstra(algraph g)⑥任意两个景点间的全部路径 alldistance(algraph g)⑦增加有关景点和道路的信息 addscene(algraph g)⑧删除有关景点和道路的信息 delscene(algraph g)⑨更新有关景点和道路的信息 change(algraph g)⑩显示全景 chang()(2)各函数之间的关系menu()picture(void)checkscene(algraph g)Dijkstra(algraph g)main() alldistance(algraph g)addscene(algraph g)delscene(algraph g)change(algraph g)chang()四.详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪代码,对主程序和其他模块也都需要写出伪代码算法。

(1)结点类型和指针类型typedef struct {int adj;int *info;}sceneinfo;typedef struct adjlist{int num;char *sight;char *description;}adjlist;typedef struct algraph{adjlist ver[MAXNUM];sceneinfo arcs[MAXNUM][MAXNUM];int vexnum,arcnum;} algraph;(2)图的基本操作①主菜单//主菜单int menu(void){ int i;printf("\n-------------------------欢迎来到莱震德瑞hui 校园导航系统!!-----------------------------------------------------\n");printf("1.图中任意景点的相关信息查寻\n");printf("2.任意两个景点间的最短路径\n");printf("3.任意两个景点间的所有路径\n");printf("4.增加有关景点和道路的信息\n");printf("5.删除更新有关景点和道路的信息\n");printf("6.更新有关景点和道路的信息\n");printf("7.显示全景\n ");printf("8.退出该系统\n ");printf("---------------------------让辉哥带大家在石家庄铁道大学翱翔吧!!------------------------------------------------------\n");printf("请输入你要进行的操作:");scanf("%d",&i);return(i);}②景点名称及其简介void picture(void){ int i,j;m.vexnum=11;m.arcnum=16;for(i=0;i<m.vexnum;i++)m.ver[i].num=i;m.ver[0].sight="xiaomen";m.ver[1].sight="学校大门,一教";m.ver[2].sight="图书馆";m.ver[3].sight="操场";m.ver[4].sight="体育馆";m.ver[5].sight="青春苑";m.ver[6].sight="办公楼";m.ver[7].sight="第一实验楼";m.ver[8].sight="第九实验楼";m.ver[9].sight="第九宿舍楼";m.ver[10].sight="家属院";m.ver[1].description="进入学校大门就可以看见一教,一教西面是二教和三教";m.ver[2].description="自习和阅读的心灵家园,后身是第二实验楼";m.ver[3].description="跑道和足球场";m.ver[4].description="室内篮球场和游泳场";m.ver[5].description="学生活动中心和综合餐厅";m.ver[6].description="办公中心,包括开元楼和春晖楼";m.ver[7].description="挨着医院和综合教学楼,物理实验";m.ver[8].description="计算机和电工实验,西邻机械学院";m.ver[9].description="生活区中心,西邻超市水房澡堂,东临一,二三食堂";m.ver[10].description="教职工住处,在学校最北面";for(i=0;i<m.vexnum;++i)for(j=0;j<m.vexnum;++j)m.arcs[i][j].adj=INF;m.arcs[1][2].adj=m.arcs[2][1].adj=100;m.arcs[1][3].adj=m.arcs[3][1].adj=300;m.arcs[2][6].adj=m.arcs[6][2].adj=500;m.arcs[3][5].adj=m.arcs[5][3].adj=600;m.arcs[1][4].adj=m.arcs[4][1].adj=220;m.arcs[4][5].adj=m.arcs[5][4].adj=600;m.arcs[4][9].adj=m.arcs[9][4].adj=450;m.arcs[4][6].adj=m.arcs[6][4].adj=650;m.arcs[5][7].adj=m.arcs[7][5].adj=300;m.arcs[6][8].adj=m.arcs[8][6].adj=600;m.arcs[10][9].adj=m.arcs[9][10].adj=100;m.arcs[7][10].adj=m.arcs[10][7].adj=250;m.arcs[7][9].adj=m.arcs[9][7].adj=280;m.arcs[8][9].adj=m.arcs[9][8].adj=400;m.arcs[8][4].adj=m.arcs[4][8].adj=100;}③图中任意景点相关信息查询void checkscene(algraph g){ int i,j;char ch;while(1){ sceneplace();printf("请输入你要查询的景点的编号:");scanf("%d",&i);if(i>p || i<0)printf("输入错误!!\n");else{for(j=0;j<=p;j++){ if(i==j){ printf("你要查询的景点的相关信息如下:\n");printf("%d\t\t%s\n",g.ver[i].num,g.ver[i].sight);printf("%s\n",g.ver[i].description);}}}printf("是否继续查询?(y|n):");scanf("%s",&ch);if(ch=='N'||ch=='n')break;}}④图中任意两个景点间的最短路径void Dijkstra(algraph g){ char ch;int path1[MAXNUM];int dist[MAXNUM];int s[MAXNUM];int mindis,i,j,u,n=p;int l,k;int v0,po;while(1){sceneplace();printf("请输入出发景点的序号:");scanf("%d",&v0);printf("请输入目的景点的序号:");scanf("%d",&po);for(i=0;i<n;i++){ dist[i]=g.arcs[v0][i].adj;s[i]=0;if(g.arcs[v0][i].adj!=INF)path1[i]=v0;elsepath1[i]=-1;}s[v0]=1;path1[v0]=0;for(i=0;i<n;i++){ mindis=INF;u=-1;for(j=0;j<n;j++)if(s[j]==0 && dist[j] < INF){ u=j;mindis=dist[j];}s[u]=1;for(j=0;j<n;j++)if(s[j]==0)if(g.arcs[u][j].adj < INF&& dist[u]+g.arcs[u][j].adj<dist[j]){ dist[j]=dist[u]+g.arcs[u][j].adj;path1[j]=u;}}dispath(g,dist,path1,s,n,v0,po);printf("\n是否继续查询?(y|n):");scanf("%s",&ch);if(ch=='N'||ch=='n')break;}}⑤任意两个景点间的全部路径void path(algraph g,int i,int j,int k){int s,ko;if(r[k]==j){a++;printf("第%d条:",a);for(s=0;s<=k-1;s++){ printf("%s",g.ver[r[s]].sight);printf("-->");}printf("%s\n",g.ver[r[s]].sight);}s=0;while(s<g.vexnum){if(s!=i){ ko=r[k];if(g.arcs[ko][s].adj != INF && visited[s]==0) { visited[s]=1;r[k+1]=s;path(g,i,j,k+1);visited[s]=0;}}s++;}}void alldistance(algraph g){ int i,j,k,l;char sh;while(1){ sceneplace();printf("\n请选择出发景点的序号:");scanf("%d",&i);printf("\n请选择目地景点的序号:");scanf("%d",&j);for(k=0;k<g.vexnum;k++)if(i==g.ver[k].num) i=k;for( l=0;l<g.vexnum;l++)if(j==g.ver[l].num) j=l;printf("从%s到%s的所有游览路径有:\n",g.ver[i].sight,g.ver[j].sight); r[0]=i;for(k=0;k<1;k++){ visited[i]=0;a=0;path(g,i,j,0);}printf("继续查询?(y|n):");scanf("%s",&sh);if(sh=='N'||sh=='n')break;}}⑥增加有关景点和道路的信息void addscene(algraph g){int j,i,b;char yi,mon[10],moh[100];while(1){ sceneplace();g.ver[p].num=p;printf("请输入新景点的名称:");scanf("%s",mon);m.ver[p].sight=(char*)malloc(10);strcpy(m.ver[p].sight,mon);printf("\n请输入新景点的相关简介:");scanf("%s",moh);m.ver[p].description=(char*)malloc(100);strcpy(m.ver[p].description,moh);g.vexnum=g.vexnum+1;for(j=0;j<p;++j){ m.arcs[p][j].adj=INF;m.arcs[j][p].adj=INF;}printf("\n请问有几个景点与该景点直接相通:");scanf("%d",&i);printf("\n请输入与该景点相通的景点的序号及它们之间的距离:");for(j=0;j<i;j++){ printf("\n请输入第%d个景点的序号:",j+1);scanf("%d",&b);printf("\n请输入该两个景点之间的距离:");scanf("%d",&g.arcs[p][b].adj);g.arcs[b][p].adj=g.arcs[p][b].adj;m.arcs[b][p].adj=g.arcs[p][b].adj;m.arcs[p][b].adj=m.arcs[b][p].adj;}printf("你输入的景点信息是:\n");printf("%d \t%s \t %s\n\n ", g.ver[p].num,m.ver[p].sight,m.ver[p].description);g.arcnum=g.arcnum+i;p=p+1;m.vexnum=p;sceneplace();printf("是否继续添加?(y|n):");scanf("%s",&yi);if(yi=='N'||yi=='n')break;}}⑦删除有关景点和道路的信息void delscene(algraph g){ int i,j,k,l;char sh;while(1){sceneplace();printf("\n请输入你将要删除的景点序号:");scanf("%d",&i);for(k=0;k<g.vexnum;k++)if(i==g.ver[k].num) j=k;m.ver[j].sight=NULL;for(l=1;l<m.vexnum;++l){ m.arcs[l][j].adj=INF;m.arcs[j][l].adj=INF;}m.vexnum=m.vexnum-1;sceneplace();printf("删除继续?(y|n):");scanf("%s",&sh);if(sh=='N'||sh=='n')break;}}⑧更新有关景点和道路的信息void change(algraph g){ int i,b,j,th,fh,k;char sh,mon[10],moh[100];while(1){sceneplace();printf("请输入你将要修改信息的景点序号:");scanf("%d",&i);for(k=0;k<g.vexnum;k++)if(i==g.ver[k].num) j=k;printf("-----------------------------------------\n"); printf("1.景点名称\t2.景点简介\t3.道路消息\n");printf("-----------------------------------------\n"); printf("请输入你要进行的操作的序号:");scanf("%d",&th);switch(th){ case 1:printf("请输入新景点名称:");scanf("%s",mon);g.ver[j].sight=mon;m.ver[j].sight=g.ver[j].sight;break;case 2:printf("请输入新景点简介:");scanf("%s",moh);m.ver[j].description=(char*)malloc(100);strcpy(m.ver[j].description,moh);break;case 3:printf("请输入要修改的与该景点相通的景点的距离的序号个数:");scanf("%d\n",&fh);for(k=0;k<fh;k++){ printf("请输入要修改的第%d个景点的序号:",j+1);scanf("%d\n",&b);printf("请重新输入该两个景点之间的距离:");scanf("%d",&m.arcs[j][b].adj);m.arcs[b][j].adj=m.arcs[j][b].adj;}}sceneplace();printf("继续修改?(y|n):");scanf("%s",&sh);if(sh=='N'||sh=='n')break;}⑨显示全景略⑩主函数int main(){picture();printf("\n------------------------------校园导航系统----------------------------------------------\n");sceneplace();for(;;){switch(menu()){ case 1:checkscene(m);break;case 2:Dijkstra(m);break;case 3:alldistance(m);break;case 4:addscene(m);break;case 5:delscene(m);break;case 6:change(m);break;case 7:chang(m);break;case 8:printf("感谢你使用辉哥校园导航系统!!辉哥又一次带大家拯救了世界!!再见!!\n");exit(0);default:printf("输入错误!!请重新输入你要进行的操作!!\n");}}}五.调试分析在调试删除修改功能过程中,删除的总是不正确,删除的结果显示,没有将要删除的景点删掉,最后发现删除的结点不正确,删除应该与输入的值和头结点next比较,而不是头结点。

相关文档
最新文档