西京学院导游系统

摘要

  要完成对整个导游图系统的功能实现,需要对每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现和需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行,有以下设计思路:
(1)结合本校的实际情况,选出17个景点;
(2)人为手工为选出17个景点赋上相关信息(名称、代号、简介信息、以及路径等等);
(3)根据选出来的17个景点用邻接矩阵存储西京校园图。
(4)依照景点的相关信息创建西京校园图。
(5)把纸质上的内容,利用Devcpp编程语言编写查找景点相关信息的程序。
(6)根据人为赋值的路径,利用迪杰斯特拉算法计算任意两点之间的最短路径。
(7)综上所述,用一个主函数把这些末班合成,生产一个菜单界面呈现在用户面前。
  关键字:图,最短路径,增删改,迪杰斯特拉算法。

目录

  • 西京学院导游系统
    • 摘要
      • 1 详细设计
        • 1.1 图的初始化
        • 1.2 求最短路径
        • 1.3 迪杰斯特拉算法在课题中的应用
        • 1.4 总体函数实现设计模块图
      • 2 设计结果及分析
        • 2.1 设计系统功能
        • 2.2 调试结果
        • 2.3 两景点之间最短路径测试
      • 3 收获与体会
      • 4 参考文献
      • 5 代码查看
      • 6 完整资料下载

1 详细设计

1.1 图的初始化

  辅助数组dist[n]:元素dist[i]表示当前找到的从源点到终点vi的最短路径的长度。

1.2 求最短路径

  基于本程序中图的存储是邻接矩阵结构存储的图结构,因而采用适合该存储结构的迪杰斯特拉算法用于解决最短路径的问题。
  迪杰斯特拉提出了一个按路径长度递增的持续产生最短路径的算法、其基本思想是:设置一个集合S存放已找到最短路径的顶点,S的初始状态只包含源点v,对于vi∈V-S,假设从源点v到vi的有向边为最短路径。以后每求得一条最短路径v,……vk,就将vk加入集合S中,并将路径v,……vk,vi,与原来的假设相比较,取路径长度较小者为最短路径。重复上述过程,直到集合V中全部顶点加入到集合S中。

1.3 迪杰斯特拉算法在课题中的应用

1.4 总体函数实现设计模块图


  用此图表示我们组对西京学院导游图的准备流程图设计过程,我们前期建立一些基本函数,后期再进行所有简单函数的整合,从而使得整个系统的建立成功。

2 设计结果及分析

2.1 设计系统功能

1.输出所有经典及其介绍


2.查询某一景点及其介绍


3.增加一个景点


4.删除一个景点


5.更新一个景点


6.增加一条路


7.删除一条路


8.更新一条路


9.查询某一景点到其他所有景点的最短路径

10.查询某两个景点之间的最短路径

11.查看所有景点及其介绍

2.2 调试结果

2.3 两景点之间最短路径测试

  本功能模块要求按照在景点信息列表中提示的信息用户输入起点编号和终点编号后输出最短路径,经测试后该功能能够实现,没有任何错误。测试结果如下图所示:

3 收获与体会

  通过6天30课时的数据结构课程设计实训,我们小组学习到了好多东西。期间的学习准备以及这一段时间对课程设计的学习开发,校园导游系统已经基本完成,能够实现系统所要求的基本功能。完成后的系统能够根据用户的输入实现一系列查询功能,根据管理人员的输入完成添加、删除、修改等功能。俗话说“万事开头难”,我们小组在程序设计过程中遇到了很多的困难,但我们不惧艰难,依然一路向前的克服了困难。
我们在制作校园导游系统的过程中遇到了许多的问题,例如:
  1.在绘制校园地图中,我们无法在VC++中得到直线以及圆形图案。
  2.增加一个景点会导致图中的路线改变,无法得到理想地图。
  3.删除一个景点同样会导致图中的路线改变,无法得到理想地图。
  但经过我们小组的不懈努力,参考不同的文献,查阅不同的资料。我们成功的想出了解决这些问题的办法。
  1.当我们无法在VC++中绘制直线和圆形图案时,我们忽略了图形库的安装,安装图形库后,顺利的解决了这一问题。
  2.当增加或删除一个景点导致图中的路线改变时,应采用再次遍历,得到增加或删除后的地图。
  心得:数据结构是一门实践和理论很强的学科,我们不能忽略一些微小的知识点,不能眼高手低,必须在掌握理论的同时加强上机实验操作。
  以上是我们小组对于本次实验课程设计中遇到的问题以及解决办法,最终从中获得了一些心得。
  组长靳文杰带领大家了所有头文件的书写和大量子函数的书写,运行中最短路径函数调试出现了一部分问题,回到宿舍后,小组在群聊中相互讨论,最终通过组长靳文杰的不懈努力和小组成员的互相协作,最终最短路径调试成功。
  体会:实验课程不仅仅是一门课程,他更考验团队合作能力和动手能力,以及理论知识的发挥,不是一个人可以完成的,需要通过大家的努力去完成,在本次实验中我们小组增强了团队凝聚力,始终信服,只要大家一起努力,没有克服不了的困难。上机实习是对学生全面综合素质进行训练的一种最基本的方法,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。上机实习一方面能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的;另一方面,上机实习是对学生软件设计的综合能力的训练,包括问题分析,总体结构设计,程序设计基本技能和技巧的训练。还有更重要的一点是:机器是比任何教师更严厉的检查者。因此,在“数据结构”的学习过程中,必须严格按照老师的要求,主动地、积极地、认真地做好每一个实验,以不断提高自己的编程能力与专业素质。

