论文部分内容阅读
在科学技术领域以及日常生活中,可视化现象有着重要的意义,它有助于我们了解什么正在运行,怎么运行的,给我们带来新的见解。如今可视化的概念已经扩展到各个领域,并成为一个新兴的研究领域,可视化教育就是其中之一。在大学的课程中,算法课程内容比较抽象、复杂难懂且又是计算机专业的核心课程,采用可视化软件进行算法教学可以将其内容化繁为简,有助于学生的学习,提高教学质量。因此,设计一个好的算法可视化软件很有价值,目前国内也出现了一些可视化软件,并在相关领域取得了较好的应用效果,但普遍也还存在一些关键问题需要解决和完善,如:(1)动画的演示:通过设计一种演示元素对不同的类调用不同的演示元素来解决动画演示问题;(2)软件的兼容性:对软件的模型结构进行设计,给不同的算法类型提供统一的调用接口;(3)代码与动画的绑定:设计一种鲁棒性较好的连接方式。本文针对以上关键问题进行研究,提出利用Qt平台解决这些问题。主要工作包括:(1)动画的演示:在软件中采用图形显示控制技术,通过继承QGraphicsItem中pain()方法来实现演示图形的绘制及属性设置;(2)软件的兼容性:采用模型分层设计使得算法可视化软件具有可扩展性,能够适用于多种算法的可视化,在本文中实现了5种排序算法,分别为择排序、冒泡排序、堆排序、插入排序以及希尔排序;(3)代码与动画的绑定:代码对执行的图片进行解释,此处通过采用标记法程序代码与可视化演示关联。在解释方法中使用ListWidget控件设置ListIndex的值来实现,在关联部分中利用信号和槽机制,通过可视化过程中发射的关联信号来触发关联槽执行相应的动画。本文从常用的算法可视化软件模型入手,同时也分析了国内外的算法可视化软件模型的设计特点及功能实现情况,提出一种基于Qt的算法可视化软件框架。并在算法可视化软件的设计和实现过程中,论证上述关键问题解决方法的可行性。