一、需求分析

介绍学校的主要地点和这些地点的特点,以及从一个地点到达另外一个地点的最短路径。

二、系统设计

1.理论依据

根据设计要求分析校园导航系统的设计要求,掌握设计中所设计到的无向网的建立,遍历,求最短路径的基本算法,阐明设计原理

2.方案设计

根据设计要求确定导航系统中建立学校平面图的图形数据结构,查询给定建筑信息,找出任意起始点与终点的最佳路径等基本功能实现的方案,画出流程图,并对各部分功能进行说明

3.程序设计

设计一个校园导航系统,能咨询学校主要地点,以及从一个地方到另一个地方最短路径,针对最短路径问题,在本系统中采用图的相关知识,以解决在实际情况中最短路径问题,本系统包括定向导航和不定向导航求最短路径两个问题,针对以上两个问题,本系统采用了迪杰斯特拉算法,并为本系统设置了一系列的人性化提示,方便使用者使用

4.程序调试

对编写的软件程序,进行调试,根据结果,完善程序功能。

三、程序流程

四、实现代码(需下载)

五、测试

程序进入时的初始页面

校园导航的主功能页面

校园导航查询景点信息的页面

找出最短路径和查询距离的功能页面

定向导航页面

不定向导航页面

返回主界面并退出

小结:

通过一周的课程设计,我学会了如何写一个精简、快速、健壮的程序。一个好的程序应该是一个所占空间小、运行时间短、其他性能也好的程序。而要做出一个好的程序则应该通过对算法与其数据结构的时间复杂度和空间复杂度进行实现与改进。然而,实际上很难做到十全十美,原因是各要求有时相互抵触,要节约算法的执行时间往往要以牺牲更多的存储空间为代价:而为了节省存储空间又可能要以更多的时间为代价。因此,只能根据具体情况有所侧重:如果程序的使用次数较少,则应该力求算法简明易懂,而易于转换为上机程序;如果程序反复多次使用,则应该尽可能选用快速算法;如果解决问题的数据量极大,机器的内存空间较小,则在编写算法时应该考虑如何节省空间。  本次课程设计培养了了我们独立思考的能力,提高了我们的动手操作水平。在具体设计操作中,我们巩固了本学期所学的数据结构与算法的理论知识,进一步提高了自己的编程能力。这也是课程设计的最终目的所在。通过实际操作,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。  但在程序设计的过程中我也深刻的感受到自己实力的不足,无法灵活的运用各种工具和函数,对于课程所讲的东西也无法在脱离课本的情况中完成,我意识到自己在今后的学习生活中,一定要勤于思考,扎实掌握理论知识,灵活运用课上所学的东西,做一个优秀的程序员。,也不要放弃说不定下一秒就会成功了。

总之,这次的C++课业设计经历,让我不仅在专业知识方面有了收获,而且思想方面也有收获。