4 参考文献

  严蔚敏,吴伟民,数据结构(c语言版),北京:清华大学出版社,1997
  李云清,杨庆红 揭安全数据结构(c语言版)(课本)

5 代码查看

代码查看

6 完整资料下载

下载地址

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

  1. C语言实现Dijkstra(迪杰斯特拉)算法(附完整源码)

    Dijkstra迪杰斯特拉 Graph结构体定义 迪杰斯特拉算法完整源码(定义,实现,main函数测试) Graph结构体定义 struct Graph {int vertexNum;int **ed ...

  2. java迪杰斯特拉算法_迪杰斯特拉算法完整代码(Java)

    package com.rao.graph; import java.util.*; /** * @author Srao * @className Dijkstra * @date 2019/12/ ...

  3. 校园导游系统c语言代码,GitHub - iamywang/Campus-Guide-System: 校园导游系统

    校园导游系统 Qt5 图形界面版本 v2.1.5 更新内容 2019.2.25 Version 2.1.5 新增道路信息查询功能,输入道路起点和终点即可查询道路具体信息 新增范例地图,支持一键录入已有 ...

  4. 校园导游系统(Java语言)

    ** 利用Java语言写的校园导游系统 ** 这个是主要利用了迪杰斯特拉算法写成的,有增加路径,景点等操作. 由于这个地图是用Java中的io流来读取的,因此需要写一个文件. 文件格式如下: 注意: ...

  5. 数据结构课设之校园导航系统(迪杰斯特拉算法)

    一.需求分析 介绍学校的主要地点和这些地点的特点,以及从一个地点到达另外一个地点的最短路径. 二.系统设计 1.理论依据 根据设计要求分析校园导航系统的设计要求,掌握设计中所设计到的无向网的建立,遍历 ...

  6. C语言开发东北大学活力长者社区班车路线管理(迪杰斯特拉算法)

    东北大学大作业-活力长者社区-班车路线管理(创新) 开发语言:c语言 编译工具:vscode 引用的小伙伴麻烦点下关注,有任何疑问欢迎大家留言哎 1.运行效果 2.迪杰斯特拉算法实现思路 为了求得两站 ...

  7. 迪杰斯特拉算法c语言要点,C语言迪杰斯特拉实现最短路径算法要点.doc

    C语言迪杰斯特拉实现最短路径算法要点.doc 数据结构课程设计报告 ----旅游咨询系统设计 目录 一.需求分析- 2 - 二.系统分析- 2 - 三.概要设计- 3 - 一.系统划分- 3 - 二. ...

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

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

  9. 迪杰斯特拉算法(C语言实现)

    迪杰斯特拉算法(C语言实现) 如上图,求以a为源点到个顶点的最短路劲. #include "stdio.h" #include "stdlib.h" //用一个 ...

最新文章

  1. ffmpeg + x264+ x265 + libde265 + opengl es display
  2. 效率提升看得见 神策 A/B 测试可视化试验能力正式上线
  3. leetcode 203. Remove Linked List Elements(链表)
  4. linux下载python 没有iedl_linux 安装python
  5. Photoshop 操作显示滞后问题及解决方法
  6. 对抗搜索之【最大最小搜索】【Alpha-Beta剪枝搜索】
  7. AndroidHttpCapture抓包工具
  8. MacBook安装jdk1.8方便快捷稳定的方法
  9. 软件体系结构期末考试总结
  10. python安全编程培训费用
  11. u盘坏了数据可以恢复吗?实用小方法
  12. 在Ubuntu16.04系统上更新FireFox浏览器(即火狐浏览器)到最新版本
  13. 1一10到时的英文单词_1到10的英文单词
  14. Error:Internal error: (java.lang.IllegalArgumentException) Argument for
  15. Windows:通过GPO部署iTunes for Windows
  16. 用Halo在自己服务器搭建一个个人博客
  17. kali linux 2020虚拟机镜像的安装(详细安装过程及安装包百度云连接)
  18. 字符串匹配值Sunday算法
  19. 模拟停车场管理C语言代码
  20. 文档,数据和粘贴板 目录 AppKit 文档

热门文章

  1. 教授、研究员、高级工程师、工程师,各系列职称体系对比
  2. 024:事务和相关的功能
  3. 六种难以启齿的真实离职原因,应该这样说
  4. 阿里 oss:You have no right to access this object because of bucket acl
  5. VB 中自定义弹出提示框的位置
  6. Hadoop中关于datenode无法启动的解决办法
  7. 学习日记-卓有成效的管理者
  8. (转)函数式编程另类指南
  9. DB2错误代码大全(含实际开发中遇到的最多的问题)
  10. HDOJ 1495非常可乐