張忠和
案例教學(xué)是提高基礎(chǔ)知識(shí)運(yùn)用能力的一個(gè)非常好的手段,也是激發(fā)學(xué)生創(chuàng)作積極性的有效方法。特別是以學(xué)生感興趣的案例為切入點(diǎn)能起到事半功倍的效果。本文利用網(wǎng)絡(luò)上流行的游戲“開(kāi)心農(nóng)場(chǎng)”、“陽(yáng)光牧場(chǎng)”作為切入點(diǎn),開(kāi)發(fā)一個(gè)程序?qū)崿F(xiàn)定時(shí)提醒收割或定時(shí)提醒偷竊,成功地解決了網(wǎng)友在等待中白白地浪費(fèi)時(shí)間或錯(cuò)過(guò)收割時(shí)機(jī)。
一、知識(shí)點(diǎn)準(zhǔn)備
1.控件數(shù)組
見(jiàn)表1
表1說(shuō)明如下:
(1)選用控件數(shù)組是為了方便編寫(xiě)源程序代碼,充分利用該案例界面中每行任務(wù)的同質(zhì)性。
(2)“選擇網(wǎng)站”和“選擇場(chǎng)地”控件數(shù)組選用組合框控件而不選擇列表框控件。這是由于很多個(gè)網(wǎng)站有開(kāi)心農(nóng)場(chǎng)游戲,在制作界面時(shí)無(wú)法窮盡,當(dāng)用戶(hù)使用該程序時(shí)既可在給定的下拉列表中選擇給定文本也可直接填入未給定文本。
(3)“間隔分鐘”、“剩余時(shí)間“、“序號(hào)姓名”三個(gè)控件數(shù)組皆選用文本框,利用文本框控件的“Chang”事件編寫(xiě)“間隔分鐘”控件數(shù)組的過(guò)程代碼,從而實(shí)現(xiàn)用戶(hù)在“間隔分鐘”所在列的文本框中輸入作物收割所需的分鐘數(shù),之后在程序代碼的控制下,用“剩余時(shí)間”“提醒位置”和“蜂鳴器”三種方法提醒用戶(hù)收割時(shí)間已到?!笆S鄷r(shí)間”和“序號(hào)姓名”兩列控件數(shù)組無(wú)事件代碼,只起到提示時(shí)間和記錄的作用。
(4)“提醒位置”控件數(shù)組選用圖片框控件,便于用顯著的圖片來(lái)起到提醒的作用,本控件數(shù)組也無(wú)需編寫(xiě)事件代碼,在制作界面時(shí)將圖片加載,并在窗體的Load事件過(guò)程中令該控件數(shù)組的Visible = False使其程序運(yùn)行時(shí)隱藏,再利用定時(shí)器控件(Timer)控制其何時(shí)顯示。
(5)“循環(huán)利用”控件數(shù)組選用Command控件數(shù)組,其事件過(guò)程目的是在提醒任務(wù)完成后用該控件清空本行繼續(xù)實(shí)現(xiàn)另一個(gè)提醒目的。
2.定時(shí)器控件
設(shè)計(jì)兩個(gè)核心定時(shí)器控件,一個(gè)控制調(diào)用“提醒位置”顯示圖片的子過(guò)程,另一個(gè)負(fù)責(zé)聲控提醒。再安排16個(gè)定時(shí)器控件分別控制各自行的“剩余時(shí)間”。
3.基礎(chǔ)知識(shí)
(1)數(shù)組:本案例源程序聲明了四個(gè)數(shù)組,實(shí)現(xiàn)源程序中時(shí)間運(yùn)算、時(shí)間控制以及累加器等任務(wù)。
(2)循環(huán)結(jié)構(gòu):選用For循環(huán),實(shí)現(xiàn)控件數(shù)組的賦值和數(shù)組的賦值。
(3)選擇結(jié)構(gòu):主要使用Select Case語(yǔ)句。
二、主要過(guò)程代碼
1.“間隔分鐘數(shù)”一列文本框控件數(shù)組的代碼
Private Sub Text1_Change(Index As Integer)
Select Case Index
Case 0
b(0)=0‘累加器變量
If Text1(0).Text=""Then Exit Sub‘不輸入時(shí)間則不啟動(dòng)計(jì)時(shí)程序段
m(0)=Val(Text1(0).Text)‘間隔分鐘數(shù)變量
t(0)=CDate(Format(m(0)60,0)&":"&Format(m(0)Mod60, 0)&":"&"00")+Time‘轉(zhuǎn)換為未來(lái)時(shí)刻
Timer3.Enabled=True‘啟動(dòng)定時(shí)器控件3
2.“清空”一列的代碼
Private Sub Command1_Click(Index As Integer)‘恢復(fù)到初始狀態(tài)
Select Case Index
Case 0
Combo1(0).Text ="":Combo2(0).Text="":Text1(0).Text ="":Text2(0).Text="":Picture1(0).Visible=False:Timer3.Enabled=False
t(0)=#11:59:59PM#
y(0)=16
Text3(0)=""
…… ……
通過(guò)本程序的學(xué)習(xí),使學(xué)生探索性地學(xué)習(xí)了開(kāi)發(fā)一個(gè)實(shí)用程序,學(xué)生的編程水平上了一個(gè)新臺(tái)階。鞏固并充實(shí)了《Vasaul Basic程序設(shè)計(jì)》課程中的許多知識(shí)點(diǎn)。為學(xué)生編程水平的進(jìn)一步提高打下了堅(jiān)實(shí)的基礎(chǔ)。
(作者單位:山東省泰安市高級(jí)技工學(xué)校)