校园导游图C语言数据结构,校园导游图数据结构课程设计最终版

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

数据结构课程设计---校园导游系统 080910315第 1 页 共 51 页南京航空航天大学《数据结构》课程设计报告校 园 导 游 系 统班 级:0809103 班学 号:080910315 姓 名: 施国义指导老师: 胡彩平评定成绩:数据结构课程设计---校园导游系统 080910315第 2 页 共 51 页目录一、需求分析 .3二、程序的主要功能 .3三、程序运行平台 .4四、系统总框架图 .4五、数据结构.4六、测试用例.5七、存在的不足与对策及编程体会13八、程序源代码.14数据结构课程设计---校园导游系统 080910315第 3 页 共 51 页一、 需求分析校园导游程序 [问题描述] 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。[基本要求](1) 查询各景点的相关信息;(2) 查询图中任意两个景点间的最短路径。(3) 查询图中任意两个景点间的所有路径。(4) 增加、删除、更新有关景点和道路的信息。二、程序的主要功能该校园导游程序共有 7 个主要功能:功能一:查询景点的信息;功能二:查询任意两景点之间的最短路径及路径长度;功能三:查询任意两景点之间的所有路线;功能四:在已有的校园导游图中添加新的景点及该景点到其他数据结构课程设计---校园导游系统 080910315第 4 页 共 51 页景点的路径长度;功能五:在已有的校园导游图中删除已有的景点及以该景点为端点的路径;功能六:修改已有校园导游图中的任意一个景点的名称和景点信息或任意一条路径的长度;功能七:重新创建一个新的学校的导游图。三、程序运行平台virtual C++ 6.0 四、系统总框架图五、 数据结构该程序运用数据结构中的图的邻接表的存储方式,用顶点校园导游图查询景点信息查询最短路查询所有路径添加景点和路径删除景点和路径修改景点和路径创建新导游图程序结束数据结构课程设计---校园导游系统 080910315第 5 页 共 51 页来存储景点的名称和景点信息等,用边来存储路径的长度等信息。之后,以有向图的邻接矩阵的方式用 Dijkstra 算法来求图的最短路径问题,以及图的遍历来求两点间的所有路径问题。最后,用图的添加、删除、修改等基本操作完成对校园导游图的修改和重新创建。六、测试用例运行程序:输入“1”:数据结构课程设计---校园导游系统 080910315第 6 页 共 51 页输入“1”:输入编号“3”:数据结构课程设计---校园导游系统 080910315第 7 页 共 51 页按任意键返回上一菜单,再选择“2、按照景点名称查询 ”:输入“东区”:数据结构课程设计---校园导游系统 080910315第 8 页 共 51 页按任意键返回后,再输入“e” ,返回主菜单,选择“2.、查询两景点间最短路径” ,再输入起点和终点景点的序号:按任意键返回主菜单,选择“3.、查询两景点间所有路线 ”,再数据结构课程设计---校园导游系统 080910315第 9 页 共 51 页输入出发和目的景点:按任意键返回主菜单,选择“4” 添加新的景点和路径,输入新的景点名称、景点信息以及该景点到其他各景点的距离:数据结构课程设计---校园导游系统 080910315第 10 页 共 51 页选择“5”删除景点和路径,之后可以按照景点编号或景点名称查询景点,将其删除:按任意键返回后,6 号景点四号楼已经被删除,其余景点依次重新数据结构课程设计---校园导游系统 080910315第 11 页 共 51 页排列:选择“6”修改已有景点和路径,会出现修改景点或修改道路的选择:我们输入“1” ,然后出现输入选择要修改景点的编号,修改景点名数据结构课程设计---校园导游系统 080910315第 12 页 共 51 页称和修改景点描述的选择,我们输入“2”修改景点描述,再输入新的景点信息:返回主菜单后,行政楼的景点描述已经修改:数据结构课程设计---校园导游系统 080910315第 13 页 共 51 页最后,我们选择“7” 创建一个新的校园导游图,然后输入新的学校名称、景点数目、道路条数,再按提示输入景点名称、景点描述、和路径。返回主菜单后,新的马鞍山第二中学导游图就已经创建成功了。数据结构课程设计---校园导游系统 080910315第 14 页 共 51 页之后,新的导游图可以和原本的导游图作上述的同样的操作。七、存在的不足与对策及编程体会这次的课程设计一直做了将近一周,每天都想着如何去实现各个子函数,如何将各个子函数衔接好,如何解决程序中出现的问题。虽然程序仍旧存在一些不足,但是我从中编程序的过程中得了很多收获。这次的课程设计我应用数据结构中图的存储结构,对我来说算是一件很具有挑战性。因为图是我们新接触的存储方式,掌握的并不是很熟练。在编程中,总是遇到各种各样的问题,于是不得不翻书去寻找解决的方案,再加上长时间没有用 C 编程,很多格式都已经遗忘,只好把更早的 C 语言程序设计找出来去看。但是,通过翻数据结构课程设计---校园导游系统 080910315第 15 页 共 51 页书去寻找答案,解决问题,使我对图的掌握、对 C 的掌握有很大的提高。这个导游图使用的是邻接矩阵和邻接表的存储方式,在定义二维数组的时候,因为没有使用动态存储,因此不得不为景点数目设定上限。在该程序中,景点数目的上限为 20 个,如果景点数超过 20个,则会出现内存溢出的情况。但是我们可以通过增大二维数组的维数来提高景点数目的上限。虽然出现了各种各样的问题,但最终我还是用自己的方式解决了各种问题,并完成了这次的课程设计。通过这次课程设计,我知道了想编好程必须拥有充足的理论知识,只有熟练地掌握数据结构和程序设计的所有重点内容,并将其融会贯通,才能够快速地编出很好的程序。除了需要足够的知识,编程更是需要细心和耐心的事,无论遇到什么问题,只要一点一点地去寻找问题的出处,耐心地去寻找问题的解决方法,就一定能够解决问题。八、程序源代码#include “string.h“ #include “stdio.h“ #include “stdio.h“#include “malloc.h“#include “stdlib.h“#define Max 20000数据结构课程设计

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值