首页 -> 2008年第3期

基于MCAI理论的整数插入排序教学软件设计与开发

作者:季淑惠 曹乃龙




  摘要:讨论了职业院校《数据结构》课程中整数插入排序算法的教学软件的开发。在软件设计中,设计思想基于MCAI理论,使用Delphi程序设计语言,对算法实现单步执行,使静态的算法以动态的形式在屏幕上显示,达到良好的人机交互目的。
  关键词:MCAI;整数插入排序;Delphi;控件
  
  目前,计算机辅助教学已在职业院校中广泛开展,特别是MCAI(Multimedia Computer Aided Instruction,多媒体计算机辅助教学)的应用,以其贮存信息量大、画面丰富、多种媒体综合运用等特点,为学生建立了一个动态教学环境。《数据结构》中的整数插入排序算法本身是一种抽象的静态描述,而职业院校的部分学生接受能力较弱,因此教学效果受到一定的影响。为了解决这个问题,本软件结合MCAI理论,利用Delphi7.0作为开发工具来完成,使抽象、静态的算法以直观、形象、动态的形式在屏幕上显示,从而达到提高整数插入排序算法教学效果的目的。
  
  设计思想
  
  MCAI理论MCAI具有如下特点:(1)学生可以控制学习内容和学习进度。允许学生选择学习内容,设置同步措施,只有当学生学习了前一部分知识后,才能进入下一步的学习。这样,学生的学习进展不受时间与地点的限制,可以取得最佳的学习速度。(2)学生处于一种积极、主动的精神状态。在MCAI中,因为教学进度由学生控制和连续的提问——反馈或是操作——反应——刺激等交互活动组成,学生不像被动学习时那么容易疲劳和受干扰,从而可以取得较好的教学效果。(3)对教师或软件开发者提供了教学决策支持。计算机可保留每个学生的学习进展纪录,并进行每个学生的学习进程分析和群体学习分析,给教师或软件开发者提供了教学决策支持。
  关键技术本软件使用Delphi7.0作为开发工具,其明显的特点是:(1)可视化的快速Web开发,让开发者能够在Delphi7.0环境中可视化地创建Web应用,并且利用它的应用模型框架,不必再考虑通过的服务器端的开发任务,还能透明地处理会话管理。(2)免费的DataSnap多层应用开发。新的Delphi7.0的DataSnap授权协议允许开发者无缝升级单层和客户/服务器应用到多层应用,而不需额外的运行使用费。(3)windowsXP应用。Delphi7.0对windows风格的支持,让开发者能够创建可以利用windowsXP使用者界面风格的应用。
  
  开发方案
  
  可行性分析交互式MCAI整数插入排序软件开发是一个面向教学的应用系统。它可以针对不同的学生群体进行不同的操作,它可以按照要求执行一步或几步,同时可以播放音乐、动画等多媒体软件,还可以设置断点、跟踪、单步、设置等,还可以根据人的要求修改程序,操作简单方便,其客户端是一个友好的界面,使用方便,其功能是比较强大的。
  需求分析根据需求分析必须利用数据结构中的栈和链表。栈和链表是程序设计中的难点,然而却是十分方便的工具,在Delphi中虽然没有提供指针类数据类型,但利用Delphi提供的类模块可形象地进行构造。在系统设计阶段将主要利用Delphi中的控件进行图形化设置,在脚本设计阶段可以利用数据结构中的算法,最终一起达到该课程设计的目的,最后进行评价修改。
  模块设计该软件包括顺序表的插入、顺序表的删除和直接插入排序三部分,如图1所示。
  
  图1模块设计图
  功能实现
  主界面的设计与实现作为软件的首张界面,主要采用柔和底色作为整体基调,力求做到简洁明了,给人以整洁干净的感觉。设计上主要利用Delphi7.0中几种基本的控件,例如文本控件、按钮控件以及简单的代码编写,实现表单之间的联系。
  
  图2主界面运行效果图
  主体控件和登录界面模块从上一级表单中进入这个登陆窗口,主要考虑一个身份验证的问题,只有身份合法才能进入下面的演示模块,强调软件的安全性能。工作重点是对登陆窗口的设计以及内部代码的编写。窗体的实现可以依靠强大的Delphi7.0里面现有的控件直接引用,重点就是关于用户以及密码控件的实现过程。其运行效果如图3所示。
  
  图3登录界面模块运行效果图
  直接插入排序演示模块这个模块是整个软件开发过程中的重点与难点,为了实现算法的单步实现,让整个演示软件可以更加直观、形象。可以把原来的连续执行的算法步骤,重新按单步执行的方式编排程序的流程。我们可以运用Delphi里面的时钟控件,让用户可以自行设置,鉴于程序需要单步执行,每一次跳转前后需要保护现场和恢复现场,为此需要设置几个全局变量用以保存状态,同时还需要设置时间的长短来控制图像运行的效果,时间相对长些效果就越明显。其运行效果如图4所示。
  
  图4直接插入排序演示模块运行效果图
  数据设置模块此模块实际上是直接插入排序模块的子模块,主要工作就是针对排序的算法设置有关参数的一个阶段。基本思想是根据随机或者手动设置数据以及时间间隔的设置用以控制演示的速度与清晰度,可以更加直观的描述直接插入排序的一个明显的过程。此模块主要功能是针对排序具体设置数据的一个阶段。为了用户更加自主,设计了随机发生器与人工输入,但是限制了个数(最多16)。其运行效果如图5所示。
  
  图5数据设置模块运行效果图
  软件运行分析
  根据软件工程上的一些知识和方法,我们从不同的角度测试了该软件,基本上达到了方便应用的目的。例如:
  初始情况:设r[1],r[2],r[3],r[4]已经有序,现插入r[5]
  r[1]r[2]r[3]r[4]r[5]
  210 18 25 9
  j=5;r[0]=r[j];i=j-1; //初始化,设置待插入位置
  2101825□
  //r[i+1]为待插入位置
  i=4,r[0] < r[i],r[i+1]=r[i];i--;
  //调整待插入位置
  21018□25
   i=3,r[0] < r[i],r[i+1]=r[i];i--;
  //调整待插入位置
  210□1825
  i=2,r[0] < r[i],r[i+1]=r[i];i--;
  //调整待插入位置
  2□101825
  i=1,r[0] ≥r[i],r[i+1]=r[0];
  //插入记录
  29101825//插入过程结束
  我们完全可以手动输入 21018259,并设置时间间隔用以控制演示的速度与清晰度,然后运行插入排序模块,点击下一步或自动标识的控件来观测系统的整个运行是否符合在《数据结构》中所学到的上述算法理论过程。经过天津轻工职业技术学校2006级数控一班的课堂实地检验,在正常条件下,运用MCAI理论开发的整数插入排序系统能无故障运行,完成预定的整个教学活动。学生普遍反映系统的稳定性良好,有很强的交互性,达到了提高教学效果的目的。
  
  参考文献:
  [1]张春林.Delphi6程序设计导学[M].北京:清华大学出版社,2003.
  [2]彭玉青,肖国玺,杨昕.《数据结构》算法动态演示CAI软件的实现[J].河北工业大学成人教育学院学报,2000,(3):14-15.
  [3]游晓明,刘升.多媒体《数据结构》CAI系统的设计与开发[J].湖北师范学院学报,2002,(4):12-14.
  [4]唐伎玲,刘钱.数据结构多媒体教学软件的设计[J].长春大学学报,2002,(3):13-15.
  [5]王春红.多媒体CAI在数据结构算法教学中的应用[J].现代计算机,2002,(1):23-24.
  [6]杨红颖,王向阳.一种新的分“档”置换插入排序算法[J]小型微型计算机系统.2006,27(6):996-1001.
  作者简介:
  季淑惠(1982—),女,山东临清人,天津工程师范学院2005级硕士研究生,研究方向为教育技术学。
  曹乃龙(1984—),男,河南信阳人,天津工程师范学院2006级硕士研究生,研究方向为教育技术学。
  (本文责任编辑:谢良才)
  
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。


本文为全文原貌 请先安装PDF浏览器  原版全文