毛戰(zhàn)軍
(長(zhǎng)江大學(xué)一年級(jí)教學(xué)工作部,湖北 荊州 434025)
閱卷任務(wù)自動(dòng)分派的編程及實(shí)現(xiàn)
毛戰(zhàn)軍
(長(zhǎng)江大學(xué)一年級(jí)教學(xué)工作部,湖北 荊州 434025)
同頭課程閱卷的分派工作不難,但是當(dāng)參加考試的班級(jí)多,情況復(fù)雜,又要按指定要求分派閱卷任務(wù)時(shí),如果只憑手工操作,則計(jì)算量大,調(diào)整麻煩。對(duì)自動(dòng)分派閱卷任務(wù)的編程及其實(shí)現(xiàn)進(jìn)行了研究。在考試情況的統(tǒng)計(jì)報(bào)表中,利用VBA語句,先編寫滿足分派要求的通用過程“Sub fenzu()”,再逐組逐次調(diào)用該過程,就可以按照指定要求自動(dòng)、靈活地完成閱卷的分派工作。
閱卷任務(wù);自動(dòng)分派;VBA;編程
長(zhǎng)江大學(xué)一年級(jí)教學(xué)工作部《高等數(shù)學(xué)》(A)課程的期末統(tǒng)考完畢后,通常是安排閱卷教師分組流水閱卷,完成試卷的批閱、整理、裝訂、分?jǐn)?shù)的統(tǒng)計(jì)、錄入、成績(jī)的分析等多項(xiàng)工作。閱卷任務(wù)的分派通常是根據(jù)考試情況的統(tǒng)計(jì)數(shù)據(jù),原則上是按每組閱卷教師所代課程的教學(xué)頭數(shù)的多少來分派試卷的份數(shù)和本數(shù)。如果采用手工分派任務(wù),不僅耗時(shí),而且費(fèi)力、不靈活。由于統(tǒng)計(jì)數(shù)據(jù)用Excel文件保存,為此筆者在Excel文件中利用VBA語句,根據(jù)統(tǒng)計(jì)數(shù)據(jù)按指定要求實(shí)現(xiàn)自動(dòng)、靈活地閱卷任務(wù)分派。
以2011~2012學(xué)年上學(xué)期期末為例,共有115個(gè)自然班,4049名學(xué)生參加該課程的期末統(tǒng)考,有19名教師參與閱卷工作。將閱卷教師分為5組:前4組每組成員均為4名教師,每組教師所代課程均為12個(gè)教學(xué)頭;第5組3名教師,所代課程為7個(gè)教學(xué)頭。先按要求計(jì)算每組閱卷教師閱卷的份數(shù)與本數(shù),再按計(jì)算所得的數(shù)據(jù)分派任務(wù)。由于分派各組任務(wù)的方法與過程基本相同,可以利用VBA語句,先編寫通用的過程“Sub fenzu()”,再利用循環(huán)語句,逐次調(diào)用過程“Sub fenzu()”完成任務(wù)的分派。主程序流程圖見圖1,過程“Sub fenzu()”的流程圖見圖2。
圖1 主程序流程圖 圖2過程Sub fenzu( )流程圖
2.1讀取分組信息
通過人機(jī)對(duì)話界面讀取閱卷組數(shù)及每組教師所代課程的教學(xué)頭數(shù),并計(jì)算所有閱卷教師所代課程的教學(xué)頭總數(shù)。
2.2計(jì)算每組的閱卷任務(wù)
分派閱卷任務(wù)的原則是按每組閱卷教師所代課程的教學(xué)頭數(shù)的多少來分派試卷的份數(shù)和本數(shù)。該學(xué)期該課程的期末試卷份數(shù)為4049份,共115本,參加閱卷的教師19名,所代課程共計(jì)55個(gè)教學(xué)頭。每教學(xué)頭平均4049/55≈73.618份和115/55≈2.091本,這2個(gè)“平均數(shù)”都不是整數(shù),筆者的作法是:前4組由“平均數(shù)”乘以“教學(xué)頭數(shù)”再四舍五入取整得到每組閱卷的份數(shù)與本數(shù),剩下的試卷都分給第5組。具體實(shí)現(xiàn)過程如下:
2.3編寫通用的過程“Subfenzu()”
由于分派各組閱卷任務(wù)的方法與過程基本相同,先編寫可供調(diào)用的通用過程:Sub fenzu(zubie, yuans, yuanz, mus, hangs, yjfshu)‘Sub fenzu(組別,組開始行數(shù),組結(jié)束行數(shù),調(diào)整選擇范圍開始行數(shù),總本數(shù),組閱卷份數(shù))。
1)數(shù)據(jù)排序 如果只按統(tǒng)計(jì)數(shù)據(jù)的順序來分派任務(wù),并不能每次都恰好滿足要求。如,通過計(jì)算可知第1組應(yīng)閱卷25本,883份。利用循環(huán)語句按班級(jí)排列順序計(jì)算統(tǒng)計(jì)數(shù)據(jù)中的第1~25個(gè)班級(jí)的試卷總份數(shù)為902份,與指定的任務(wù)不符。這時(shí),需要對(duì)統(tǒng)計(jì)數(shù)據(jù)的排列順序進(jìn)行調(diào)整。筆者將統(tǒng)計(jì)數(shù)據(jù)從最下到最上按班級(jí)試卷份數(shù)的最少、最多、次少、次多,……的順序排列,排序越靠前,班級(jí)的試卷份數(shù)越接近每班平均數(shù)。按照這樣的順序分派任務(wù)時(shí),即使不能恰好滿足要求,也能為數(shù)據(jù)的調(diào)整提供最多的選擇。數(shù)據(jù)排序利用循環(huán)語句和排序命令:第1次將所有區(qū)域的數(shù)據(jù)按班級(jí)試卷份數(shù)的多少?gòu)纳系较?、從大到小排序;?次排序時(shí),將不包括最后一行的區(qū)域的數(shù)據(jù)按班級(jí)試卷份數(shù)的多少?gòu)纳系较?、從小到大排序。奇?shù)次排序?qū)崿F(xiàn)過程如下:
j = 0
For n = yuans To hangs
If n Mod 2 <> 0 Then
Range(“A” & yuans & “:C” & hangs - j).Sort Key1:=Range(“B” & yuans), Order1:=xlDescending, Header:= xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal[2]
‘奇數(shù)次排序時(shí),將指定區(qū)域的統(tǒng)計(jì)數(shù)據(jù)按從上到下、試卷份數(shù)從大到小的方式排序
偶數(shù)次排序時(shí),將指定區(qū)域的統(tǒng)計(jì)數(shù)據(jù)按從上到下、試卷份數(shù)從小到大的方式排序,實(shí)現(xiàn)過程與奇數(shù)次排序類似。
2)調(diào)整份數(shù) 如在調(diào)整數(shù)據(jù)的順序之后,再為第1組分派任務(wù)時(shí),將數(shù)據(jù)中的第1~25個(gè)班級(jí)標(biāo)注“第1組”,計(jì)算第1~25個(gè)班級(jí)的試卷總份數(shù),總計(jì)880份,與指定的任務(wù)不符,少了3份。利用循環(huán)語句,逐本把第1~25個(gè)班級(jí)的試卷份數(shù)加3一一與第26~115個(gè)班級(jí)的試卷份數(shù)匹配,如匹配成功,將原注釋取消,并在目標(biāo)班級(jí)后標(biāo)注“第1組”,再通過排序命令,將第1組任務(wù)排在前第1~25行:
zshu = 0
For n = yuans To yuanz
2.4調(diào)用“Subfenzu()”
分派各組任務(wù)的方法與過程都基本相同。利用循環(huán)語句,逐次調(diào)用過程“Sub fenzu()”完成任務(wù)的分派:
yuans = 1
yuanz = yjbshu(1)
For i = 1 To (c-1)
mus = yuanz + 1
Call fenzu(i, yuans, yuanz, mus, hangs, yjfshu(i)) ‘逐次調(diào)用過程“Sub fenzu()”完成任務(wù)的分派
yuans = yuans + yjbshu(i)
yuanz = yuanz + yjbshu(i+1)
Next
For i = mus To hangs
Range(“c” & i) = “第” & c & “組” ‘為最后一組的閱卷班級(jí)作標(biāo)注
Next
2.5任務(wù)匯總
在分派完閱卷任務(wù)后,對(duì)各組的閱卷任務(wù)進(jìn)行匯總。
For i = 1 To c
Range(“a” & hangs + i) = “第” & i & “組”
Next
該程序在Winxp+Office2003的工作環(huán)境下通過,完成了《高等數(shù)學(xué)》(A)期末的流水閱卷安排。由于采用自動(dòng)分派任務(wù)的方式,因此還可以根據(jù)要求靈活、迅速地調(diào)整閱卷安排。在筆者所討論的方法中,沒有考慮回避制度(因?yàn)槭敲芊忾喚?,這個(gè)需求也就不是特別迫切),但如果需要回避,則可以在分配某組的閱卷任務(wù)時(shí),在數(shù)據(jù)中剔除該組教師所代班級(jí)后,再使用該方法,即可達(dá)到目的。
[1]張強(qiáng),劉飚.Excel 2007與VBA編程從入門到精通[M].北京:電子工業(yè)出版社,2008:118.
[2]晶辰工作室.Excel 2000中文版VBA編程開發(fā)指南[M].北京:電子工業(yè)出版社,2000:72.
[編輯] 洪云飛
10.3969/j.issn.1673-1409(N).2012.06.035
TP311.1
A
1673-1409(2012)06-N105-03
長(zhǎng)江大學(xué)學(xué)報(bào)(自科版)2012年16期