校园导航系统课程设计

合集下载

校园导航程序课程设计

校园导航程序课程设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

校园地图系统课程设计

校园地图系统课程设计

校园地图系统课程设计一、课程目标知识目标:1. 学生能理解并掌握校园地图系统的基本概念和功能,了解其在生活中的应用。

2. 学生能运用所学的地理信息系统(GIS)知识,分析并解决校园内实际问题。

3. 学生掌握地图比例尺、方向、图例等基本要素,并能在校园地图中进行正确应用。

技能目标:1. 学生能通过实际操作,掌握使用校园地图系统查找地点、规划路径等基本技能。

2. 学生具备利用GIS软件绘制校园地图的基本能力,能独立完成简单的地图制作。

3. 学生能运用地图思维,分析校园空间布局,提高解决问题的能力。

情感态度价值观目标:1. 学生通过学习校园地图系统,培养对地理信息的兴趣,提高对现实世界的观察能力和空间思维能力。

2. 学生在学习过程中,树立正确的地理观念,关注地理信息技术的最新发展。

3. 学生通过团队合作完成课程任务,培养团队协作精神和沟通能力,增强对学校环境的责任感和主人翁意识。

本课程针对初中年级学生,结合校园地图系统,注重培养学生的地理信息素养和实际操作能力。

课程性质为实践性、探究性,教学要求强调学生的参与度和动手实践。

通过本课程的学习,学生将能够具备运用地图知识解决实际问题的能力,同时培养对地理学科的兴趣和热爱。

二、教学内容1. 校园地图基本概念:介绍地图的定义、功能、分类以及校园地图的特点。

教材章节:《地理》第五章第一节“地图与地图制作”2. 地图三要素:详细讲解地图的比例尺、方向、图例等基本要素。

教材章节:《地理》第五章第二节“地图的阅读与使用”3. 地理信息系统(GIS)基本操作:学习GIS软件的基本功能,包括地图浏览、查询、分析等。

教材章节:《地理》第五章第三节“地理信息系统及其应用”4. 校园地图绘制:学习使用GIS软件绘制校园地图,掌握简单的地图制作方法。

教材章节:《地理》第五章第四节“地图编制与设计”5. 实践活动:分组进行校园地图绘制和实际问题分析,如规划校园参观路线、分析校园设施分布等。

课程设计校园导航系统

课程设计校园导航系统

课程设计校园导航系统一、课程目标知识目标: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()四.详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪代码,对主程序和其他模块也都需要写出伪代码算法。

导航地图系统课程设计

导航地图系统课程设计

导航地图系统课程设计一、课程目标知识目标:1. 学生能够理解导航地图系统的基本概念,掌握其工作原理和功能特点。

2. 学生能够描述导航地图系统中常用的坐标系和地图投影方法,并解释其应用场景。

3. 学生能够了解导航地图的数据来源和更新方式,认识到地图数据的准确性和时效性。

技能目标:1. 学生能够运用导航地图系统进行定位和路径规划,解决实际出行问题。

2. 学生能够操作导航设备,进行地图浏览、搜索地点和获取路线信息等基本操作。

3. 学生能够分析导航地图系统中的误差来源,并提出改进措施,提高导航准确度。

情感态度价值观目标:1. 学生培养对导航地图系统的兴趣,认识到其在日常生活和国民经济发展中的重要性。

2. 学生能够关注导航地图系统的技术发展,积极了解新兴导航技术及其应用。

3. 学生在合作学习过程中,培养团队精神和沟通能力,提高解决问题的自信心。

课程性质:本课程为信息技术与地理学科相结合的综合性课程,旨在培养学生的地理信息素养和实际应用能力。

学生特点:六年级学生具备一定的地理知识和计算机操作技能,对新兴技术和实际应用有较高的兴趣。

教学要求:注重理论与实践相结合,鼓励学生动手实践和合作探究,提高学生的实际操作能力和创新思维。

