校园导航系统---算法与分析课程设计

合集下载

校园导航程序课程设计

校园导航程序课程设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

校园导览课程设计方案模板

校园导览课程设计方案模板

一、课程名称校园导览系统设计与开发二、课程背景随着现代校园的不断扩大和建筑物的增多,校园内部导航成为一大难题。

为了提高学生和教职工的出行效率,减少时间浪费,本课程旨在设计并开发一款校园导览系统,为用户提供便捷、直观的导航服务。

三、课程目标1. 理解校园导览系统的基本概念和功能。

2. 掌握校园导览系统的设计与开发流程。

3. 学会使用相关技术实现校园导览系统的主要功能。

4. 提高学生的团队协作能力和项目实战经验。

四、课程内容1. 课程概述- 校园导览系统的定义和作用- 校园导览系统的功能模块2. 系统需求分析- 用户需求分析- 系统功能需求分析- 系统性能需求分析3. 系统设计- 系统架构设计- 数据库设计- 界面设计4. 技术实现- 硬件设备选型- 软件平台选型- 开发工具与环境5. 系统开发- 系统前端开发- 系统后端开发- 系统测试与优化6. 系统部署与维护- 系统部署- 系统运行监控- 系统维护与更新五、教学方法与考核方式1. 教学方法- 讲授法:系统讲解课程内容,使学生掌握基本概念和技能。

- 案例分析法:通过实际案例,引导学生分析问题、解决问题。

- 实践操作法:学生分组进行项目实践,提高实际操作能力。

- 讨论法:组织学生进行课堂讨论,激发思维,培养团队协作能力。

2. 考核方式- 平时成绩(30%):课堂表现、作业完成情况等。

- 项目实践(40%):项目完成情况、团队合作表现等。

- 期末考试(30%):笔试,考察学生对课程内容的掌握程度。

六、课程安排1. 课时分配:总课时为40学时,其中理论课20学时,实践课20学时。

2. 课程进度安排:- 第一周:课程概述、系统需求分析- 第二周:系统设计、技术实现- 第三周:系统开发(前端)- 第四周:系统开发(后端)- 第五周:系统测试与优化- 第六周:系统部署与维护- 第七周:课程总结、答辩七、预期成果通过本课程的学习,学生能够掌握校园导览系统的设计与开发技能,为我国校园导航事业贡献自己的力量。

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

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

数据结构与算法分析课程设计报告设计题目:校园导航咨询系统专业学号姓名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.进入主界面,出现校园导航咨询系统主菜单。

课程设计校园导航问题

课程设计校园导航问题

课程设计校园导航问题一、教学目标本课程旨在通过校园导航问题的学习,让学生掌握校园地图的阅读和理解能力,培养学生独立思考和解决问题的能力。

具体目标如下:知识目标:使学生了解和掌握校园地图的基本要素,如道路、建筑、景观等,以及地图的阅读和理解方法。

技能目标:培养学生运用地理信息系统(GIS)软件制作和编辑校园地图的能力,同时提高学生利用地图解决实际问题的能力。

情感态度价值观目标:通过校园导航问题的探究,培养学生对地理学科的兴趣和热爱,增强学生对校园环境的认知和责任感。

二、教学内容本课程的教学内容主要包括校园地图的阅读与理解、地图制作软件的使用以及校园导航问题的解决。

具体安排如下:第1课时:校园地图的基本要素及阅读方法第2课时:地理信息系统(GIS)软件的基本操作第3课时:校园地图的制作与编辑第4课时:校园导航问题的解决方法三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。

具体方法如下:1.讲授法:教师讲解校园地图的基本要素、阅读方法以及地图制作软件的使用技巧。

2.讨论法:学生分组讨论校园导航问题,分享解决方法,互相学习。

3.案例分析法:教师提供实际案例,引导学生分析并解决校园导航问题。

4.实验法:学生动手操作地图制作软件,实践校园地图的制作与编辑。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选用《校园导航》教材,为学生提供系统性的知识学习。

2.参考书:推荐《地图学》等参考书籍,丰富学生的地图知识。

