齊愛(ài)朋
(河南工業(yè)貿(mào)易職業(yè)學(xué)院,河南 鄭州 451191)
教學(xué)方法的研究始終是教學(xué)研究的核心內(nèi)容,啟發(fā)式教學(xué)、討論式教學(xué)、學(xué)生展示式教學(xué)、案例式教學(xué)等都能引導(dǎo)學(xué)生進(jìn)行積極主動(dòng)的思考,激發(fā)學(xué)生學(xué)習(xí)的熱情。隨著新技術(shù)的出現(xiàn),課程教學(xué)有了很多新方法,如疫情期間的網(wǎng)絡(luò)教學(xué)。新的技術(shù)、新的課程都在呼喚更適合、更有效的教學(xué)方法。本文就“Ⅴisual Basic 程序設(shè)計(jì)”這一門課程的教學(xué)為例,進(jìn)行教學(xué)方法的探究。
Ⅴisual Basic 是Microsoft 公司開(kāi)發(fā)的一種通用的基于對(duì)象的程序設(shè)計(jì)語(yǔ)言,是結(jié)構(gòu)化的、模塊化的、面向?qū)ο蟮?、包含協(xié)助開(kāi)發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語(yǔ)言[1]。ⅤB 擁有圖形用戶界面(GUI)和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),程序員可以輕松地使用ⅤB 提供的組件快速建立一個(gè)應(yīng)用程序。
基于ⅤB 以上的特點(diǎn),許多高校均把“Ⅴisual Basic程序設(shè)計(jì)”作為大學(xué)生的編程入門課。河南工業(yè)貿(mào)易職業(yè)學(xué)院是高職院校,學(xué)生入學(xué)成績(jī)低、文化基礎(chǔ)差、自主學(xué)習(xí)能力較低,筆者依據(jù)多年教學(xué)經(jīng)驗(yàn),總結(jié)出了上好ⅤB 課的方法,即:少理論、多實(shí)踐;舉例由淺入深,循序漸進(jìn);增加應(yīng)用實(shí)例的趣味性。
下面以學(xué)習(xí)ⅤB 中Timer 控件為例,研討如何吸引學(xué)生跟隨教師的思路,快速掌握該控件的應(yīng)用,并進(jìn)一步熟悉ⅤB 程序的開(kāi)發(fā)方法。
ⅤB 程序設(shè)計(jì)一般包括界面設(shè)計(jì)和代碼設(shè)計(jì)2個(gè)步驟。
界面設(shè)計(jì):ⅤB 提供有工具箱,如圖1 所示,包含豐富的控件,如文本框控件用于接收用戶的輸入、標(biāo)簽框可以顯示信息、圖像框可以在窗體上顯示圖片、命令按鈕在運(yùn)行時(shí)可以響應(yīng)用戶的單擊事件等,方便用戶設(shè)計(jì)界面。將這些控件添加到窗體上,并對(duì)相關(guān)的屬性進(jìn)行設(shè)置,就能設(shè)計(jì)出滿足需要的各種界面了。設(shè)計(jì)程序時(shí),只需依據(jù)功能,將相應(yīng)的控件添加到窗體上,設(shè)置好格式及相應(yīng)的屬性,一個(gè)窗體應(yīng)用程序的界面就設(shè)置好了。
圖1 工具箱
代碼編寫:ⅤB 采用事件驅(qū)動(dòng)的編程機(jī)制,即在程序運(yùn)行時(shí)發(fā)生了某種事件才執(zhí)行相應(yīng)事件里的代碼,所以ⅤB 的代碼都是寫在對(duì)象相應(yīng)的事件過(guò)程中的。比如,程序運(yùn)行時(shí),若用戶單擊了某個(gè)命令按鈕,程序就會(huì)執(zhí)行該命令按扭的Click 事件代碼。
所以學(xué)習(xí)ⅤB 控件,需要學(xué)習(xí)該控件具有哪些屬性、其含義是什么、可響應(yīng)什么事件及事件在什么情況下發(fā)生。
在Windows 應(yīng)用程序中常常要用到時(shí)間控制的功能,如在程序界面上顯示當(dāng)前時(shí)間,或者每隔多長(zhǎng)時(shí)間重復(fù)執(zhí)行一個(gè)事件等。Timer(時(shí)間)控件就是專門解決這方面問(wèn)題的控件[2]。
Timer 控件的常用屬性只有Interval 和Enabled2 個(gè)。
Interval(時(shí)間間隔)屬性:用于設(shè)定計(jì)時(shí)器觸發(fā)事件的時(shí)間間隔,單位為毫秒(ms),取值范圍為0~65 535 ms。若將Interval 屬性設(shè)置為0 或負(fù)數(shù),則計(jì)時(shí)器停止工作。
Enabled(可用)屬性:用于設(shè)置計(jì)時(shí)器是否有效。值為True(默認(rèn)值),而且Interval 值大于0,計(jì)時(shí)器開(kāi)始工作;值為False,計(jì)時(shí)器則停止工作。
Timer 控件唯一的事件就是Timer 事件。Timer 事件以Interval 屬性指定的間隔時(shí)間發(fā)生,可將需要定時(shí)重復(fù)執(zhí)行的操作放在該事件過(guò)程中完成。需要注意,當(dāng)Enabled 屬性值為True 且Interval 屬性值大于0 時(shí),計(jì)時(shí)器才能響應(yīng)Timer 事件。
掌握了Timer 控件的屬性及事件,就可以引導(dǎo)學(xué)生進(jìn)行實(shí)例演練了。
為了讓學(xué)生更好地掌握Timer 控件的應(yīng)用,筆者采用了從單一功能到綜合功能的方法,通過(guò)逐步引導(dǎo)學(xué)生實(shí)現(xiàn):新年倒計(jì)時(shí)、閃爍的新年快樂(lè)、禮花綻放同時(shí)伴隨鞭炮聲,最后再綜合到一起來(lái)實(shí)現(xiàn)一個(gè)動(dòng)態(tài)的新年場(chǎng)景。
采用一個(gè)標(biāo)簽框顯示數(shù)字,用一個(gè)Timer 控件控制按秒倒計(jì)時(shí),實(shí)現(xiàn)從10 倒計(jì)時(shí)到0 停止。界面及實(shí)現(xiàn)代碼如圖2 所示。
圖2 倒計(jì)時(shí)器
采用一個(gè)標(biāo)簽框顯示文字,用一個(gè)Timer 控件控制文字的字號(hào)有規(guī)律地變大變小,字號(hào)在10~100 號(hào)之間變化。界面及實(shí)現(xiàn)代碼如圖3 所示。
圖3 閃爍文字
通過(guò)一個(gè)Timer 規(guī)律地在窗體上打印顏色隨機(jī)、位置任意、大小不斷變化的禮花。這里用隨機(jī)函數(shù)Randomize 和Rnd 來(lái)產(chǎn)生隨機(jī)數(shù)。界面及實(shí)現(xiàn)代碼如圖4 所示。
圖4 禮花綻放
提前下載好禮花燃放的音效文件“1.mp3”,并存放在當(dāng)前工程文件夾下。單擊“工程”|“部件”,打開(kāi)“部件”對(duì)話框,添加“Windows Media Player”控件到工具箱。往“禮花綻放”窗體添加媒體播放器對(duì)象WindowsMediaPlayer1,并在窗體的Load 事件中添加代碼: WindowsMediaPlayer1.URL = App.Path +"1.mp3"。
在Timer 事件中添加代碼:WindowsMediaPlayer1.Controls.play。重新運(yùn)行程序,在禮花綻放的同時(shí)就會(huì)伴有禮花燃放的聲音了。
通過(guò)以上幾個(gè)單一功能的實(shí)現(xiàn),學(xué)生已較好地掌握了Timer 控件。下面引導(dǎo)學(xué)生將上面3 個(gè)窗體功能合并到一個(gè)窗體上,實(shí)現(xiàn)新年倒計(jì)時(shí)結(jié)束后緊接著問(wèn)候新年、禮花升起在效果。從而讓學(xué)生進(jìn)一步掌握多計(jì)時(shí)器的應(yīng)用及如何在準(zhǔn)確的時(shí)間點(diǎn)啟動(dòng)/停止計(jì)時(shí)器。
在同一個(gè)窗體上添加3 個(gè)計(jì)時(shí)器,其中Timer1 控制倒計(jì)時(shí),Timer2 控制閃爍的文字,Timer3 控制禮花綻放及鞭炮聲。再參考前面單一功能添加2 個(gè)標(biāo)簽框和1 個(gè)播放器,如圖5 所示。
圖5 新年到
修改窗體的Load 事件代碼及Timer1 的Timer 事件代碼,使得Timer1 先工作進(jìn)行倒計(jì)時(shí),計(jì)時(shí)結(jié)束后再啟動(dòng)Timer2 和Timer3 顯示閃爍文字并燃放禮花。修改后的代碼如圖6 所示。
程序運(yùn)行期間,當(dāng)用戶調(diào)窗體大小時(shí),文字將不能始終在窗體正中間,影響效果。由于當(dāng)窗體大小發(fā)生變化時(shí),將觸發(fā)窗體的Resize 事件,所以在該事件中加入相應(yīng)代碼,當(dāng)用戶調(diào)整窗體大小時(shí),讓文字始終在窗體的中心位置顯示而不會(huì)偏在一邊。實(shí)現(xiàn)代碼如圖7 所示。
圖6 修改后的代碼
圖7 Resize 事件代碼
最后再生成可執(zhí)行的exe 文件,一個(gè)能獨(dú)立運(yùn)行的動(dòng)態(tài)的新年場(chǎng)景就做好了。
Timer 控件是ⅤB 中唯一能實(shí)現(xiàn)動(dòng)態(tài)效果的控件,通過(guò)該控件把學(xué)過(guò)的知識(shí)綜合應(yīng)用起來(lái),可以增加程序的趣味性,從而提高學(xué)生學(xué)習(xí)的興趣。這種理論知識(shí)加循序漸進(jìn)創(chuàng)作實(shí)例的教學(xué)方法,簡(jiǎn)化了學(xué)習(xí)的難度,讓基礎(chǔ)不好的學(xué)生也能掌握,也給基礎(chǔ)好的學(xué)生指出了進(jìn)一步擴(kuò)展更多功能的方法,能充分調(diào)動(dòng)學(xué)生學(xué)習(xí)興趣及學(xué)習(xí)積極性,起到事半功倍的效果。