学习了一学期的数据结构后,期末时老师要求我们选择一个经典算法并且实现它,且实现要带图形界面。
关于图的最短路的经典算法:
Floyd和Dijstr(默认了解会用)
关于我选的最短路系统:
实现了图形界面演示,
![](https://img-blog.csdnimg.cn/img_convert/52a6330c7022ed15f0e960e73e25d052.png)
包括鼠标移动变色,鼠标点击音效
![](https://img-blog.csdnimg.cn/img_convert/99fdfb50ea6fb22dfe4d2d707177455a.png)
鼠标选择起点与终点
![](https://img-blog.csdnimg.cn/img_convert/2a4256cce97090651871fe72822a72bf.png)
起点与终点之间的最短路求解后颜色变化在底部有路径详情和路径总长(即权值之和)。
![](https://img-blog.csdnimg.cn/img_convert/1047471af0053f5471d9a32536d76fa2.png)
其二还有迪杰斯特拉的算法,其实两者实现最短的演示效果都是相同的,为了区分我实现了两个算法,即在dijstr版块着重演示了它的求最短路的过程,每个值的比较的情况,如下图:
![](https://img-blog.csdnimg.cn/img_convert/47504f199609c5d5cfc9cf70b772a61d.png)
注:由于本次图形化采用的位Easy-x实现,所以有重复相同工作的屎山代码(无法优化),特别时dijstr板块,且该板块起点与终点数据均已内定(无论你输入的起点和终点数据为何,均视为由A->G)
关于逻辑功能的完善:
要求先确定起点在确定终点,均要求先确定起点与终点才能实现最短路的求解和演示,如图:
![](https://img-blog.csdnimg.cn/img_convert/0e59b84e7173ef22b11fb3e4ac137299.png)
输入要求合法:(dijstr)
![](https://img-blog.csdnimg.cn/img_convert/9eda7801e9d17bf46f562480017da774.png)
综上:为系统的大部分功能。由于当时在家,没多少心思做这个,所以做的相对粗糙,但是拿来应付学校的经典算法作业还是绰绰有余(这系统我教师评定的是满分(90)不同难度最高分不同)
![](https://img-blog.csdnimg.cn/img_convert/803d4e3101b1a0e20c646e36b9013e97.png)
下面是该系统的运行要求:
ide选择
推荐VisualStudio
2.Easy-X 支持c++,C语言是不支持的,不过C语言能在c++上跑,保存和新建选择c++格式就行
3.Easy-X
安装Easy-x,并且装在你的ide上,你ide能包含图形库头文件。
具备以上条件,你也就能运行我的项目了!
由于本项目含有背景音乐和鼠标点击与移动音效,故有几个音乐文件,无法上传到该页面!
!!且该项目只需运行系统中的MapDjs即可,剩下的两个不用运行(是我当时调试用的)!!
由于屎山代码和音乐文件无法上传,要的请私信我