3.多媒体资料:利用网络资源,下载相关地图制作软件的教程和案例视频,以便进行教学演示和引导学生自主学习。

4.实验设备:准备计算机、投影仪等设备,以便进行地图制作软件的演示和操作。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与度、提问回答等情况,评估学生的学习态度和理解程度。

2.作业:布置相关的地图阅读、制作等作业,要求学生在规定时间内完成,以检验学生的学习效果。

c语言课程设计校园导航

c语言课程设计校园导航

c语言课程设计校园导航一、教学目标本课程的目标是使学生掌握C语言编程的基本知识和技能,能够运用C语言进行简单的校园导航系统开发。

通过本课程的学习,学生将能够理解C语言的基本语法、数据类型、运算符、控制结构等,并能够运用这些知识编写简单的程序。

同时,学生将能够通过实践,提高问题解决能力和团队合作能力。

二、教学内容教学内容将按照C语言的基本语法和编程技巧进行。

首先,将介绍C语言的基本概念和环境配置,然后逐步深入到数据类型、运算符、控制结构等核心内容。

接下来,将讲解函数、数组和指针等高级概念,最后通过实例讲解面向对象编程的基本思想。

三、教学方法为了提高学生的学习兴趣和主动性,将采用多种教学方法。

首先,通过讲授法,为学生提供C语言的基本概念和理论知识。

然后,通过讨论法,引导学生主动思考和探索问题。

接下来,通过案例分析法,让学生通过分析实际案例,掌握C语言的编程技巧。

最后,通过实验法,让学生通过动手实践,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。

教材方面,将选择经典的C语言教材,如《C程序设计语言》。

参考书方面,将推荐学生阅读一些优秀的C语言编程书籍,如《C Primer Plus》。

多媒体资料方面,将制作一些教学视频和演示文稿,以帮助学生更好地理解C语言的编程原理。

实验设备方面,将准备计算机和网络设施,以供学生进行编程实验和实践。

五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分。

平时表现将根据学生在课堂上的参与度、提问和回答问题的积极性等进行评估。

作业将根据学生的编程实践能力和解决问题的能力进行评估。

考试将包括笔试和上机考试两部分,笔试主要测试学生对C语言理论知识的理解和掌握,上机考试主要测试学生的编程能力和实际操作能力。

六、教学安排本课程的教学进度将按照教材的章节进行安排,每个章节将安排2-3次的课堂讲授和实践操作。

教学时间将安排在每周的周二和周四下午,每次课2小时。

课程设计校园导航系统

课程设计校园导航系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

算法课程设计—校园导航问题