将课程目标分解为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 导航地图系统概述- 了解导航地图系统的定义、发展历程和未来发展趋势。

- 掌握导航地图系统的基本功能,如定位、路径规划、交通信息查询等。

2. 坐标系与地图投影- 学习地球坐标系、平面坐标系等常用坐标系及其转换方法。

- 掌握地图投影的基本原理,了解墨卡托投影、高斯-克吕格投影等常用地图投影方法。

3. 导航地图数据- 介绍导航地图数据来源、采集方法、更新周期及准确性。

- 分析导航地图数据在实际应用中的重要性,如实时交通信息、地点详细信息等。

4. 导航设备与操作- 学习导航设备的种类、功能及使用方法,如智能手机、车载导航仪等。

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

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

《校园导航系统》课程设计报告姓名:郭璇学号: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的邻接顶点。

课程设计校园导航问题

课程设计校园导航问题

课程设计校园导航问题一、教学目标本课程旨在通过校园导航问题的学习,让学生掌握以下知识目标:了解并识别校园中的重要地点和设施;掌握使用地图和指南针的基本方法;理解校园地图的制作原理和技巧。

技能目标:培养学生独立使用地图和指南针的能力;培养学生运用地理信息系统(GIS)制作简单校园地图的能力。

情感态度价值观目标:培养学生对校园环境的热爱和保护意识;培养学生合作探究的学习态度和团队精神。

二、教学内容根据课程目标,本课程的教学内容主要包括三个部分:第一部分是校园地理知识,包括校园的自然地理特征和人文地理特征;第二部分是地图和指南针的使用方法,包括地图的种类、读图方法、指南针的使用技巧等;第三部分是校园地图的制作方法,包括地图的绘制、设计、印刷等环节。

三、教学方法为了达到课程目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

讲授法用于传授地理知识和地图使用技巧;讨论法用于引导学生探讨校园环境问题;案例分析法用于分析校园地图制作的实例;实验法用于让学生亲身体验地图制作过程。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:教材《校园导航》,用于提供基本的学习材料;参考书,用于拓展学生的知识视野;多媒体资料,用于丰富教学手段和学生的学习体验;实验设备,用于让学生亲身体验地图制作过程。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与度、团队合作表现等;作业主要包括地图制作、案例分析报告等;考试主要包括选择题、填空题、简答题等。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:共计10次课,每次课时长为2小时,每周一次。

教学地点安排在教室和校园实地。

教学安排应合理、紧凑,确保在有限的时间内完成教学任务,同时考虑学生的实际情况和需要。

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

课程设计校园导航

课程设计校园导航

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

具体目标如下: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. 小组合作设计与完善校园导航系统:- 分析现有校园导航系统的优缺点;- 小组讨论、设计并完善校园导航系统功能;- 展示与评价:展示各组设计成果,进行评价与交流。

校园导航系统课程设计体会

校园导航系统课程设计体会

校园导航系统课程设计体会一、课程目标知识目标:1. 学生能理解并掌握校园导航系统的基本构成要素,包括地图、路径规划和定位技术。

2. 学生能运用所学的地理信息系统(GIS)知识,分析和解读校园地图,了解校园内不同场所的位置关系。

3. 学生掌握基本的坐标系统及其在导航系统中的应用。

技能目标:1. 学生能够运用信息技术工具,如计算机软件或移动设备应用程序,进行简单的路径规划和导航操作。

2. 学生通过小组合作,设计并实现一个简易的校园导航系统,培养解决实际问题的能力。

3. 学生能够运用批判性思维,评价并优化导航系统的效率和用户体验。

情感态度价值观目标:1. 学生通过参与校园导航系统的设计与实施,增强对地理信息科学在实际应用中的认识和兴趣。

2. 学生在团队协作中培养沟通能力和共享意识,理解团队合作的重要性。

3. 学生通过解决校园导航问题,提升对校园环境的归属感和爱护公共设施的责任感。

