数据结构课程设计报告模板_2.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言与数据结构课程设计 第7章 图结构及其应用 PAGE 24 PAGE 23  校园导游系统设计 一、 设计要求 1.问题描述 设计一个校园导游程序,为来访的客人提供信息查询服务。 2.需求分析 (1)设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 (2)存放景点代号、名称、简介等信息供用户查询。 (3)为来访客人提供图中任意景点相关信息的查询。 (4)为来访客人提供图中任意景点之间的问路查询。 (5)可以为校园平面图增加或删除景点或边,修改边上的权值等。 二、 概要设计 为了实现以上功能,可以从3个方面着手设计。 1.主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图7-10所示。 2.存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中:各景点间的邻接关系用图的邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的个数由分量vexnum、arcnum表示,它们是整型数据。 此外,本系统还设置了三个全局变量:visited[ ] 数组用于存储顶点是否被访问标志;d[ ]数组用于存放边上的权值或存储查找路径顶点的编号;campus是一个图结构的全局变量。 3.系统功能设计 本系统除了要完成图的初始化功能外还设置了8个子功能菜单。图的初始化由函数initgraph( )实现。依据读入的图的顶点个数和边的个数,分别初始化图结构中图的顶点向量数组和图的邻接矩阵。8个子功能的设计描述如下。 (1)学校景点介绍 学校景点介绍由函数browsecompus( )实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点简介。 (2)查看浏览路线 查看浏览路线由函数shortestpath_dij( )实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其它景点的最短路径线路及距离。 (3)查看两景点间最短路径 查看两景点间最短路径由函数shortestpath_floyd( )实现。该功能采用弗洛伊德(Floyd)算法实现。当用户选择该功能,系统能根据用户输入的起始景点及目的地景点编号,查询任意两个景点之间的最短路径线路及距离。 (4)景点信息查询 景点信息查询由函数seeabout( )实现。该功能根据用户输入的景点编号输出该景点的相关信息。例如,景点编号、名称等。 (5)更改图的信息 更改图的信息功能由主调函数changegraph( )及若干个子函数完成,可以实现图的若干基本操作。例如:增加新的景点、删除边、重建图等。 (6)查询景点间可行路径 该功能是查询两景点间所有可行路径,由函数allpath( )和函数path( )实现,其中path( )函数是直接递归函数。由于是无向网,如果网中的边数很多,任意两个景点间的所有路径也会有限多,但很多路径是无实际意义的(有近路,为什么去走远路呢?)。所以,本算法在求得的两景点间所有可行路径中,限制只输出路径长度不超过8个景点的路线。 (7)打印邻接矩阵 该功能即输出图的邻接矩阵的值,由函数printmatrix( )实现。 (8)退出 即退出校园导游系统,由exit(0)函数实现。 三、 模块设计 1.校园抽象图设计 以湖北第二师范学院光谷校区主要景点为例,抽象完成的无向网如图7-7所示。全校共抽象出28个景点,39条道路。各景点分别用图中的顶点表示,景点编号从0-27;39条道路分别用图中的边表示,边上的权值表示景点之间的模拟距离。 90 90 50 60 50 50 40 60 60 60 50 50 90 40 60 80 60 40 100 80 60 100 90 40 60 60 60 50 40 60 40 70 200 80 70 70 190 60 80 70 90 2 15 0 6 3 9 4 20 12 21 16 22 25 17 14 19 24 13 23 11 8 27 7 1 10 5 26 18 图7-7 抽象的二师院光谷校区无向带权图 2.模块设计 本程序包含3个模块:主程序模块、工作区模块和无向网操作模块。调用关系如图7-8所示。 主程序模块 主程序模块 工作区模块 无向网操作模块 图7-8 模块调用示意图 3.系统子程序及功能设计   本系统共设置18个子程序,各子程序的函数名及功能说明如下。 (1

文档评论(0)

133****5313 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档