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