课程性质:本课程结合信息技术与地理学科,注重实践操作和团队合作,旨在提升学生的综合应用能力和创新思维。

学生特点:考虑到学生为初中高年级学生,具有一定的地理知识基础和初步的信息技术应用能力。

教学要求:通过项目式学习,使学生在实践中学习,将理论知识与实际应用紧密结合,注重培养学生的创新意识和实际操作技能。

教学过程中,强调学习成果的可衡量性,确保学生能够达到预设的学习目标。

二、教学内容1. 导航系统基础知识:- 校园地图的基本要素:介绍地图的三要素,包括图例、比例尺和指北针。

- 坐标系统:理解地理坐标系统和平面坐标系统。

2. 地理信息系统(GIS)应用:- GIS基本概念:了解GIS的定义、功能和在导航系统中的应用。

- 校园地图的数字化:学习如何将校园地图转化为数字地图。

3. 路径规划与导航:- 路径规划算法:介绍Dijkstra算法和A*算法等基本路径规划方法。

- 导航系统操作:学习使用现有的导航软件进行路径规划和导航。

4. 实践操作:- 设计校园导航系统:分组进行项目设计,制定系统需求,规划功能模块。

校园导航课程设计

校园导航课程设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

校园导航系统课程设计

校园导航系统课程设计

好理爭院课程设计课程名称题目名称专业班级数据结构校园导航系统13软件工程二O—五年六月一日目录1弓I言 (5)1.1问题的提出 (5)1.2国内外研究的现状 (5)1.3任务与分析 (5)2程序的主要功能 (6)3程序运行平台 (6)4总体设计 (7)4.1数据结构类型定义 (7)4.2函数声明 (7)4.3创建导航图,即无向图 (8)4.4最短路径导航函数 (8)5程序方法的说明 (9)5.1主菜单 (9)5.2主函数 (10)5.3迪杰斯特拉算法实现 (13)6模块分析 (15)7系统测试 (15)7.1系统登录界面 (15)7.2 功能一:学校简介 (16)7.3功能二:两点最短距离导航 (16)7.4功能三:某点到其他所有点的最短距离 (17)7.5功能四:显示全校地图 (17)7.5退出导航系统 (18)8结论 (19)附录: (19)蚌埠学院计算机科学与技术系本科课程设计成绩评定表附件4分工协作说明(以列表形式具体说明每个人所做的工作);1.1问题的提出设计一个校园导航系统,为来访的客人提供各种信息查询服务。

1.2国内外研究的现状这个问题一直是国内外研究的热门话题。

1.3任务与分析设计你的学校的平面图,至少包括8个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)2程序的主要功能(1)设计校园平面图,在校园景点选8个左右景点。

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

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