算法课程设计—校园导航问题

}VertexType;
(2)邻接矩阵的结构体定义:
typedef struct{
VertexType vex[NUM]; //顶点序号
int arcs[NUM][NUM]; //邻接矩阵
int vexnum;
//图的当前顶点数
}MGraph;
2、节点图函数的描述代码
void CreateMGraph(int v)//建立节点图的函数 {
各函数之间的调用关系设计如下:
图 3:函数调用关系图
三、流程图及主要源程序 主程序流程图如下所示:
图 4:主程序流程图
1、节点数据类型的描述与定义
(1)顶点信息的结构体定义:
typedef struct VertexType{
int number; char *sight;
//顶点数字 //顶点向量
P[v][w]=0; if(D[v]<Max) {
P[v][num]=1; P[v][v]=1; } } D[num]=0;
final[num]=1; for(i=1;i<NUM;++i) {
min=Max; for(w=1;w<NUM;++w)
if(!final[w]) if(D[w]<min) { v=w; min=D[w]; } final[v]=1; for(w=1;w<NUM;++w) if(!final[w]&&((min+G.arcs[v][w])<D[w])) { D[w]=min+G.arcs[v][w]; for(t=0;t<NUM;t++) P[w][t]=P[v][t]; P[w][w]=1; }

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

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

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

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

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

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

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

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

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

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

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

课程设计校园导航

课程设计校园导航

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

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

校园导航系统课程设计

校园导航系统课程设计

课程设计课程名称数据结构校园导题目名称航系统13软件工专业班级二O—五年六月一日目录1弓丨言 (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程序运行平台计算机windows7 Vi rtua I c++ 6. 04总体设计4.1数据结构类型定义#include<stdio.h> #include <stdI ib.h> #inelude 〈string.h> #define MAX_V 30 // #define INFINITY 32767 //typedef struetchar* vexs[MAX_V]; // 顶点向量 int arcs[MAX_V] [MAX_V] ;// 邻接矩阵int vexnum, arenum;//图的当前顶点数和弧数}MGraph;4.2函数声明int CreateUDN(MGraph &G) ; // 创建导航图函数声明 extern have [30];void ShortPath (MGraph &G, int vO, int p[MAX.V][MAX_V], int d[]);// 短 路径导航函数声明i nt have [30];void menu() ; //导航菜单函数声明最大顶点个 数void showl () ; //显示全校面貌int j ianj ie() ;//读取文件4. 3创建导航图,即无向图int CreateUDN(MGraph &G)函数描述:主要将每个节点进行命名,每个定点到其他所有定点的路径值用邻接矩阵进行存储。

校园导航课程设计

校园导航课程设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

校园导航地系统课程设计

校园导航地系统课程设计

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

算法设计与分析课程设计(完整版)

算法设计与分析课程设计(完整版)

HUNAN CITY UNIVERSITY 算法设计与分析课程设计题目:求最大值与最小值问题专业:学号:姓名:指导教师:成绩:二0年月日一、问题描述输入一列整数,求出该列整数中的最大值与最小值。

二、课程设计目的通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。

提高适应实际,实践编程的能力。

在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。

了解一般程序设计的基本思路与方法。

三、问题分析看到这个题目我们最容易想到的算法是直接比较算法:将数组的第 1 个元素分别赋给两个临时变量:fmax:=A[1]; fmin:=A[1]; 然后从数组的第 2 个元素 A[2]开始直到第 n个元素逐个与 fmax 和 fmin 比较,在每次比较中,如果A[i] > fmax,则用 A[i]的值替换 fmax 的值;如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值;否则保持 fmax(fmin)的值不变。

这样在程序结束时的fmax、fmin 的值就分别是数组的最大值和最小值。

这个算法在最好、最坏情况下,元素的比较次数都是 2(n-1),而平均比较次数也为 2(n-1)。

如果将上面的比较过程修改为:从数组的第 2 个元素 A[2]开始直到第 n 个元素,每个 A[i]都是首先与 fmax 比较,如果 A[i]>fmax,则用 A[i]的值替换 fmax 的值;否则才将 A[i]与 fmin 比较,如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值。

这样的算法在最好、最坏情况下使用的比较次数分别是 n-1 和 2(n-1),而平均比较次数是 3(n-1)/2,因为在比较过程中,将有一半的几率出现 A[i]>fmax 情况。

校园地图系统课程设计

校园地图系统课程设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

算法设计与分析课程设计-校园导航问题设计分析测试报告

算法设计与分析课程设计-校园导航问题设计分析测试报告

算法设计与分析课程设计校园导航问题设计分析测试报告姓名:学号:班级:指导教师:2016年1 月6 日程序算法设计说明书一、前言1.问题描述--------------------------------------------------------------------------------- 22.程序编制环境相关说明------------------------------------------------------------- 2二、程序主要算法设计分析说明算法设计思路,流程图说明----------------------------------------------------- 2三、程序模块说明1.总体设计说明-------------------------------------------------------------------------- 42.模块说明:2.1模块一:鼠标监听----------------------------------------------------------- 42.2模块二:界面显示----------------------------------------------------------- 52.3模块三:键盘监听----------------------------------------------------------- 7四、总结(含主函数设计说明)---------------------------------------- 9程序及算法测试报告一、前言1.测试目的及采用的主要测试方法--------------------------------------- 11被测试程序算法说明及流程图等--------------------------------------------------- 112.测试环境说明----------------------------------------------------------------- 11二、测试用例说明1.测试用例1 ------------------------------------------------------------------ 122.测试用例2 ------------------------------------------------------------------ 133.测试用例3------------------------------------------------------------------- 14三、测试结果分析----------------------------------------------------- 15四、其他------------------------------------------------------------------ 15校园导航问题设计说明书五、 前言3. 问题描述设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径4. 程序编制环境相关说明使用Windows10 系统 IDE 为Myeclipse2015 编写使用的语言为JAVA六、 程序主要算法设计分析说明算法设计思路,流程图说明流程图的一部分(这里是初始化距离数组的) 1-1开始i<=总点数最短路径数组[i] = 各点距离[起点][i]是最短路径数组[i]=无穷路径数组[i]=0是路径数组[I]=起点否i++最短路径数组[起点]=0,标记数组[起点]=truei<总点数辅助长度=无穷,当前点 =起点J<=总点数j没有被标记且个点距离[当前点][j]<辅助长度当前点=j,辅助长度=最短路径数组[J]J++标记数组[当前点]=trueJ<=总点数j没有被标记且个点距离[当前点][j]<无穷新的路径长度=路径长度数组[j]+各点距离数组[当前点][j]新的路径长度<最短路径长度[j]最短路径长度[j]=新的路径长度,路径数组[j]=当前点j++i++是是是否是是是否否否否结束接上面贪心算法部分1-2 时间复杂度为O(N^2)七、程序模块说明3.总体设计说明开始鼠标监听界面显示键盘监听关闭结束4.模块说明:4.1模块一:鼠标监听涉及GUIJFrame类继承了JFrame类涉及MyJPanel 类继承JPanel 类实现了MouseListener接口(鼠标监听)(1)主要鼠标监听用来响应点击下面是主要代码public void mouseClicked(MouseEvent e) {int signTops = judgeSigns(e.getX(),e.getY());if(signTops != 0){if(startPointed) //判断是否是起点未完成startPoint = signTops;if(!startPointed&&endPointed) //判断是否起点完成{endPoint = signTops;endPointed = false;}startPointed = false ;}(2)关键数据结构和算法及其分析(3)输入鼠标点击(4)输出设置起点,终点4.2模块二:界面显示涉及MyJPanel 类继承JPanel 类涉及GUIJFrame类继承了JFrame类使用了javax.swing.包获取鼠标点击点的坐标获取鼠标点击的地点标记号标记号是否不为0起点是否已被设置终点是否被设置设置起点设置终点是否否是(1) 关键数据结构和算法及其分析画出江苏大学地图显示起点起点是否被设置终点是否被设置显示终点路径是否要被设置显示路径否否否(1) 输入 起点,终点,最短路径(2)输出显示地图,起点场所绿色轮廓,终点场所绿色轮廓,最短路径紫色线路2.3 模块三:键盘监听涉及GUIJFrame类继承了JFrame类涉及MyJPanel 类继承JPanel 类实现了KeyListener接口(键盘监听)(1)输入ENTER ESC 键(2)输出ENTER –设置路径ESC--重置起点,终点,路径(3)关键数据结构和算法及其分析public void keyPressed(KeyEvent arg0) {// TODO Auto-generated method stubif(arg0.getKeyCode() == KeyEvent.VK_ESCAPE) //初始化起点终点{endPoint = 0;startPoint = 0 ;startPointed = true;endPointed = true;showWays= false;}if(arg0.getKeyCode() == KeyEvent.VK_ENTER) //初始化起点终点{sort.Dijkstra(startPoint);sort.getPrev(startPoint,endPoint);showWays = true;}}获取键盘按键是否为ENTER键起点是否被设置终点是否被设置计算最短路径生成并设置最短路径是否为ESC键复位起点终点路径八、总结(含主函数设计说明)经过两天的奋战我的课程设计终于完成了。

南通大学校园导航系统

南通大学校园导航系统

南通大学计算机学院上机实验报告课程名称:算法设计与分析班级:学号:姓名:指导老师:一、题目与要求题目:设计并开发南通大学校园导航系统(1)使用最短路径算法:Dijkstra算法(2)可组队完成(最多5人一组),但需明确分工(3)编程语言不限、最简单就是实现算法,最复杂可以引入地图1.1 功能要求1.不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。

对程序其它部分也进行必要的注释。

2.对系统进行功能模块分析、画出总流程图和各模块流程图。

3.用户界面要求使用方便、简洁明了、美观大方、格式统一。

所有功能可以反复使用,最好使用菜单。

4.通过命令行相应选项能直接进入某个相应菜单选项的功能模块。

5.所有程序需调试通过。

1.2 设计内容:1.为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校。

2. 登录模块。

该模块在进入主界面之前先执行,用于对进入系统的用户进行身份验证,若用户输入正确的用户名及用户密码,则进入主界面,否则输入超过3次错误则退出程序。

处理方法:用户名及用户密码可保存在一文件中,校验时从文件中读入数据进行校验。

在系统中应增加一个用户管理模块,在其中可新增用户,修改用户信息等。

3.系统帮助。

显示开发者姓名、班级、开发完成日期、版本号和指导老师等信息。

二、分析2.1设计基础:要掌握最短路径的实现方式。

2.2分析设计课题的要求,要求编程实现以下功能:(1)退出系统(2)进入南通大学导航系统(3)新增用户信息(0)修改密码2.3主控菜单设计为实现导航的操作功能,首先设计一个含有多个菜单项的主控菜单程序,然后再为这些菜单项配上相应的功能。

程序运行后,给出菜单项的内容和输入提示,如下:1 显示场所编号2 计算路径长度及找出最短路径3 退出2.4设计课题已明确要求,有关的定义如下:void insert();#define N 10int n=1;#define Max 32767#define NUM 16typedef 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]; // 辅助变量存储最短路径长度void CreateUDN(int v,int a); // 创建图的函数void pingmu(); //屏幕输出函数void ShortestPath(int num); //最短路径函数void output(int sight1,int sight2); //输出函数void PrintMGraph();char Menu(); // 主菜单void mainn();2.4逻辑设计:按所设想的功能,把程序化分为几个模块,各模块的名称和其数据类型如下:(1)Main主函数调用各函数,实现课程设计的目标。

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

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

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

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

完成需要操作时,退出系统校园导航查询系统的开发方法总结如下:(1) 需求分析,了解学校各个场所与场所或者是各个景点与景点之间的信息,路径和距离,考虑该如何设计才能满足用户需求。

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

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

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

一、需求分析1学校以及各景点介绍模块采用一维数组将学校景点依次排放好编号G.vex[i].number=i 在选择校园介绍的时候,弹出G.vex[0]校园简介。

在选择各景点信息的时候,可按编号查询2查询最短路径(主要)查出出发地到想要到达的景点的最短路径,初步构想采用最经典的迪杰斯特拉算法最短路径函数3查询各点距离将所有景点的距离显示出来。

4主菜单页面显示提供使用者选择功能界面,按照提示进行操作。

5退出完成需要操作时,退出系统校园导航系统模式图二、概要设计2.1算法设计说明校园导航模型是由各个景点和景点以及场所和场所之间的路径组成的,所以这完全可以用数据结构中的图来模拟。

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

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

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

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

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

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

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

2.1.1学校以及各景点介绍模块采用了图的邻接矩阵存储结构,首先初始化每一个景点名称(一维数组)fo r(i=1;i<G .vexnum;++i) G .vex[i].number=i ……校园导航系统 校园介绍,各景点介绍查询校园所有景点路径 最短路径查询 查询各景点距离 输入起点与终点 输出最短路径SearchMenu子菜单输入景点编号编号值=iI<num输出景点介绍输出“错误”结束景点介绍功能流程图2.1.2查询最短路径(主要)算法的主要思想是按路径长度递增的次序产生最短路径的算法。

中心思想是假设s为已求得最短路径的终点的集合,则下一条最短路径或者是弧(v,x)或者是中间经过s中是顶点而最后到达顶点x的路径。

(1)arcs表示弧上的权值。

若不存在,则置arcs为∞。

S为已找到从v出发的最短路径的终点的集合,初始状态为空集。

那么,从v出发到图上其余各顶点vi可能达到的最短路径长度的初值为D=arcs[Locate Vex(G,v),i] vi∈V (2)选择vj,使得D[j]=Min{D | vi∈V-S}(3修改从v出发到集合V-S上任一顶点vk可达的最短路径长度路径查询流程图2.1.3查询各点距离由于图的结构比较复杂,任意两个点之间都可能存在联系。

因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,但是却可以借助数组的数据类型表示元素之间的关系。

2.1.4主函数循环体用开关语句,该语句的条件值ck是当用户选择菜单通过调用主菜单函数得到,返回值整数作开关语句的条件。

根据该值调用相应的各功能函数,同时设置一个退出程序点,执行完用户的某项功能后继续显示菜单,当返回值为e 时函数结束程序,以免造成死循环。

2.2数据结构与函数考虑2.2.1数据结构定义结构体类型,将多个相关的变量包装成为一个整体使用。

#define Max 32767#define NUM 20自定义顶点的类型typedef struct VertexType{int number; // 景点编号char *sight;// 景点名称}VertexType;自定义图的类型typedef struct{VertexType vex[NUM]; // 图中的顶点,即为景点int arcs[NUM][NUM]; // 图中的边,即为景点间的距离int vexnum; // 顶点数}MGraph;把图定义为全局变量MGraph G;int P[NUM][NUM]; 辅助变量存储最短路径长度long int D[NUM];2.2.2使用的系统头文件#include "stdio.h" /*I/O 函数*/#include "stdlib.h" /*使用system()exit()atoi()malloc()free()函*/ #include "string.h" /*字符串函数,strcpy()strlen()strcmp()*/三、主程序#include <stdio.h>#include <string.h>#include <stdlib.h>#define Max 32767#define NUM 20typedef struct VertexType{int number;char *sight;}VertexType;typedef struct{VertexType vex[NUM];int arcs[NUM][NUM];int vexnum;}MGraph;MGraph G;int P[NUM][NUM];long int D[NUM];void CreateMGraph(int v)//创建图的函数,v是函数入口{int i,j;G.vexnum=v;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="第二教学楼"; G.vex[11].sight="第四食堂"; G.vex[13].sight="臻善楼";G.vex[12].sight="江南大学南门"; for(i=1;i<G.vexnum;++i){for(j=1;j<G.vexnum;++j)G.arcs[i][j]=Max;}G.arcs[1][2]=G.arcs[2][1]=200;G.arcs[1][3]=G.arcs[3][1]=210; G.arcs[1][5]=G.arcs[5][1]=521; G.arcs[2][4]=G.arcs[4][2]=299; G.arcs[2][5]=G.arcs[5][2]=450; G.arcs[2][3]=G.arcs[3][2]=869; G.arcs[3][5]=G.arcs[5][3]=620;G.arcs[3][8]=G.arcs[8][3]=756;G.arcs[4][5]=G.arcs[5][4]=355;G.arcs[4][6]=G.arcs[6][4]=221;G.arcs[5][7]=G.arcs[7][5]=225;G.arcs[5][8]=G.arcs[8][5]=900;G.arcs[6][7]=G.arcs[7][6]=280;G.arcs[6][9]=G.arcs[9][6]=241;G.arcs[7][8]=G.arcs[8][7]=440;G.arcs[7][10]=G.arcs[10][7]=350;G.arcs[8][10]=G.arcs[10][8]=570;G.arcs[9][10]=G.arcs[10][9]=1300;G.arcs[9][11]=G.arcs[11][9]=998;G.arcs[9][12]=G.arcs[12][9]=1200;G.arcs[10][11]=G.arcs[11][10]=639;G.arcs[10][12]=G.arcs[12][10]=805;G.arcs[11][12]=G.arcs[12][11]=283;G.arcs[12][13]=G.arcs[13][12]=296;}void Map()//地图展示函数{printf("\t ************************江南大学大学地图导航系统******************* \n");printf(" ━━━━━━━━━━━━━━━1 江南大学北大门━━━━━━━━━━\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" 2第一食堂━━━━━━━━━━━━━━━━━━━━━━━━━ 3江南大学东偏门\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" 4设计学院━━━━━━━━━━━━5体育中心━━━━━━━━━━━━┃\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" 6物联网工程学院━━━━━━━━━7图书馆━━━━━━━━━ 8江南大学东门\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" 9国家重点实验室10第二教学楼━━━━━━━━━━┃\n");printf(" ┃┃┃\n");printf(" ┃┃┃\n");printf(" ━━━━━━━━━━━━━━━━┃━━━━━━━━━━┃\n");printf(" ┃┃\n");printf(" ┃━━━11第四食堂\n");printf(" ┃\n");printf(" 13臻善楼━━━━━━━━━━━━━12江南大学南门\n");}void Info()//资料介绍函数{printf("1 江南大学校北大门:这是江南大学最有名的大门,是一座充满历史感的高大的牌坊,正上面写着“江南大学”四个大字,背面写着“江南第一学府”六个字\n");printf("2 江南大学第一食堂\n");printf("3 江南大学东偏门:\n");printf("4 设计学院:\n");printf("5 体育中心:\n");printf("6 物联网工程学院:\n");printf("7 图书馆:高达15层的雄伟的图书馆\n");printf("8 江南大学东门:\n");printf("9 国家重点实验室:\n");printf("10 第二教学楼:\n");printf("11 第四食堂: \n");printf("13 臻善楼: \n");printf("12 江南大学南门: \n");}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];// 将与之相关的权值放入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])<D[w])) // 不在s集合,并且比以前所找到的路径都短就更新当前路径{D[w]=min+G.arcs[v][w];for(t=0;t<NUM;t++)P[w][t]=P[v][t];P[w][w]=1;}}}char Menu()//应用主界面显示函数{char c;int flag;do{system("cls");flag=1;Map();printf("\t\t欢迎使用江南大学导航图系统\n");printf("\t\t 1.查询地点之间最短路径\n");printf("\t\t 2.江南大学景点介绍\n");printf("\t\t e.退出\n");printf("\t\t\t请输入您的选择:");scanf("%c",&c);if(c=='1'||c=='2'||c=='e')//如果输入为1,2,E中的一个,则返回Cflag=0;}while(flag);return c;void Display(int sight1,int sight2)//最短距离显示函数{int a,b,c,d,q=0;a=sight2;if(a!=sight1){printf("\n\t从%s到%s的最短路径是",G.vex[sight1].sight,G.vex[sight2].sight);printf("\t(最短距离为%d.m)\n\n\t",D[a]);printf("\t%s",G.vex[sight1].sight);d=sight1;for(c=0;c<NUM;++c){P[a][sight1]=0;for(b=0;b<NUM;b++){if(G.arcs[d][b]<Max&&P[a][b]){printf("-->%s",G.vex[b].sight);q=q+1;P[a][b]=0;d=b;if(q%8==0) printf("\n");}}}}}void main()//主界面最短路线查询显示函数int v0,v1;char e;char ck;CreateMGraph(NUM);do{system("cls");ck=Menu();switch(ck){case '1': gate:system("cls");Map();do{printf("\n\n\t\t\t请选择出发地序号(1~13):");scanf("%d",&v0);if(v0<1||v0>13)printf("\n\n\t\t\t\t输入错误!\n");}while(v0<1||v0>13);do{printf("\t\t\t请选择目的地序号(1~13):");scanf("%d",&v1);if(v1<1||v1>13||v1==v0)printf("\n\n\t\t\t\t输入错误!\n");}while(v1<1||v1>13||v1==v0);ShortestPath(v0);Display(v0,v1);printf("\n\n\t\t\t\t按回车键继续,按e退回首页\n");getchar();scanf("%c",&e);if(e=='e')break;goto gate;case'2':system("cls");Info();printf("\n\n\t\t\t\t按回车键返回首页...\n");getchar();getchar();break;};}while(ck!='e');}四、程序调试及运行结果贴图五、总结通过这次设计,是我得以更好的掌握C语言的编程,对一些算法思想和实现方法有了更深的了解。

相关文档
最新文档