- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
——数据结构(C语言)课程设计
题目:可视化弗洛伊德最短路径
班级:计算机12级
成员:王朴, 李元, 包赫, 李崇飞
学号:2012011342 2012011337 2012011364 2012011369
日期:2014年1月16日
一.实习目的
通过实习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。
二.问题描述
设计、实现随机或手动建立一个有向图,可以使用弗洛伊德算法输出有向图中节点之间最短路径及权值,并把有向图和弗洛伊德算法得出的最短路径及最小权值可视化。
三.需求分析
(1) 可随机建立有向图,并在屏幕上使图可视化;
(2) 可手动建立有向图,添加节点、删除节点、移动节点、添加边、删除边、设置权值,并在屏幕上使图可视化;
(3) 对已建立的有向图实现弗洛伊德算法找出最短路径,并在屏幕上使最短路径及最小权值矩阵可视化;
四.概要设计
.系统中子程序及功能要求:
数据对象V:一个集合,该集合中的所有元素具有相同的特性
数据关系R:R={VR}
VR={x,y|P(x,y)^(x,y属于V)}
OnButtonCreategraph()//随机建图按钮;
OnButtonHuman()//手动建图按钮;
OnButtonAddvertex()//添加节点按钮;
OnButtonDeletevertex()//删除节点按钮;
OnButtonMovevertex()//移动节点按钮;
OnButtonAddedge()//添加边按钮;
OnButtonDeleteedge()//删除边按钮;
OnButtonSetweight()//设置权值按钮;
OnButtonFloyd()//弗洛伊德算法按钮;
DrawDGRandom(TCenterPoint, pDC)//随机建图;
DrawDiGraph(CDC *pDC)//图可视化;
DrawVexs(CDC *pDC)//节点可视化;
DrawEdges(CDC *pDC)//边可视化;
InitHand()//存储节点;
CreateDGHand(CPoint centerpoint)//手动建图;
AddVertsHand()//添加节点;
DeleteVex(CPoint vPoint)//删除节点;
AddEdgesHand()//添加边;
DeleteEdge(CGraphVertex* pBeginVex, CGraphVertex* pEndVex)//删除边;
SetEdgeWeightHand ()//设置权值;
Floyd()//弗洛伊德算法;
DrawFloyd(CDC *pDC)//弗洛伊德可视化;
各程序模块之间的调用关系(子程序编号见上):
主函数可调用子程序 1、2、3、4、5、6、7、8、9
子程序1可调用子程序10
子程序2、3可调用子程序14、15
子程序3可调用子程序16
子程序4可调用子程序17
子程序6可调用子程序18
子程序7可调用子程序19
子程序8可调用子程序20
子程序9可调用子程序21
子程序10可调用子程序11
子程序16可调用子程序12
子程序17可调用子程序12、19
子程序18、19、20可调用子程序13
子程序21可调用子程序22
五.测试分析
按照附录中的测试数据,得出如下测试、分析结果:
建图功能:
随机建图:随机去顶节点的个数与位置及节点之间边的连接、方向与权值大小,并在屏幕上输出图结构;
测试结果:可随机输出一有向图。
手动建图:
添加节点:手动添加节点并放在任意位置;
结果:可在任意位置添加节点。
删除节点:手动删除一节点;
结果:只能按顺序删除,无法任意删除,有待改进。
移动节点:可将某一节点移动到其他位置;
结果:尚未实现。
添加边:在任意两个不同节点之间添加任意方向的边;
结果:可以实现添加任意方向的边。
删除边:删除任意一条已存在的边;
结果:可以删除任意一条存在的边。
d、 设置权值:给任意一条已存在的边赋予权值;
结果:可以赋予权值;
弗洛伊德算法:对已确定的有向图通过Floyd算法找到任意两点间的最短路径 并在屏幕上输出最短路径及权值的矩阵;
结果:可正确输出路径及权值。
六.使用说明
1.运行程序,首先出现主界面。主界面首先包括两个个选项:
选
文档评论(0)