(3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。

3程序运行平台计算机wi ndows7 Virtual C++ 6.0最大顶点个数 最大值4总体设计4.1数据结构类型定义#i nclude<stdio.h> #include <stdlib.h> #i nclude <stri ng.h> #defi ne MAX_V 30 //#define INFINITY 32767 //typedef struct {char* vexs[MAX_V]; // 顶点向量 int arcs[MAX_V][MAX_V];〃 邻接矩阵in t vex nu m,arcnum;〃 图的当前顶点数和弧数}MGraph;4.2函数声明int CreateUDN(MGraph & G); // 创建导航图函数声明extern have[30];void ShortPath(MGraph & G,i nt vO,i nt p[MAX_V][MAX_V],i nt d[]);〃 短路径导航函数声明 int have[30]; void men u(); //导航菜单函数声明void show1(); // 显示全校面貌int jianjie();〃读取文件4.3创建导航图,即无向图int CreateUDN(MGraph &G)函数描述:主要将每个节点进行命名,每个定点到其他所有定点的路径值用邻接矩阵进行存储。

校园导航地系统课程设计

校园导航地系统课程设计

校园导航地系统课程设计一、课程目标知识目标: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 实践操作与案例分析教学内容紧密结合课程目标,确保科学性和系统性,通过实践操作与案例分析,帮助学生将理论知识应用于实际情境中。

校园导航系统---算法与分析课程设计【范本模板】

校园导航系统---算法与分析课程设计【范本模板】

算法设计与分析课程设计题目:校园导航问题文档:物联网工程学院物联网工程专业学号学生姓名班级物联网1101二〇一三年十二月设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路(最短路径)。

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

(二)、查询校园各个场所和景点信息;(三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校.完成需要操作时,退出系统校园导航查询系统的开发方法总结如下:(1)需求分析,了解学校各个场所与场所或者是各个景点与景点之间的信息,路径和距离,考虑该如何设计才能满足用户需求。

(2) 概要设计,对调查得到的数据进行分析,根据其要求实现的功能分析系统结构和界面将实现的基本功能.(3)详细设计,设计系统界面并编辑实现其各个功能的代码。

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

一、需求分析1学校以及各景点介绍模块采用一维数组将学校景点依次排放好编号G。

vex[i].number=i 在选择校园介绍的时候,弹出G。

vex[0]校园简介。

在选择各景点信息的时候,可按编号查询2查询最短路径(主要)查出出发地到想要到达的景点的最短路径,初步构想采用最经典的迪杰斯特拉算法最短路径函数3查询各点距离将所有景点的距离显示出来.4主菜单页面显示提供使用者选择功能界面,按照提示进行操作.5退出完成需要操作时,退出系统校园导航系统模式图二、概要设计2。

1算法设计说明校园导航模型是由各个景点和景点以及场所和场所之间的路径组成的,所以这完全可以用数据结构中的图来模拟。

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

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

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

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

本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现.计算路径长度,最短路线和最佳路径时可分别用迪杰斯特拉(Dijkastra)算法和哈密而顿回路算法实现。

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

校园导航课程设计报告书专业:计算机科学与技术课程设计名称:《数据结构课程设计》题目:校园导航问题班级:学号:姓名:同组人员:指导老师:完成时间:2012年2月17日摘要校园导航问题是基于校园中的不同的景点,从陌生人的角度,为来往的客人提供校园景点相关信息的查询以及为来往的客人提供校园中任意景点的问路查询,以便客人能用最短的时间从某一地点到达想要去的地方。

大大节约了旅客参观校园的时间。

本文是采用C++作为开发语言,又最大程度上用了C语言的有关的语法。

以visual c++6.0为开发工具。

旨在实现校园导航系统中,学校的简介,景点的介绍,路线查询等基本的问题。

为来往客人参观校园提供方便。

关键词:C++;C;visual c++6.0;校园导航目录目录 (1)第一章开发环境和开发工具 (1)1.1 C/ C ++语言简介 (1)1.2 开发背景 (1)1.3 开发环境 (1)第二章算法思想 (2)2.1 系统需求分析 (2)2.2 系统总体设计 (3)2.2.1 系统设计目标 (3)2.2.2 开发设计思想 (3)2.2.3 系统功能模块设计 (3)2.3 算法思想描述 (4)第三章算法实现 (6)3.1 数据结构 (6)3.2 程序模块 (6)3.3 各模块之间的调用关系上 (12)3.4 源程序代码 (12)第四章测试与分析 (22)4.1 测试数据选择 (22)4.2 测试结果分析 (26)总结 (27)心得体会 (28)参考文献 (29)第一章开发环境和开发工具1.1 C/ C ++语言简介C语言是一种计算机程序设计语言。

它既具有高级语言的特点,又具有汇编语言的特点。

它由美国贝尔研究所的D.M.Ritchie于1972年推出。

1978后,C语言已先后被移植到大、中、小及微型机上。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。

具体应用比如单片机以及嵌入式系统开发。

C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。

它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。

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

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

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

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

1.3 开发环境本文所采用的开发环境主要是基于c++的visual stadio c++。

它是一个系统的集成开发环境。

很适合C\C++程序的开发。

我们日常的学习和生活中大多就用这个开发环境进行学习和编程。

第二章算法思想2.1 系统需求分析1、设计你的学校的校园平面图,所选的景点不少于10个。

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

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

3、为来往的客人提供图中任意景点的问路查询,即查询任意两个景点间的一条最短的简单路径。

根据以上分析和抽象可得到本系统的抽象数据类型如下:ADT graph{数据对象 R:V是校园中景点的集合,称为顶点集。

R={VR}VR={<v,w,>|v,w∈V且P(v,w),(v,w)表示从景点v到景点w的路径长度基本操作 P:Creatgraph(&G,V,VR)初始条件:V是图的顶点集,VR是图中边的集合。

操作结果:按V和VR的定义构造图G。

Output(G)初始条件:图G已经存在。

操作结果:打印出图的信息ShortestPath(G,v)初始条件:图G已存在,v是图中的一个顶点。

操作结果:返回从v出发到图中任意顶点的最短的路径。

}ADT graph;2.2 系统总体设计2.2.1 系统设计目标本文研究开发的校园导航系统用于支持来往校园参观的客人提供最省时的导航服务,有如下三个方面的目标:1、为来往的客人提供校园的简介。

2、为来往的客人提供校园中各景点的简介,以及各景点的距离等情况。

3、为来往的客人提供到达目的地的最短的路线。

2.2.2 开发设计思想基于以上系统设计目标,本文在开发校园导航系统时遵循了以下开发设计思想:1、采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。

2、尽量达到操作过程中的直观、方便、实用、安全等要求。

3、系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。

2.2.3 系统功能模块设计本系统分为四个模块:菜单模块、景点介绍模块、路径查询模块、最短路径模块。

得到如图3-1所示的系统功能模块图。

图3-1系统功能模块图2.3 算法思想描述1、迪杰斯特拉算法思想:按路径长度递增次序产生最短路径算法:把V分成两组:(1)S:已求出最短路径的顶点的集合(2)V-S=T:尚未确定最短路径的顶点集合将T中顶点按最短路径递增的次序加入到S中,保证:(1)从源点V0到S中各顶点的最短路径长度都不大于从V0到T中任何顶点的最短路径长度(2)每个顶点对应一个距离值S中顶点:从V0到此顶点的最短路径长度T中顶点:从V0到此顶点的只包括S中顶点作中间顶点的最短路径长度依据:可以证明V0到T中顶点Vk的最短路径,或是从V0到Vk的直接路径的权值;或是从V0经S中顶点到Vk的路径权值之和2、邻接矩阵建立有无向权图的算法思想:用两个数组分别存储数据元素的信息和数据之间的关系的信息其形式描述如下:#define Max 32767//最大值∞#define NUM 11//最大顶点个数typedef struct ArcCell{int adj; // 相邻接的景点之间的路程char *info;}ArcCell; // 定义边的类型typedef struct VertexType{int number; // 景点编号char *sight; // 景点名称char *description; // 景点描述}VertexType; // 定义顶点的类型typedef struct{VertexType vex[NUM]; // 图中的顶点,即为景点ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离int vexnum,arcnum; // 顶点数,边数}MGraph; // 定义图的类型其中用二维数组表示途中个边之间的关系。

第三章算法实现3.1 数据结构1、顶点、边和图类型:typedef struct ArcCell{int adj; // 相邻接的景点之间的路程char *info;}ArcCell; // 定义边的类型typedef struct VertexType{int number; // 景点编号char *sight; // 景点名称char *description; // 景点描述}VertexType; // 定义顶点的类型typedef struct{VertexType vex[NUM]; // 图中的顶点,即为景点ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离int vexnum,arcnum; // 顶点数,边数}MGraph; // 定义图的类型3.2 程序模块1.main函数void main() // 主函数{ int v0,v1;char ck;system("color cb");CreateUDN(NUM,11);do{ck=Menu();switch(ck){case'1':introduce();printf("\n\n\t\t\t%-25s\n\n",G.vex[0].description);getchar();getchar();break;case '2':system("cls");pingmu();printf("\n\n\t\t\t请选择起点景点(1~10):");scanf("%d",&v0);printf("\t\t\t请选择终点景点(1~10):");scanf("%d",&v1);ShortestPath(v0); // 计算两个景点之间的最短路径output(v0,v1); // 输出结果printf("\n\n\t\t\t\t请按回车键继续...\n");getchar();getchar();break;case '3':search();break;case'5':PrintMGraph();printf("\n\n\t\t\t\t请按回车键继续...\n");getchar();getchar();break;};}while(ck!='e');}2.主菜单char Menu() // 主菜单//{char c;int flag;do{flag=1;system("cls");pingmu();printf("\n\t\t┏━━━━━━━━━━━━━━━━━━━┑\n");printf("\t\t┃┃\n");printf("\t\t┃1.学校简介┃\n");printf("\t\t┃2.查询景点路径┃\n");printf("\t\t┃3.查询景点信息┃\n");printf("\t\t┃5.查询各景点之间的距离┃\n");printf("\t\t┃e.退出┃\n");printf("\t\t┃┃\n");printf("\t\t┗━━━━━━━━━━━━━━━━━━━┛\n");printf("\t\t\t\t请输入您的选择:");scanf("%c",&c);if(c=='1'||c=='2'||c=='3'||c=='5'||c=='e')flag=0;}while(flag);return c;}3.查询子菜单char SearchMenu() // 查询子菜单{char c;int flag;do{flag=1;system("cls");pingmu();printf("\n\t\t┏━━━━━━━━━━━━━━━━━━┑\n");printf("\t\t┃┃\n");printf("\t\t┃1、按照景点编号查询┃\n");printf("\t\t┃2、按照景点名称查询┃\n");printf("\t\t┃e、返回┃\n");printf("\t\t┃┃\n");printf("\t\t┗━━━━━━━━━━━━━━━━━━┛\n");printf("\t\t\t请输入您的选择:");scanf("%c",&c);if(c=='1'||c=='2'||c=='e')flag=0;}while(flag);return c;}4.查询景点信息void search() // 查询景点信息{int num;int i;char c;char name[20];do{system("cls");c=SearchMenu();switch (c){case '1':system("cls");//introduce();pingmu();printf("\n\n\t\t请输入您要查找的景点编号:");scanf("%d",&num);for(i=0;i<NUM;i++){if(num==G.vex[i].number){printf("\n\n\t\t\t您要查找景点信息如下:");printf("\n\n\t\t\t%-25s\n\n",G.vex[i].description);printf("\n\t\t\t按任回车返回...");getchar();getchar();break;}}if(i==NUM){printf("\n\n\t\t\t没有找到!");printf("\n\n\t\t\t按回车键返回...");getchar();getchar();}break;case '2':system("cls");pingmu();introduce();printf("\n\n\t\t请输入您要查找的景点名称:");scanf("%s",name);for(i=1;i<NUM;i++){if(!strcmp(name,G.vex[i].sight)){printf("\n\n\t\t\t您要查找景点信息如下:");printf("\n\n\t\t\t%-25s\n\n",G.vex[i].description);printf("\n\t\t\t按回车键返回...");getchar();getchar();break;}}if(i==NUM){printf("\n\n\t\t\t没有找到!");printf("\n\n\t\t\t按回车键返回...");getchar();getchar();}break;}}while(c!='e');}5.创建图的函数void CreateUDN(int v,int a) // 创建图的函数6. 打印出邻接矩阵void PrintMGraph(){int i,j;cout<<"\n================================================================ ====\n\n ";for(i=1;i<G.vexnum;++i){cout<<G.vex[i].sight<<" ";}cout<<endl;for(i=1;i<G.vexnum;++i){cout<<"\n\n"<<G.vex[i].sight<<" ";for(j=1;j<G.vexnum;++j){if(G.arcs[i][j].adj==Max)cout<<" no ";elsecout<<" "<<G.arcs[i][j].adj;}}cout<<"\n\n\n\n================================================== ========================================\n\n\n";7.迪杰斯特拉算法void ShortestPath(int num) // 迪杰斯特拉算法最短路径函数num为入口点的编号{int v,w,i,t; // i、w和v为计数变量int final[NUM];int min;for(v=1;v<NUM;v++){final[v]=0; // 假设从顶点num到顶点v没有最短路径D[v]=G.arcs[num][v].adj;// 将与之相关的权值放入D中存放for(w=1;w<NUM;w++) // 设置为空路径P[v][w]=0;if(D[v]<32767) // 存在路径{P[v][num]=1; // 存在标志置为一P[v][v]=1; // 自身到自身}}D[num]=0;final[num]=1; // 初始化num顶点属于S集合// 开始主循环,每一次求得num到某个顶点的最短路径,并将其加入到S集合for(i=1;i<NUM;++i) // 其余G.vexnum-1个顶点{min=Max; // 当前所知离顶点num的最近距离for(w=1;w<NUM;++w)if(!final[w]) // w顶点在v-s中if(D[w]<min) // w顶点离num顶点更近{v=w;min=D[w];}final[v]=1; // 离num顶点更近的v加入到s集合for(w=1;w<NUM;++w) // 更新当前最短路径极其距离if(!final[w]&&((min+G.arcs[v][w].adj)<D[w]))// 不在s集合,并且比以前所找到的路径都短就更新当前路径//{D[w]=min+G.arcs[v][w].adj;for(t=0;t<NUM;t++)P[w][t]=P[v][t];P[w][w]=1;}}}8、输出:屏幕输出函数:void pingmu();最短路线输出函数void output;3.3 各模块之间的调用关系上模块调用关系如图3—2所示:图3—2模块调用关系图3.4 源程序代码#include<iostream.h>#include "string.h"#include "stdio.h"#include "stdlib.h"#define Max 32767#define NUM 11typedef struct ArcCell{int adj; // 相邻接的景点之间的路程char *info;}ArcCell; // 定义边的类型typedef struct VertexType{int number; // 景点编号char *sight; // 景点名称char *description; // 景点描述}VertexType; // 定义顶点的类型typedef struct{VertexType vex[NUM]; // 图中的顶点,即为景点ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离int vexnum,arcnum; // 顶点数,边数}MGraph; // 定义图的类型MGraph G; // 把图定义为全局变量int P[NUM][NUM]; // //long int D[NUM]; // 辅助变量存储最短路径长度int x[13]={0};void CreateUDN(int v,int a); // 创建图的函数void pingmu(); //屏幕输出函数void introduce();void ShortestPath(int num); //最短路径函数void output(int sight1,int sight2); //输出函数void PrintMGraph();char Menu(); // 主菜单void search();;// 查询景点信息char SearchMenu(); // 查询子菜单void NextValue(int);void display(); // 显示遍历结果void main() // 主函数{int v0,v1;char ck;system("color 4b");CreateUDN(NUM,11);do{ck=Menu();switch(ck){case'1':introduce();printf("\n\n\t\t\t%-25s\n\n",G.vex[0].description);getchar();getchar();break;case '2':system("cls");pingmu();printf("\n\n\t\t\t请选择起点景点(1~10):");scanf("%d",&v0);printf("\t\t\t请选择终点景点(1~10):");scanf("%d",&v1);ShortestPath(v0); // 计算两个景点之间的最短路径output(v0,v1); // 输出结果printf("\n\n\t\t\t\t请按回车键继续...\n");getchar();getchar();break;case '3':search();break;case'5':PrintMGraph();printf("\n\n\t\t\t\t请按回车键继续...\n");getchar();getchar();break;};}while(ck!='e');}char Menu() // 主菜单 //{char c;int flag;do{flag=1;system("cls");pingmu();introduce();printf("\n\t\t┏━━━━━━━━━━━━━━━━━━━┑\n");printf("\t\t ┃┃\n");printf("\t\t ┃ 1.学校简介┃\n");printf("\t\t ┃ 2.查询景点路径┃\n");printf("\t\t ┃ 3.查询景点信息┃\n");printf("\t\t ┃ 5.查询各景点之间的距离┃\n");printf("\t\t ┃ e.退出┃\n");printf("\t\t ┃┃\n");printf("\t\t ┗━━━━━━━━━━━━━━━━━━━┛\n");printf("\t\t\t\t请输入您的选择:");scanf("%c",&c);if(c=='1'||c=='2'||c=='3'||c=='5'||c=='e')flag=0;}while(flag);return c;}char SearchMenu() // 查询子菜单{char c;int flag;do{flag=1;system("cls");pingmu();introduce();printf("\n\t\t ┏━━━━━━━━━━━━━━━━━━┑\n");printf("\t\t ┃┃\n");printf("\t\t ┃ 1、按照景点编号查询┃\n");printf("\t\t ┃ 2、按照景点名称查询┃\n");printf("\t\t ┃ e、返回┃\n");printf("\t\t ┃┃\n");printf("\t\t ┗━━━━━━━━━━━━━━━━━━┛\n");printf("\t\t\t请输入您的选择:");scanf("%c",&c);if(c=='1'||c=='2'||c=='e')flag=0;}while(flag);return c;}void search() // 查询景点信息{int num;int i;char c;char name[20];do{system("cls");c=SearchMenu();switch (c){case '1':system("cls");introduce();pingmu();printf("\n\n\t\t请输入您要查找的景点编号:");scanf("%d",&num);for(i=0;i<NUM;i++){if(num==G.vex[i].number){printf("\n\n\t\t\t您要查找景点信息如下:");printf("\n\n\t\t\t%-25s\n\n",G.vex[i].description);printf("\n\t\t\t按任回车返回...");getchar();getchar();break;}}if(i==NUM){printf("\n\n\t\t\t没有找到!");printf("\n\n\t\t\t按回车键返回...");getchar();getchar();}break;case '2':system("cls");pingmu();introduce();printf("\n\n\t\t请输入您要查找的景点名称:");scanf("%s",name);for(i=1;i<NUM;i++){if(!strcmp(name,G.vex[i].sight)){printf("\n\n\t\t\t您要查找景点信息如下:");printf("\n\n\t\t\t%-25s\n\n",G.vex[i].description);printf("\n\t\t\t按回车键返回...");getchar();getchar();break;}}if(i==NUM){printf("\n\n\t\t\t没有找到!");printf("\n\n\t\t\t按回车键返回...");getchar();getchar();}break;}}while(c!='e');}void CreateUDN(int v,int a) // 创建图的函数{int i,j;G.vexnum=v; // 初始化结构中的景点数和边数G.arcnum=a;for(i=1;i<G.vexnum;++i) G.vex[i].number=i; // 初始化每一个景点的编号// 初始化没一个景点名及其景点描述G.vex[0].sight="学校简介";G.vex[1].sight="校大门";G.vex[2].sight="教学楼";G.vex[3].sight="中心广场";G.vex[4].sight="山顶操场";G.vex[5].sight="学生宿舍";G.vex[6].sight="图书馆";G.vex[7].sight="体育馆";G.vex[8].sight="二食堂";G.vex[9].sight="服务楼";G.vex[10].sight="北门";// 这里把所有的边假定为32767,含义是这两个景点之间是不可到达for(i=1;i<G.vexnum;++i){for(j=1;j<G.vexnum;++j){G.arcs[i][j].adj=Max;G.arcs[i][j].info=NULL;}}//下边是可直接到达的景点间的距离,由于两个景点间距离是互相的,// 所以要对图中对称的边同时赋值。

相关文档
最新文档