溫春玲
摘 要:基于A(yíng)ndroid平臺(tái)設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)課程教輔演示系統(tǒng)。以動(dòng)畫(huà)的形式在移動(dòng)終端設(shè)備上演示數(shù)據(jù)結(jié)構(gòu)典型算法的執(zhí)行過(guò)程,用戶(hù)可以與之進(jìn)行交互,輸入不同的初始數(shù)據(jù)后,系統(tǒng)可以動(dòng)態(tài)演示算法的具體執(zhí)行過(guò)程。該系統(tǒng)提高了數(shù)據(jù)結(jié)構(gòu)課程學(xué)習(xí)的趣味性和直觀(guān)性,并且可以在任何地點(diǎn)進(jìn)行學(xué)習(xí),具有較高的靈活性。
關(guān)鍵詞:Android 數(shù)據(jù)結(jié)構(gòu) 課程算法 動(dòng)畫(huà)演示
數(shù)據(jù)結(jié)構(gòu)課程,傳統(tǒng)的教學(xué)方法缺少直觀(guān)性和動(dòng)態(tài)性,很難形象地使學(xué)生理解相關(guān)知識(shí)點(diǎn)?;诖耍霈F(xiàn)了一些數(shù)據(jù)結(jié)構(gòu)算法的動(dòng)畫(huà)演示系統(tǒng),其輸入一些初始數(shù)據(jù)即能以動(dòng)畫(huà)的形式演示算法的整個(gè)執(zhí)行過(guò)程,提高了學(xué)生的學(xué)習(xí)效率。但是這些系統(tǒng)都是基于PC機(jī)設(shè)計(jì)實(shí)現(xiàn)的,學(xué)生學(xué)習(xí)場(chǎng)地受到了限制。如果將該系統(tǒng)在智能手機(jī)或平板電腦上實(shí)現(xiàn),將極大地提高該系統(tǒng)的方便性。為此,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了基于A(yíng)ndroid平臺(tái)的數(shù)據(jù)結(jié)構(gòu)課程教輔演示系統(tǒng)。
一、系統(tǒng)功能設(shè)計(jì)
該系統(tǒng)是一個(gè)基于A(yíng)ndroid的動(dòng)態(tài)演示數(shù)據(jù)結(jié)構(gòu)算法執(zhí)行過(guò)程的輔助學(xué)習(xí)軟件,它可根據(jù)學(xué)習(xí)者輸入的算法初始數(shù)據(jù)以及算法執(zhí)行過(guò)程中控制方式的不同在A(yíng)ndroid終端設(shè)備具有不同的顯示效果,包括算法執(zhí)行過(guò)程中數(shù)據(jù)邏輯結(jié)構(gòu)或存儲(chǔ)結(jié)構(gòu)的變化情況以及遞歸算法執(zhí)行過(guò)程中棧的變化情況等。整個(gè)系統(tǒng)使用觸摸按鈕驅(qū)動(dòng)方式,設(shè)計(jì)多個(gè)按鈕選項(xiàng)。每個(gè)按鈕選項(xiàng)對(duì)應(yīng)一個(gè)動(dòng)作,系統(tǒng)將一直處于選擇按鈕項(xiàng)或執(zhí)行動(dòng)作狀態(tài),直到選擇了退出動(dòng)作為止。整個(gè)系統(tǒng)的功能設(shè)計(jì)如下。
一是動(dòng)態(tài)演示數(shù)據(jù)結(jié)構(gòu)典型算法的執(zhí)行過(guò)程,包括順序表、鏈表、二叉樹(shù)、圖以及排序等。二是算法執(zhí)行過(guò)程中跟蹤變量的值。三是算法執(zhí)行過(guò)程中動(dòng)態(tài)顯示相應(yīng)的C語(yǔ)言代碼。四是具有暫停、恢復(fù)運(yùn)行、單步運(yùn)行、復(fù)位等控制功能。
二、系統(tǒng)主界面設(shè)計(jì)
數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)主界面設(shè)計(jì)啟動(dòng)各個(gè)算法的按鈕,通過(guò)這些按鈕啟動(dòng)每個(gè)算法演示界面。算法演示的圖形用戶(hù)界面采用的模板有幾個(gè)主要區(qū)域,每個(gè)區(qū)域?qū)?yīng)一個(gè)組件。
一是主窗口:包括標(biāo)題欄和工具欄,用來(lái)實(shí)現(xiàn)系統(tǒng)控制。
二是動(dòng)畫(huà)演示區(qū):以圖形和動(dòng)畫(huà)的方式模擬和顯示算法執(zhí)行的過(guò)程和結(jié)果。
三是源代碼區(qū):用來(lái)顯示類(lèi)C語(yǔ)言編寫(xiě)的算法描述。為了更清楚地描繪算法的執(zhí)行過(guò)程,當(dāng)程序運(yùn)行到當(dāng)前行時(shí),用一條高亮度光帶罩住此語(yǔ)句,表示該語(yǔ)句被執(zhí)行。在系統(tǒng)的主界面中,利用GridView布局,顯示功能選項(xiàng),并在布局下方添加“幫助”和“退出”按鈕。主界面的設(shè)計(jì)風(fēng)格簡(jiǎn)約大方,操作方便。系統(tǒng)主界面及幫助界面如圖1所示。
三、系統(tǒng)功能實(shí)現(xiàn)
以順序表為例闡述系統(tǒng)功能的實(shí)現(xiàn)。在順序表模塊中,二級(jí)菜單中提供了順序表的插入和刪除選項(xiàng)。選擇順序表的插入或者刪除后進(jìn)入初始化界面,設(shè)置順序表中的元素、插入變量以及插入位置,確認(rèn)后將進(jìn)入算法演示的主窗口。主窗口的工具欄包括執(zhí)行、暫停、單步和重置。動(dòng)畫(huà)演示區(qū)的圖形模擬是在原有的布局中通過(guò)添加TextView控件,生成新的布局進(jìn)行算法的動(dòng)畫(huà)演示。源代碼區(qū)是定義代碼字符的數(shù)組,利用初始化函數(shù)接收數(shù)組中的元素,并根據(jù)數(shù)組長(zhǎng)度添加TextView控件的個(gè)數(shù),循環(huán)將TextView中的內(nèi)容添加為代碼字符數(shù)組中的元素。這樣,實(shí)現(xiàn)的順序表模塊的界面如圖2所示。
四、小結(jié)
基于A(yíng)ndroid平臺(tái)實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)算法動(dòng)畫(huà)演示系統(tǒng),作為數(shù)據(jù)結(jié)構(gòu)課程的教輔軟件,實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)中典型算法,包括順序表插入、鏈表插入、二叉樹(shù)的遍歷以及起泡排序等算法的動(dòng)畫(huà)。該系統(tǒng)對(duì)算法的執(zhí)行過(guò)程進(jìn)行動(dòng)態(tài)模擬、代碼同步跟蹤,并在算法執(zhí)行過(guò)程中可選擇單步執(zhí)行、暫停、重置等功能。該系統(tǒng)作為Android的App形式,使其下載安裝方便,容易攜帶,隨時(shí)隨地進(jìn)行輔助學(xué)習(xí),并且具有良好的交互性,對(duì)提高數(shù)據(jù)結(jié)構(gòu)課程學(xué)習(xí)效率起到較好的輔助作用。
(作者單位:青島市化學(xué)工業(yè)職工中等專(zhuān)業(yè)學(xué)校)