侯偉 吳錦楊 袁龍華
摘要:本隨機(jī)抽題系統(tǒng)以畢業(yè)答辯為例結(jié)合VBA編程和微信公眾號(hào)互聯(lián)網(wǎng)技術(shù),改變了傳統(tǒng)活動(dòng)現(xiàn)場(chǎng)環(huán)節(jié)中的紙質(zhì)化抽簽及抽題的形式,同時(shí)還具有答題倒計(jì)時(shí)功能。本隨機(jī)抽題系統(tǒng)可適用于畢業(yè)答辯、課堂教學(xué)互動(dòng)、晚會(huì)現(xiàn)場(chǎng)抽獎(jiǎng)、教學(xué)知識(shí)競(jìng)賽、面試隨機(jī)抽題等需要隨機(jī)抽簽或抽題的場(chǎng)合。該系統(tǒng)能夠使每一位在場(chǎng)用戶(hù)通過(guò)投影儀屏幕同時(shí)看到隨機(jī)所抽題目,相比傳統(tǒng)紙質(zhì)抽題更公平公正。
關(guān)鍵詞:VBA編程;隨機(jī)抽題;隨機(jī)抽簽;微信公眾號(hào);倒計(jì)時(shí)
中圖分類(lèi)號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)30-0100-03
1背景意義
隨著電子行業(yè)的突飛猛進(jìn),計(jì)算機(jī)及其應(yīng)用軟件走進(jìn)了人們的生活,我們應(yīng)該充分利用電子產(chǎn)品資源。例如,在高校畢業(yè)答辯、研究生入學(xué)面試等各個(gè)抽題環(huán)節(jié)中一般采用紙質(zhì)化抽題,這樣不僅浪費(fèi)紙張、浪費(fèi)碳粉,同時(shí)打印機(jī)在打印過(guò)程中所消耗電能以及微細(xì)碳粉對(duì)環(huán)境產(chǎn)生的危害也不可忽視。我國(guó)仍有大部分地區(qū)實(shí)行火力發(fā)電,需要消耗煤炭,而紙張來(lái)源于樹(shù)皮,這些紙張、電能的消耗都間接導(dǎo)致溫室效應(yīng),不符合國(guó)家長(zhǎng)期發(fā)展的要求。通過(guò)微信公眾號(hào),學(xué)生在答辯環(huán)節(jié)中還可以參與投票表決互動(dòng),選出自己認(rèn)為最佳答辯畢業(yè)生。在高校研究生面試、企業(yè)面試、教學(xué)知識(shí)競(jìng)賽、晚會(huì)比賽等活動(dòng)中,通過(guò)使用本系統(tǒng)中引用的二維碼技術(shù)仍然可以滿(mǎn)足不同用戶(hù)的需求。
2技術(shù)方案
本隨機(jī)抽題軟件可根據(jù)參賽選手總?cè)藬?shù),自動(dòng)設(shè)置抽簽數(shù)量,參賽選手只需要點(diǎn)擊“開(kāi)始抽簽”控制按鈕便可隨機(jī)滾動(dòng)生成簽號(hào),此時(shí)系統(tǒng)狀態(tài)輸出顯示器會(huì)顯示“正在抽簽”,點(diǎn)擊“停止抽簽”控制按鈕即可獲得自己的抽簽結(jié)果,此時(shí)系統(tǒng)狀態(tài)輸出顯示器會(huì)顯示“您抽的是×號(hào)簽”。參賽選手點(diǎn)擊“開(kāi)始抽題”控制按鈕時(shí)便可高速滾動(dòng)顯示題目編號(hào),此時(shí)系統(tǒng)狀態(tài)輸出顯示器會(huì)顯示“正在抽題”,參賽選手點(diǎn)擊“停止抽題”控制按鈕即可隨機(jī)不重復(fù)獲得一個(gè)題目編號(hào),此時(shí)系統(tǒng)狀態(tài)輸出顯示器會(huì)顯示“請(qǐng)您回答×號(hào)題”。此時(shí)點(diǎn)擊“打開(kāi)題目”控制器即可查看自己抽取的題目,參賽選手回答題目的同時(shí),系統(tǒng)自動(dòng)進(jìn)入120s倒計(jì)時(shí)階段,參賽選手回答完畢題目之后可以點(diǎn)擊“參考答案”觸發(fā)控制按鈕得知自己回答正確與否,并且可以點(diǎn)擊“繼續(xù)抽題”觸發(fā)控制器按鈕進(jìn)行下一輪抽題環(huán)節(jié),所有題目抽取完畢之后,系統(tǒng)會(huì)自動(dòng)彈框提醒參賽選手“題目已抽完,請(qǐng)點(diǎn)擊初始化重新抽題!”
3代碼內(nèi)容
PPT中使用VBA方法目前已經(jīng)有較多參考文獻(xiàn)講述,在此不再詳述,本次隨機(jī)抽題所用VBA編碼如下:
Dim Canbeuse, QuestionNum1, QuestionUsed1, QuestionNum2, QuestionUsed2, arrRM, FCQXS, F As Integer
Dim flag As Boolean
Private Sub 抽取框_Change()
End Sub
Private Sub 初始化_Click()
Call CQ_do1("stop")
Call CQ_do2("stop")
Canbeuse = 1
取框.ForeColor = &HC00000
抽取框.Text = "圓融"
已抽題目.Text = ""
已抽簽.Text = ""
文字描述.Text = "勤學(xué)務(wù)實(shí) 卓越"
Me.開(kāi)始抽簽.Caption = "開(kāi)始抽簽"
Me.開(kāi)始抽題.Caption = "開(kāi)始抽題"
QuestionNum2 = ActivePresentation.Slides.Count - 1
題目總數(shù).Text = QuestionNum2
End Sub
Private Sub 開(kāi)始抽簽_Click()
抽取框.ForeColor = &HFF&
If Me.開(kāi)始抽簽.Caption = "停止抽簽" Then
Me.開(kāi)始抽簽.Caption = "開(kāi)始抽簽"
Call CQ_do1("stop")
Else
Me.開(kāi)始抽簽.Caption = "停止抽簽"
Call CQ_do1("start")
End If
End Sub
Private Sub CQ_do1(doTag)
QuestionNum1 = 總?cè)藬?shù).Text
QuestionUsed1 = Split(Me.已抽簽, " , ", -1, 1)
Canbeuse = 1
If doTag = "start" Then
F = 0
If UBound(QuestionUsed1) < QuestionNum1 Then
Dim n As Integer
Randomize '初始化隨機(jī)函數(shù)
Do
'Sleep 30
n = Int((QuestionNum1) * Rnd + 1) 'n為隨機(jī)抽取的數(shù)值,設(shè)置為從1-QuestionNum里抽取
抽取框.Text = n
If 開(kāi)始抽簽.Caption = "開(kāi)始抽簽" Then
文字描述.Text = "您抽的是 號(hào)簽"
Else
文字描述.Text = "正在抽簽"
End If
If F = 1 Then
Dim J, m
Canbeuse = 1
For J = 1 To UBound(QuestionUsed1)
m = QuestionUsed1(J - 1)
If QuestionUsed1(J - 1) = n Then
Canbeuse = 0
Exit For
Else
End If
Next
If Canbeuse = 1 Then
已抽簽 = 已抽簽 + 抽取框.Text + " , " '題目標(biāo)記用 , 分隔
Exit Do
End If
End If
DoEvents
Loop
Else
MsgBox ("抽簽結(jié)束,請(qǐng)準(zhǔn)備抽題。")
End If
Else
F = 1
End If
End Sub
Private Sub 開(kāi)始抽題_Click()
抽取框.ForeColor = &HFF&
If Me.開(kāi)始抽題.Caption = "停止抽題" Then
Me.開(kāi)始抽題.Caption = "開(kāi)始抽題"
Call CQ_do2("stop")
Else
Me.開(kāi)始抽題.Caption = "停止抽題"
Call CQ_do2("start")
End If
End Sub
Private Sub CQ_do2(doTag)
QuestionNum2 = ActivePresentation.Slides.Count - 1
QuestionUsed2 = Split(Me.已抽題目, " , ", -1, 1)
Canbeuse = 1
If doTag = "start" Then
F = 0
If UBound(QuestionUsed2) < QuestionNum2 Then
Dim n As Integer
Randomize '初始化隨機(jī)函數(shù)
Do
'Sleep 30
n = Int((QuestionNum2) * Rnd + 1) 'n為隨機(jī)抽取的數(shù)值,設(shè)置為從1-QuestionNum里抽取
抽取框.Text = n
If 開(kāi)始抽題.Caption = "開(kāi)始抽題" Then
文字描述.Text = "請(qǐng)您回答 號(hào)題"
Else
文字描述.Text = "正在抽題"
End If
If F = 1 Then
Dim J, m
Canbeuse = 1
For J = 1 To UBound(QuestionUsed2)
m = QuestionUsed2(J - 1)
If QuestionUsed2(J - 1) = n Then
Canbeuse = 0
Exit For
Else
End If
Next
If Canbeuse = 1 Then
已抽題目 = 已抽題目 + 抽取框.Text + " , " '題目標(biāo)記用 , 分隔
Exit Do
End If
End If
DoEvents
Loop
Else
MsgBox ("題目已抽完,請(qǐng)點(diǎn)擊初始化重新抽題!")
End If
Else
F = 1
End If
End Sub
Private Sub 打開(kāi)題目_Click()
If 抽取框.Text = "圓融" Then
MsgBox ("請(qǐng)先抽題!")
ElseIf 開(kāi)始抽題.Caption = "停止抽題" Then
MsgBox ("請(qǐng)點(diǎn)擊停止抽題!")
ElseIf 開(kāi)始抽簽.Caption = "停止抽簽" Then
MsgBox ("抽題環(huán)節(jié)請(qǐng)勿抽簽!")
Else
ActivePresentation.SlideShowWindow.View.GotoSlide Val(抽取框.Text + 1)
End If
End Sub
4結(jié)論
與現(xiàn)有技術(shù)相比,本次設(shè)計(jì)的隨機(jī)抽題系統(tǒng)具有以下優(yōu)點(diǎn):
1)無(wú)需用戶(hù)手動(dòng)統(tǒng)計(jì)題目總數(shù)量,通過(guò)“初始化”控制器按鈕自動(dòng)查詢(xún)數(shù)據(jù)庫(kù)題目數(shù)量,并將題目數(shù)量發(fā)送至抽題控制器,實(shí)現(xiàn)將抽取題目編號(hào)變化范圍自動(dòng)限定在題目總數(shù)量以?xún)?nèi)功能。
2)本隨機(jī)抽題軟件不僅可保存用戶(hù)抽題記錄,還可多次循環(huán)使用,“初始化”控制器按鈕可以直接向處理器發(fā)送清除指令,快速清空抽簽記錄以及抽題記錄,從而實(shí)現(xiàn)下一輪的抽簽與抽題功能。
3)將“開(kāi)始抽簽”和“停止抽簽”按鈕集成為一個(gè)按鈕,通過(guò)Me指令監(jiān)測(cè)當(dāng)前抽簽控制器活動(dòng)窗口是否激活,如果激活控制器顯示為“停止抽簽”按鈕,否則控制器顯示“開(kāi)始抽簽”按鈕,相比于現(xiàn)有的“開(kāi)始抽簽”和“停止抽簽”控制器按鈕分別獨(dú)立設(shè)計(jì)而言,減少了屏幕面積占用比例,提高屏幕美感。
4)可隨時(shí)輸出抽題活動(dòng)狀態(tài),用戶(hù)點(diǎn)擊“開(kāi)始抽題”控制器按鈕時(shí),系統(tǒng)狀態(tài)輸出顯示器顯示為“正在抽題”,點(diǎn)擊“停止抽題”控制按鈕之后,系統(tǒng)狀態(tài)輸出顯示器顯示為“請(qǐng)您回答×號(hào)題”。
5)用戶(hù)可以隨時(shí)查閱抽簽或抽題記錄,系統(tǒng)狀態(tài)輸出顯示端每次都會(huì)將抽到的簽號(hào)及題號(hào)反饋到“已抽簽號(hào)”及“已抽題目”顯示器。
6)本隨機(jī)抽題系統(tǒng)采用PPT格式相比于傳統(tǒng)的exe格式,具有占用空間小,無(wú)需用戶(hù)安裝,可在任何裝有office的電腦上使用等優(yōu)點(diǎn),用戶(hù)課根據(jù)自己實(shí)際情況修改PPT參數(shù)及幻燈片背景等,無(wú)需單獨(dú)學(xué)習(xí)即可掌握相關(guān)使用技巧。
參考文獻(xiàn):
[1] 王琳.PPT輕松實(shí)現(xiàn)隨機(jī)抽題[J].電腦愛(ài)好者,2012(17):68-68.
[2] 郜亞麗.巧用VBA編程實(shí)現(xiàn)PPT演示文稿的智能交互[J].辦公自動(dòng)化:綜合版, 2010(10):46-48.
[3] 陳江.PPT2010編程實(shí)現(xiàn)隨機(jī)抽題[J].電腦編程技巧與維護(hù),2016(7):12-12.
[4] 吳安洪,胡維康.在PPT中巧用VBA進(jìn)行考題的抽簽[J].中學(xué)時(shí)代,2013(21):211-211.
[5] 朱建國(guó).PPT新視角[M].北京:電子工業(yè)出版社,2013:189-241.