校园导游图数据结构课程设计最终版.doc

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南京航空航天大学 《数据结构》课程设计报告 校 园 导 游 系 统 班 级:0809103 班 学 号:080910315 姓 名: 施国义 指导老师: 胡彩平 评定成绩: 目录 一、需求分析 3 二、程序的主要功能 3 三、程序运行平台 4 四、系统总框架图 4 五、数据结构.......................................4 六、测试用例.......................................5 七、存在的不足与对策及编程体会13 八、程序源代码.................................14 需求分析 校园导游程序 [问题描述]用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 [基本要求] (1) 查询各景点的相关信息; (2) 查询图中任意两个景点间的最短路径。 (3) 查询图中任意两个景点间的所有路径。 (4) 增加、删除、更新有关景点和道路的信息。 二、程序的主要功能 该校园导游程序共有7个主要功能: 功能一:查询景点的信息; 功能二:查询任意两景点之间的最短路径及路径长度; 功能三:查询任意两景点之间的所有路线; 功能四:在已有的校园导游图中添加新的景点及该景点到其他景点的路径长度; 功能五:在已有的校园导游图中删除已有的景点及以该景点为端点的路径; 功能六:修改已有校园导游图中的任意一个景点的名称和景点信息或任意一条路径的长度; 功能七:重新创建一个新的学校的导游图。 三、程序运行平台 virtual C++ 6.0 四、系统总框架图 五、 数据结构 该程序运用数据结构中的图的邻接表的存储方式,用顶点来存储景点的名称和景点信息等,用边来存储路径的长度等信息。之后,以有向图的邻接矩阵的方式用Dijkstra算法来求图的最短路径问题,以及图的遍历来求两点间的所有路径问题。最后,用图的添加、删除、修改等基本操作完成对校园导游图的修改和重新创建。 六、测试用例 运行程序: 输入“1”: 输入“1”: 输入编号“3”: 按任意键返回上一菜单,再选择“2、按照景点名称查询”: 输入“东区”: 按任意键返回后,再输入“e”,返回主菜单,选择“2.、查询两景点间最短路径”,再输入起点和终点景点的序号: 按任意键返回主菜单,选择“3.、查询两景点间所有路线”,再输入出发和目的景点: 按任意键返回主菜单,选择“4”添加新的景点和路径,输入新的景点名称、景点信息以及该景点到其他各景点的距离: 选择“5”删除景点和路径,之后可以按照景点编号或景点名称查询景点,将其删除: 按任意键返回后,6号景点四号楼已经被删除,其余景点依次重新排列: 选择“6”修改已有景点和路径,会出现修改景点或修改道路的选择: 我们输入“1”,然后出现输入选择要修改景点的编号,修改景点名称和修改景点描述的选择,我们输入“2”修改景点描述,再输入新的景点信息: 返回主菜单后,行政楼的景点描述已经修改: 最后,我们选择“7”创建一个新的校园导游图,然后输入新的学校名称、景点数目、道路条数,再按提示输入景点名称、景点描述、和路径。 返回主菜单后,新的马鞍山第二中学导游图就已经创建成功了。 之后,新的导游图可以和原本的导游图作上述的同样的操作。 七、存在的不足与对策及编程体会 这次的课程设计一直做了将近一周,每天都想着如何去实现各个子函数,如何将各个子函数衔接好,如何解决程序中出现的问题。虽然程序仍旧存在一些不足,但是我从中编程序的过程中得了很多收获。 这次的课程设计我应用数据结构中图的存储结构,对我来说算是一件很具有挑战性。因为图是我们新接触的存储方式,掌握的并不是很熟练。在编程中,总是遇到各种各样的问题,于是不得不翻书去寻找解决的方案,再加上长时间没有用C编程,很多格式都已经遗忘,只好把更早的C语言程序设计找出来去看。但是,通过翻书去寻找答案,解决问题,使我对图的掌握、对C的掌握有很大的提高。 这个导游图使用的是邻接矩阵和邻接表的存储方式,在定义二维数组的时候,因为没有使用动态存储,因此不得不为景点数目设定上限。在该程序中,景点数目的上限为20个,如果景点数超过20个,则会出现内存溢出的情况。但是我们可以通过增大二维数组的维数来提高景点数目的上限。 虽然出现了各种各样的问题,但最终我还是用自己的方式解决

文档评论(0)

新起点 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档