数据结构课设之校园导航系统(迪杰斯特拉算法)相关推荐

  1. 数据结构之单源最短路径(迪杰斯特拉算法)-(九)

    最开始接触最短路径是在数据结构中图的那个章节中.运用到实际中就是我在大三参加的一次美赛中,解决中国的水资源问题.所谓单源最短路径,就是一个起点到图中其他节点的最短路径,这是一个贪心算法. 迪杰斯特拉算 ...

  2. 迪杰斯特拉算法及变式(最短距离,打印路径,最短经过节点数)

    问题描述 给定一个图,图的节点名称用(000 ~ N−1N - 1N−1)表示.NNN为图的节点个数,MMM为边的个数,SSS为起始点. 输入条件: 第一行输入 NMSN M SNMS. 其后MMM行 ...

  3. 安徽大学导游系统设计---迪杰斯特拉算法实现

    本文是基于<数据结构>相关实验,使用迪杰斯特拉算法来实现最短路径. 总体思路是对于安徽大学磬苑校区进行数学建模,对重要的景点进行抽象.抽象成无向图中间的顶点.之后利用高德地图对各个顶点之间 ...

  4. 校园导游系统_C语言实现_Dijkstra(迪杰斯特拉算法)_数据结构

    西京学院导游系统 摘要   要完成对整个导游图系统的功能实现,需要对每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现和需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确 ...

  5. Java图结构-模拟校园地图-迪杰斯特拉(Dijkstra)算法求最短路径 #谭子

    目录目录 一.前言 二.模拟校园地图描述 三.分析题目及相关绘图 四.代码部分 1.GraphNode类 2.Menu类(管理文字) 3.Attraction类 4.AttractionGraph类( ...

  6. 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)

    最小生成树 什么是最小生成树 是一棵树 - 无回路 - |V|个顶点一定有|V|-1条边 是生成树 - 包含全部顶点 - |V|-1条边全在图里 贪心算法 什么是"贪":每一步都要 ...

  7. 最短路径——迪杰斯特拉算法——图的数据结构

    最短路径是在工程上经常用到的概念,在这里给出了从单源点到任意顶点的迪杰斯特拉算法. 先来看看基本概念: 用代码C语言实现如下: #include<string.h>#include< ...

  8. 数据结构第十二天——普利姆算法和迪杰斯特拉算法

    普利姆(Prim)算法求最小生成树,也就是在包含 n个顶点的连通图中,找出只有(n-1)条边包含所有 n个顶点的连通子图,也就是所谓的极小连通子图 最小生成树:给定一个带权的无向连通图,如何选取一棵生 ...

  9. 算法与数据结构(六) 迪杰斯特拉算法的最短路径(Swift版)

    上篇博客我们详细的介绍了两种经典的最小生成树的算法,本篇博客我们就来详细的讲一下最短路径的经典算法----迪杰斯特拉算法.首先我们先聊一下什么是最短路径,这个还是比较好理解的.比如我要从北京到济南,而 ...

最新文章

  1. oracle数据库导入导出
  2. 新代系统9服务器警报,新代系统OP、MOT警报一览表
  3. MyBatis框架学习 DAY_02:使用XML配置文件/多参数问题 / FOREACH /IF / #{}和${} / 创建SSM框架流程
  4. 课本学习笔记5:第七章 20135115臧文君
  5. 企业为实现网络营销更要将网络营销重点放在用户价值上
  6. 习惯的力量之五让迟延见鬼去吧
  7. Taro+react开发(50) 小程序触底操作
  8. vue delete删除json数组_Vue.set 和 Vue.delete
  9. ListView使用BaseAdapter与ListView的优化
  10. mysql执行语句_MySQL查看实时执行的SQL语句
  11. 三国演义词云的python代码_词云制作没那么难,Python 10 行代码就实现了!
  12. 项目管理团队建设成功经验
  13. SRS之SrsRtmpConn::publishing详解
  14. H3CSE认证网络工程师视频课程-广域网-宋文峰-专题视频课程
  15. 《深度学习》花书-读书笔记汇总贴(汇总19/19)
  16. 应用计算机测pn结正向电压,PN结正向压降与温度关系的研究实验报告
  17. Java将毫秒(时间戳)转时分秒格式或者年月日
  18. 在centos7上编译EDK2
  19. 继电器模块的的使用方法、引脚说明、内部结构、接线说明(超通俗超详细看了就能给别人讲)
  20. Linux Neptune界面,基于Debian Linux 的 Neptune 5.4发布啦

热门文章

  1. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块
  2. HLOJ 2018 某校几人
  3. SpringBoot发送邮件(网易邮箱,QQ邮箱,139邮箱)
  4. 基于Mxnet的车辆重识别(Re-ID)之数据集处理(以VeRi为例)
  5. [Luogu P2447] [BZOJ 1923] [SDOI2010]外星千足虫
  6. 苏格拉底《临死前的演说》
  7. 2020-12-03_EditPlus下载安装注册
  8. 推算几天后的日期 —— 代码篇
  9. vue中excel的编辑、导入、导出
  10. 被特殊物种序列虚晃一枪的日子