校园导游系统课程设计报告书.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT 34 西安郵電學院 数据结构课程设计报告 题 目: 校园导游系统 实验目的 对自己学过的知识进一步的加深理解,对数据结构的算法思想要有更深的理解。 通过课程设计,学会通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用 。 学会综合运用数据结构课程中学到的几种典型数据结构,如链表,栈,队列,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发。 课程设计内容 基本要求: 校园平面图(景点、路径等信息)存储 选取校园或某景区中多个具有代表性景点,抽象成无向带权图。可采用邻接表或邻接 多重表存储。 查询图中任意景点的相关信息 查询道路信息(道路类别、沿途景色等) 查询任意两个景点之间的一条最短的简单路径 利用迪杰斯特拉或弗洛伊德算法确定最短路径 从某个景点出发给出访问所有景点的最佳行走方案 利用深度优先和广度优先搜索遍历图 查询任意两景点之间的所有路径(选做) 需求分析 现在大多数的学校由于不断的扩张,这也就使得学校不得不建立的更大。这也就为人们拜访学校造成了很大的不便。人们往往不熟悉学校,找个东西,或某处带来了极大的不便。往往要花很多时间在这一方面。然而要是有一个学校导游系统这将给乘客带来极大的方便,使人们一下就能了解到这个学校的大致的情况。 功能:这个系统给用户提供查询景点,浏览路径,寻找最佳的方案到达目的地,还提供了最佳路径。 实现的目标:实现对某一个学校的校园导游系统。 概要设计 系统结构图 系统分析:用的图的算法进行构造,用邻接表建立图,然后再用深度优先遍历进行搜索,查找所需的路径。再用迪杰特斯拉算法求出两个景点之间的最佳路径。 结构图: 功能模块说明 2.1创建图(InitGraph): 建立无向图,把学校的景点及景点的信息,连接起来 建立邻接表采用链式加顺式存储。 浏览学校的全景(Browser):列出学校的所有的景点。 寻找最佳路径(DFSTraverse:): 输入一个景点,会吧所有都浏览一边,并找出最佳的路径。 最短路径(ShortPath):求出起点和终点的最佳路径,并求出最佳路径的长度。 遍历出某一起点到终点的所有路径(SearchAllPath): 找出所有路径,利用深度优先遍历。 详细设计 5.1 创建图: 5.2 浏览学校全景 用数组存放这个学校的全部景点,在通过遍历数组打印出学校的所有景点及其信息。 寻找最佳路径(DFSTraverse): 利用深度优先的思想,遍历图找出一条最佳最佳的 的路径,让它遍历所有景点。利用递归的思想,往下遍历,访问标志位,若访问过在下次就不用访问。若找完一个分支在下次重新遍历。 5.4 最短路径(ShortPath): 利用迪杰特斯拉算法,求v0到其余顶点的最短路径path[],distance []是用来存放各路径的权值,借助辅助数组s[]标志,是否当前顶点属于S(1,属于)。 5.5遍历出某一起点到终点的所有路径(SearchAllPath): 利用图的深度优先遍历,利用访问标志位。path[]记录路径,visited[]设访问标志,v起点,des终点,length,代表的是访问景点的长度。若碰见死路或者不同的路,则从上一个景点,从新扫描。 运行结果: 主界面: 学校全景: 某一起点的最佳路径: 一个起点的所有路径: 学校的图: 六、调试情况,设计技巧及体会 这次课程设计给我的感触很多,课程设计没开始之前我总是在想今年的课程设计会不会象去年那样辛苦,但是这两周下来我当然也感到累,也有心情烦躁的时候,体会到调试成功使的那种喜悦。 课程设计之前老师让我们自己先将设计思路写好,都做了哪些模块,第一天要检查。我当时是在电脑上写了,那天下午编了一下午,没什么成就弄得我很心烦,再想到快要考试,那种急于求成的心更迫切,自己很难平静。第二天老师检查时我什麽都没有看到同学的程序我开始着急了,但那会我只有一个念头我得从新开始,由于对图不是很了解,我就从读写模块开始,就使用简单的C语知识,那天早上将那两个模块给拿下了。下机后我在寝室开始编程,开始进入真正的图部分,边思

文档评论(0)

weidameili + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档