摘要:討論了職業(yè)院?!稊?shù)據(jù)結構》課程中整數(shù)插入排序算法的教學軟件的開發(fā)。在軟件設計中,設計思想基于MCAI理論,使用Delphi程序設計語言,對算法實現(xiàn)單步執(zhí)行,使靜態(tài)的算法以動態(tài)的形式在屏幕上顯示,達到良好的人機交互目的。
關鍵詞:MCAI;整數(shù)插入排序;Delphi;控件
目前,計算機輔助教學已在職業(yè)院校中廣泛開展,特別是MCAI(Multimedia Computer Aided Instruction,多媒體計算機輔助教學)的應用,以其貯存信息量大、畫面豐富、多種媒體綜合運用等特點,為學生建立了一個動態(tài)教學環(huán)境?!稊?shù)據(jù)結構》中的整數(shù)插入排序算法本身是一種抽象的靜態(tài)描述,而職業(yè)院校的部分學生接受能力較弱,因此教學效果受到一定的影響。為了解決這個問題,本軟件結合MCAI理論,利用Delphi7.0作為開發(fā)工具來完成,使抽象、靜態(tài)的算法以直觀、形象、動態(tài)的形式在屏幕上顯示,從而達到提高整數(shù)插入排序算法教學效果的目的。
設計思想
MCAI理論MCAI具有如下特點:(1)學生可以控制學習內容和學習進度。允許學生選擇學習內容,設置同步措施,只有當學生學習了前一部分知識后,才能進入下一步的學習。這樣,學生的學習進展不受時間與地點的限制,可以取得最佳的學習速度。(2)學生處于一種積極、主動的精神狀態(tài)。在MCAI中,因為教學進度由學生控制和連續(xù)的提問——反饋或是操作——反應——刺激等交互活動組成,學生不像被動學習時那么容易疲勞和受干擾,從而可以取得較好的教學效果。(3)對教師或軟件開發(fā)者提供了教學決策支持。計算機可保留每個學生的學習進展紀錄,并進行每個學生的學習進程分析和群體學習分析,給教師或軟件開發(fā)者提供了教學決策支持。
關鍵技術本軟件使用Delphi7.0作為開發(fā)工具,其明顯的特點是:(1)可視化的快速Web開發(fā),讓開發(fā)者能夠在Delphi7.0環(huán)境中可視化地創(chuàng)建Web應用,并且利用它的應用模型框架,不必再考慮通過的服務器端的開發(fā)任務,還能透明地處理會話管理。(2)免費的DataSnap多層應用開發(fā)。新的Delphi7.0的DataSnap授權協(xié)議允許開發(fā)者無縫升級單層和客戶/服務器應用到多層應用,而不需額外的運行使用費。(3)windowsXP應用。Delphi7.0對windows風格的支持,讓開發(fā)者能夠創(chuàng)建可以利用windowsXP使用者界面風格的應用。
開發(fā)方案
可行性分析交互式MCAI整數(shù)插入排序軟件開發(fā)是一個面向教學的應用系統(tǒng)。它可以針對不同的學生群體進行不同的操作,它可以按照要求執(zhí)行一步或幾步,同時可以播放音樂、動畫等多媒體軟件,還可以設置斷點、跟蹤、單步、設置等,還可以根據(jù)人的要求修改程序,操作簡單方便,其客戶端是一個友好的界面,使用方便,其功能是比較強大的。
需求分析根據(jù)需求分析必須利用數(shù)據(jù)結構中的棧和鏈表。棧和鏈表是程序設計中的難點,然而卻是十分方便的工具,在Delphi中雖然沒有提供指針類數(shù)據(jù)類型,但利用Delphi提供的類模塊可形象地進行構造。在系統(tǒng)設計階段將主要利用Delphi中的控件進行圖形化設置,在腳本設計階段可以利用數(shù)據(jù)結構中的算法,最終一起達到該課程設計的目的,最后進行評價修改。
模塊設計該軟件包括順序表的插入、順序表的刪除和直接插入排序三部分,如圖1所示。
圖1模塊設計圖
功能實現(xiàn)
主界面的設計與實現(xiàn)作為軟件的首張界面,主要采用柔和底色作為整體基調,力求做到簡潔明了,給人以整潔干凈的感覺。設計上主要利用Delphi7.0中幾種基本的控件,例如文本控件、按鈕控件以及簡單的代碼編寫,實現(xiàn)表單之間的聯(lián)系。
圖2主界面運行效果圖
主體控件和登錄界面模塊從上一級表單中進入這個登陸窗口,主要考慮一個身份驗證的問題,只有身份合法才能進入下面的演示模塊,強調軟件的安全性能。工作重點是對登陸窗口的設計以及內部代碼的編寫。窗體的實現(xiàn)可以依靠強大的Delphi7.0里面現(xiàn)有的控件直接引用,重點就是關于用戶以及密碼控件的實現(xiàn)過程。其運行效果如圖3所示。
圖3登錄界面模塊運行效果圖
直接插入排序演示模塊這個模塊是整個軟件開發(fā)過程中的重點與難點,為了實現(xiàn)算法的單步實現(xiàn),讓整個演示軟件可以更加直觀、形象。可以把原來的連續(xù)執(zhí)行的算法步驟,重新按單步執(zhí)行的方式編排程序的流程。我們可以運用Delphi里面的時鐘控件,讓用戶可以自行設置,鑒于程序需要單步執(zhí)行,每一次跳轉前后需要保護現(xiàn)場和恢復現(xiàn)場,為此需要設置幾個全局變量用以保存狀態(tài),同時還需要設置時間的長短來控制圖像運行的效果,時間相對長些效果就越明顯。其運行效果如圖4所示。
圖4直接插入排序演示模塊運行效果圖
數(shù)據(jù)設置模塊此模塊實際上是直接插入排序模塊的子模塊,主要工作就是針對排序的算法設置有關參數(shù)的一個階段。基本思想是根據(jù)隨機或者手動設置數(shù)據(jù)以及時間間隔的設置用以控制演示的速度與清晰度,可以更加直觀的描述直接插入排序的一個明顯的過程。此模塊主要功能是針對排序具體設置數(shù)據(jù)的一個階段。為了用戶更加自主,設計了隨機發(fā)生器與人工輸入,但是限制了個數(shù)(最多16)。其運行效果如圖5所示。
圖5數(shù)據(jù)設置模塊運行效果圖
軟件運行分析
根據(jù)軟件工程上的一些知識和方法,我們從不同的角度測試了該軟件,基本上達到了方便應用的目的。例如:
初始情況:設r[1],r[2],r[3],r[4]已經有序,現(xiàn)插入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,并設置時間間隔用以控制演示的速度與清晰度,然后運行插入排序模塊,點擊下一步或自動標識的控件來觀測系統(tǒng)的整個運行是否符合在《數(shù)據(jù)結構》中所學到的上述算法理論過程。經過天津輕工職業(yè)技術學校2006級數(shù)控一班的課堂實地檢驗,在正常條件下,運用MCAI理論開發(fā)的整數(shù)插入排序系統(tǒng)能無故障運行,完成預定的整個教學活動。學生普遍反映系統(tǒng)的穩(wěn)定性良好,有很強的交互性,達到了提高教學效果的目的。
參考文獻:
[1]張春林.Delphi6程序設計導學[M].北京:清華大學出版社,2003.
[2]彭玉青,肖國璽,楊昕.《數(shù)據(jù)結構》算法動態(tài)演示CAI軟件的實現(xiàn)[J].河北工業(yè)大學成人教育學院學報,2000,(3):14-15.
[3]游曉明,劉升.多媒體《數(shù)據(jù)結構》CAI系統(tǒng)的設計與開發(fā)[J].湖北師范學院學報,2002,(4):12-14.
[4]唐伎玲,劉錢.數(shù)據(jù)結構多媒體教學軟件的設計[J].長春大學學報,2002,(3):13-15.
[5]王春紅.多媒體CAI在數(shù)據(jù)結構算法教學中的應用[J].現(xiàn)代計算機,2002,(1):23-24.
[6]楊紅穎,王向陽.一種新的分“檔”置換插入排序算法[J]小型微型計算機系統(tǒng).2006,27(6):996-1001.
作者簡介:
季淑惠(1982—),女,山東臨清人,天津工程師范學院2005級碩士研究生,研究方向為教育技術學。
曹乃龍(1984—),男,河南信陽人,天津工程師范學院2006級碩士研究生,研究方向為教育技術學。
(本文責任編輯:謝良才)
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。