汪思帆
(新田縣一中 湖南永州 425799)
課堂提問是一種最直接、最基本的教學(xué)活動(dòng)形式。然而低年級(jí)學(xué)生在課堂上比高年級(jí)學(xué)生要活躍,低年級(jí)學(xué)生更能積極主動(dòng)地參與課堂。但隨著學(xué)生年齡的增大,課堂上能主動(dòng)回答問題的同學(xué)越來越少,需由老師來點(diǎn)名回答,這樣的課堂顯得單調(diào)而沉悶。也有些同學(xué)認(rèn)為老師偏心,總讓一些成績好的同學(xué)來回答問題。久而久之,學(xué)生會(huì)對(duì)課程和老師產(chǎn)生厭惡。為了解決此問題,我嘗試引入類似抽獎(jiǎng)的游戲機(jī)制進(jìn)入課堂來解決學(xué)生點(diǎn)名的問題。在教學(xué)業(yè)余時(shí)間我用VB軟件制作了一個(gè)課堂隨機(jī)點(diǎn)名器,在課堂上用它來隨機(jī)抽取學(xué)生回答問題。我發(fā)現(xiàn)隨機(jī)點(diǎn)名游戲機(jī)制的應(yīng)用不僅活躍了課堂氣氛,增加了趣味性,而且還體現(xiàn)了學(xué)生回答問題的公平和公正,讓每個(gè)同學(xué)都有機(jī)會(huì)參與課堂回答問題。
1.首先讀取學(xué)生名單,學(xué)生的名單以格式化的文本文件的形式存儲(chǔ),然后通過隨機(jī)函數(shù)來調(diào)用學(xué)生名單。
2.其次通過時(shí)間控件來控制,每一次時(shí)間控件的執(zhí)行則運(yùn)行一次調(diào)用學(xué)生名單的隨機(jī)函數(shù)。
3.最后通過開始和停止來控制程序的運(yùn)行。
1.程序容量小,界面美觀,簡潔。
2.操作簡單,適用性廣。
3.抽取的名單具有隨機(jī)性。
下面我們用VB軟件來制作這個(gè)程序,實(shí)現(xiàn)上述功能。
(一)制作程序界面
打開VB6.0軟件,方法如下:新建一個(gè)“標(biāo)準(zhǔn)EXE”文件,即建立一個(gè)窗體Form1,在窗體Form1上添加以下幾個(gè)控件。在左邊的控件欄里拖入兩個(gè)按鈕Command1和Command2,再拖入一個(gè)文本框控件Text1,最后再拖入一個(gè)時(shí)間控件Timer1。并設(shè)置好各控件的大小和排好位置如圖一所示。
▲圖一
(二)準(zhǔn)備一個(gè)班的學(xué)生名單,用記事本來保存,并且使每個(gè)學(xué)生的姓名占一行。如文件名為“name.txt”。如圖二所示。
▲圖二
(三)要想使其產(chǎn)生效果,還必須添加一些程序代碼。
1.先來添加兩個(gè)按鈕的代碼。并且通過兩個(gè)按鈕就實(shí)現(xiàn)了三個(gè)功能的顯示,如“開始”,“繼續(xù)”,“停止”。
(1)雙擊Command1按鈕,進(jìn)入Click事件代碼編輯窗口。輸入以下程序代碼:
判斷按鈕顯示是否為“開始”
If Command1.Caption="開始"Then’如果
“是”,則使按鈕Command1失效
Command1.Enabled=False’并使按鈕Command2顯示名稱為“停止”
Command2.Caption="停止"’開啟時(shí)鐘
Timer1.Enabled=True ’否則,使按鈕
Command1失效,按鈕Command2有效,同樣開啟時(shí)鐘
Else
Command1.Enabled=False
Command2.Enabled=True
Timer1.Enabled=True
End If
(2)雙擊Command2按鈕,進(jìn)入Click事件代碼編輯窗口。輸入以下程序代碼:
默認(rèn)時(shí)間控件不開啟,Command1按鈕有效,并顯示為“繼續(xù)”
Timer1.Enabled=False
Command1.Enabled=True
Command1.Caption="繼續(xù)"
2.為了能夠達(dá)到隨機(jī)顯示文件中的一個(gè)學(xué)生的姓名,則要通過時(shí)間控件事件執(zhí)行滾動(dòng)隨機(jī)提取數(shù),雙擊Timer1控件,進(jìn)入Timer事件代碼編輯窗口。輸入以下程序代碼:
intNameNum=0 ’打開有學(xué)生姓名的文件,Name文件要跟這個(gè)程序放在同一個(gè)目錄下
strFileName=App.Path&" ame.txt"
Open strFileName For Input As#1’循環(huán)至文件尾
Do While Not EOF(1) ’讀打開的文件(#1)一行的學(xué)生姓名給變量strTemp
Input#1,strTemp
如果姓名的長度不為0
If Len(strTemp)>=1 Then
intNameNum=intNameNum+1’動(dòng)態(tài)定義數(shù)組
ReDim PreservestrAllName(intNameNum)
As String ’將學(xué)生姓名賦值給對(duì)應(yīng)的數(shù)組變量
strAllName(intNameNum)=strTemp
End If
Loop ’關(guān)閉文件
Close#1 ’初始化隨機(jī)數(shù)生成器
Randomize
UBound()’用來確定數(shù)組strAllName的大小和生成一個(gè)隨機(jī)整數(shù)
intTemp2=Int(Rnd()*UBound(strAll-
Name))+1’將隨機(jī)產(chǎn)生的學(xué)生姓名通過文本框顯示
Text1.Text=strAllName(intTemp2)
3.雖然設(shè)置了時(shí)間控件里的程序代碼,但是時(shí)間控件還沒有被初始化。所以需要在窗體加載事件中對(duì)一些控件進(jìn)行初始化。雙擊窗體,在窗體Form的Load事件里寫入以下代碼:
清空文本框內(nèi)容
Text1.Text=""’設(shè)置時(shí)間控件周期為20ms
Timer1.Interval=20’默認(rèn)時(shí)間控件不開啟
Timer1.Enabled=False
默認(rèn)Command1的名稱為開始
Command1.Caption="開始"
默認(rèn)Command1的名稱為停止
Command2.Caption="停止"
4.最后再聲明一個(gè)私有的字符串?dāng)?shù)組strALLName,在“通用”的“聲明”里寫入以下代碼,如圖(三)所示。
▲圖三
PrivatestrAllName()As String
(四)最后保存和運(yùn)行一下程序即可,效果如圖所示。當(dāng)老師點(diǎn)擊開始,則全班的學(xué)生名單在不停地滾動(dòng),一旦按一下停止,則會(huì)顯示被抽中的同學(xué)姓名,還可以接著繼續(xù)抽。注意一定要把保存學(xué)生姓名的記事本文件“name.txt”與“課堂隨機(jī)點(diǎn)名器.EXE”文件放在同一個(gè)目錄下。
▲圖四
這個(gè)程序在實(shí)際教學(xué)中效果很好,特別是學(xué)生對(duì)學(xué)習(xí)的興趣有所提高。而且程序開發(fā)很實(shí)用,擴(kuò)展性好,易于修改,其它老師拿過去就可以用。不同的班級(jí)只要直接在存儲(chǔ)文件里(name.txt)重新輸入新的姓名即可,而不需要修改程序。除了應(yīng)用于老師在課堂上的點(diǎn)名外,也可以用于學(xué)校的晚會(huì)場合作為抽獎(jiǎng)來使用。