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