摘要:開(kāi)放式閱卷系統(tǒng)在實(shí)踐教學(xué)中很有必要。教師經(jīng)常要對(duì)課堂講解的內(nèi)容自己出題對(duì)學(xué)生進(jìn)行測(cè)試,而對(duì)于Office操作題的閱卷將是一件繁瑣的工作。該文將介紹基于比較法Office操作題開(kāi)放式閱卷系統(tǒng)的設(shè)計(jì)原理與數(shù)據(jù)流程,并以PowerPoint為例論述如何利用VB6.0開(kāi)發(fā)。文章詳細(xì)介紹了考點(diǎn)數(shù)據(jù)表、第一次比較如何得到評(píng)分信息表、第二次比較如何得到考生分?jǐn)?shù)及如何將成績(jī)轉(zhuǎn)化為Excel文件保存。
關(guān)鍵詞:Office操作題;比較法;閱卷系統(tǒng);VB程序設(shè)計(jì)
中圖分類號(hào):TP317 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2015)24-0045-02
The Research and Implementation of the Open Marking System Based on the Comparison Method of the Office Operation
CHEN Jun-min
(Jiangxi College of Foreign Studies Nanchang, Nanchang 330099,China)
Abstract: The open marking system is very necessary in practice teaching. Teachers often have to classroom instruction content themselves. The students are tested, and for marking of office operations will be a tedious work. This paper will introduce the design principle and data flow of the open system based on the comparison method of Office operation, and take PowerPoint as an example to discuss how to use VB6.0 to develop. This paper introduces in detail the test data tables, the first is how to get the information score, the second is how to get the examinee scores and achievements transformation saved as Excel files.
Key words: Office operation; comparison method; scoring system; VB programming
開(kāi)放式閱卷系統(tǒng)在實(shí)踐教學(xué)中很有必要。教師經(jīng)常要對(duì)課堂講解的內(nèi)容自己出題對(duì)學(xué)生進(jìn)行測(cè)試,而對(duì)于Office操作題的閱卷將是一件繁瑣的工作。它要求教師打開(kāi)每個(gè)學(xué)生的考試文件,逐一去核對(duì)評(píng)分點(diǎn)的學(xué)生操作是否正確,最后累加評(píng)分點(diǎn)分值得出學(xué)生的考分。盡管有電腦自動(dòng)閱卷系統(tǒng),但它的題庫(kù)是封閉的,題目的考點(diǎn)往往與教師講解的內(nèi)容不相吻合,對(duì)學(xué)生的檢測(cè)沒(méi)有針對(duì)性。
所謂比較法閱卷系統(tǒng),首先要求老師按照測(cè)試要求在考試素材的基礎(chǔ)上做一份標(biāo)準(zhǔn)答案,然后由閱卷系統(tǒng)對(duì)標(biāo)準(zhǔn)答案與考試素材在教學(xué)大綱要求的考點(diǎn)范圍內(nèi)進(jìn)行比較,比較每一考點(diǎn)的設(shè)置值是否相同。如不同,說(shuō)明這是要對(duì)學(xué)生進(jìn)行測(cè)試的評(píng)分點(diǎn)。通過(guò)這種方法,將測(cè)試要求轉(zhuǎn)化為評(píng)分信息,每一條評(píng)分信息都有它的操作說(shuō)明、定位位置、標(biāo)準(zhǔn)值、默認(rèn)分值及編程屬性代碼。如考試要求:設(shè)置第三張幻燈片的主題為“波形”(0.5分),通過(guò)比較法可轉(zhuǎn)化為一條評(píng)分信息為:設(shè)置幻燈片主題、3、波形、0.5,Slider(i).Design.Name。其中Slider(i).Design.Name是幻燈片主題的VB編程對(duì)象及屬性,i是幻燈片的索引號(hào)。
得到評(píng)分信息之后,教師還可以根據(jù)評(píng)分點(diǎn)的權(quán)重修改評(píng)分點(diǎn)的分值,調(diào)整每種測(cè)試類型的小計(jì)分及考試總分,或刪除一些閱卷系統(tǒng)可能增加的評(píng)分信息。如設(shè)置幻燈片的主題,就可能產(chǎn)生兩條評(píng)分信息,一條是幻燈片的主題,另一條是母版的主題,原因是當(dāng)我們?cè)诓僮鱌owerPoint幻燈片的主題時(shí),相應(yīng)的母版主題也會(huì)改變,所以就會(huì)增加一條評(píng)分信息。這時(shí)就有必要將第二條評(píng)分信息刪除,否則一個(gè)測(cè)試點(diǎn)就會(huì)出現(xiàn)重復(fù)扣分或重復(fù)加分。
在確定了評(píng)分信息之后,閱卷系統(tǒng)要進(jìn)行第二次比較。首先讀取考生文件在對(duì)應(yīng)評(píng)分點(diǎn)位置的屬性值,這個(gè)屬性值就是學(xué)生的操作結(jié)果,比較這個(gè)屬性值與評(píng)分信息的標(biāo)準(zhǔn)值是否相同。如果相同,該評(píng)分點(diǎn)得分,否則不得分。如上述評(píng)分信息,讀取考生文件Slider(3).Design.Name的值,如這個(gè)值是“波形”,則操作正確則得分,否則不得分。
如圖1閱卷程序的數(shù)據(jù)流程圖,首先輸入考試素材文檔與標(biāo)準(zhǔn)答案文檔,然后對(duì)這兩個(gè)文檔在考點(diǎn)范圍中進(jìn)行比較,通過(guò)比較將考試要求轉(zhuǎn)化為評(píng)分點(diǎn),系統(tǒng)提供了每一個(gè)評(píng)分點(diǎn)的默認(rèn)分值,當(dāng)然老師也可以根據(jù)需要進(jìn)行調(diào)整。得到評(píng)分點(diǎn)及分值后,再對(duì)考生目錄中的每一考生文件與評(píng)分點(diǎn)進(jìn)行逐一比較,最后得到每個(gè)考生文件的各小題得分及考試總分。
下面以PowerPoint操作題為例,介紹閱卷系統(tǒng)的具體實(shí)現(xiàn)。
1)根據(jù)教學(xué)大綱,設(shè)置一個(gè)PowerPoint考點(diǎn)的Excel數(shù)據(jù)表。選擇Excel而沒(méi)有選擇專業(yè)數(shù)據(jù)庫(kù),這主要是考慮Excel程序的通用性與便捷性,方便日后根據(jù)教學(xué)要求動(dòng)態(tài)地增刪考點(diǎn)。在閱卷程序運(yùn)行時(shí),首先將PowerPoint考點(diǎn)數(shù)據(jù)表讀入系統(tǒng),以便后續(xù)標(biāo)準(zhǔn)答案與考試素材在考點(diǎn)范圍內(nèi)進(jìn)行比較。
Dim TestTable As New Excel.Workbook '考點(diǎn)表
Dim SheetNumAs Integer
Set TestTable = GetObject(App.Path&"\考點(diǎn)表\PPT考點(diǎn)表.xlsx")
SheetNum = TestTable.Sheets.Count
2)讀取考試素材與標(biāo)準(zhǔn)答案文件后,對(duì)其在考點(diǎn)范圍內(nèi)進(jìn)行比較,將測(cè)試要求轉(zhuǎn)化為評(píng)分信息。圖3是檢測(cè)插入一個(gè)動(dòng)畫和設(shè)置幻燈片放映屬性的代碼實(shí)現(xiàn)。其中Slides(i).TimeLine.MainSequence.Item(j)是第i張幻燈片的第j張動(dòng)畫的初始對(duì)象,SlideShowSettings是幻燈片放映設(shè)置的初始對(duì)象,AddTestRecord是當(dāng)插入一個(gè)動(dòng)畫對(duì)象時(shí),將動(dòng)畫屬性寫入評(píng)分點(diǎn)信息表中的自定義過(guò)程,WriteTestRecord是將在某一個(gè)考點(diǎn)標(biāo)準(zhǔn)答案與考試素材的屬性值不相同的寫入評(píng)分信息表。
如在第三張幻燈片中插入一個(gè)動(dòng)畫,并設(shè)置動(dòng)畫相應(yīng)屬性和幻燈片放映的屬性,通過(guò)比較得到如圖4的評(píng)分信息表。
3)讀取所有考生目錄的PowerPoint文件擬準(zhǔn)備進(jìn)行批處理閱卷。要讀取一個(gè)目錄下的所有文件,需要用得文件系統(tǒng)對(duì)象FileSystemObject,通過(guò)CreateObject函數(shù)建立,GetFolder函數(shù)建立文件目錄對(duì)象,其代碼如下:
Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFolder(txtExamFolder)
Set fc = F.Files
For Each f1 In fc
Set PPT = GetObject(f1)
Next
4)接著對(duì)每一個(gè)考生文件對(duì)照評(píng)分點(diǎn)信息進(jìn)行逐一比對(duì),檢測(cè)評(píng)分點(diǎn)定位的對(duì)象屬性值與考生在該點(diǎn)的操作設(shè)置值是否相同,如果相同則得分,否則不能得分。由于不同類型的考點(diǎn),其初始對(duì)象不一樣,定位信息也不一樣,如幻燈片設(shè)計(jì)只要一個(gè)定位信息,即第幾張幻燈片,而動(dòng)畫則要兩個(gè)定位信息,另外還要計(jì)算每種類型的不同得分,因此對(duì)不同的考試類型要分類處理,如比對(duì)幻燈片設(shè)計(jì)和比對(duì)幻燈片動(dòng)畫的代碼如下:
Case "設(shè)計(jì)"
Set OriObj = PPT.Slides(P(0))
StudValue = GetPropertyValue(OriObj, TestGrid.TextMatrix(i, 7)) If StudValue = TestGrid.TextMatrix(i, 5) Then
ScoreTypeStu(4) = ScoreTypeStu(4) + TestGrid.TextMatrix(i, 6)
End If
Case "動(dòng)畫"
Set OriObj = PPT.Slides(P(0)).TimeLine.MainSequence.Item(P(1))
StudValue = GetPropertyValue(OriObj, TestGrid.TextMatrix(i, 7)) If StudValue = TestGrid.TextMatrix(i, 5) Then
ScoreTypeStu(6) = ScoreTypeStu(5) + TestGrid.TextMatrix(i, 6)
End If
閱卷后得到考生成績(jī)表:
5)其中GetPropertyValue是一個(gè)自定義的函數(shù),功能是給定一個(gè)對(duì)象的定位信息與屬性代碼,通過(guò)調(diào)用函數(shù)獲得它的屬性值,這是閱卷程序的難點(diǎn)。如第3張幻燈片的第一個(gè)動(dòng)畫的樣式,其屬性代碼為:Slides(3).TimeLine.MainSequence.Item(1).EffectType。為什么說(shuō)要獲得它的屬性值是程序的難點(diǎn)呢?首先不同的操作項(xiàng)目,屬性的層數(shù)不同,因此不能用固定循環(huán)得到它的值;其次,屬性代碼中,前面都是對(duì)象與子對(duì)象,只有最后一個(gè)是屬性,而對(duì)于對(duì)象與屬性的判斷是一樣的,所以程序要進(jìn)行判斷哪個(gè)是對(duì)象與子對(duì)象,哪個(gè)是屬性,如前面的Slides(3)、TimeLine、MainSequence、Item(1),這四個(gè)是對(duì)象,只有最后一個(gè)EffectType才是屬性;第三,將寫成一個(gè)字符串的”對(duì)象.子對(duì)象.….子象.屬性”,要求出它的值,應(yīng)先將它轉(zhuǎn)化為一個(gè)數(shù)組,再利用VB中的CallByName函數(shù)不斷遞進(jìn),最終求出它的值。其實(shí)現(xiàn)代碼如圖6:
6)為方便教師錄入成績(jī),最后將學(xué)生考試的成績(jī)導(dǎo)出為Excel格式文件。其實(shí)現(xiàn)代碼如下:
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
For i = 0 ToScorceGrid.Rows - 1
For j = 0 ToScorceGrid.Cols - 1
xlSheet.Cells(i + 1, j + 1) = ScorceGrid.TextMatrix(i, j)
Next
Next
fPath = txtExamFolder.Text&"\成績(jī)"& Format(Now(), "yyyymmddhhmm") &".xlsx"
xlBook.SaveAsfPath
MsgBox "成績(jī)保存成功!請(qǐng)查看:"&fPath
其中xlApp是Excel程序?qū)ο?,xlBook是EXCEL工件簿對(duì)象,xlSheet是Excel工作表對(duì)象,通過(guò)一個(gè)雙重循環(huán)將成績(jī)表的數(shù)據(jù)逐一寫入到Excel數(shù)據(jù)表中,最好將它保存到考生文件夾中。為了更好的識(shí)別且保存成績(jī)時(shí)不覆蓋以前保存的成績(jī),在成績(jī)表文件名中加入時(shí)間信息。
7 結(jié)束語(yǔ)
Office中的操作點(diǎn)很多,其對(duì)應(yīng)的屬性也是非常的繁雜,要編程解決所有的屬性操作,這是不太現(xiàn)實(shí)的。在實(shí)際操作中,教學(xué)組可以根據(jù)教學(xué)的需要,選擇一些常見(jiàn)的、要求學(xué)生必須掌握的操作點(diǎn),然后將這些操作要點(diǎn)輸入考點(diǎn)題庫(kù)建立一個(gè)數(shù)據(jù)表。當(dāng)然隨著教學(xué)要求的變化,如需要對(duì)學(xué)生的某個(gè)操作進(jìn)行測(cè)試,只要在考點(diǎn)數(shù)據(jù)表添加即加,程序本身不需要做什么變動(dòng)或做很少的變動(dòng),這樣保證了閱卷系統(tǒng)的開(kāi)放性。
參考文獻(xiàn):
[1] 陳軍民.Office操作題開(kāi)放式出卷與閱卷系統(tǒng)的研究與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2015(6).
[2] 陳軍民.基于VB6.0將PowerPoint演示文稿轉(zhuǎn)換為Word文檔[J].電腦知識(shí)與技術(shù), 2011(15).
[3] 羅呈姣.開(kāi)放式結(jié)構(gòu)操作類自動(dòng)閱卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海: 華東師范大學(xué), 2007.
[4] 符鈺. Office操作題開(kāi)放式自動(dòng)閱卷的探索與實(shí)踐[J].常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(8).