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