摘 要: 通過分析現(xiàn)有無紙化考試系統(tǒng)的特點,采用遺傳算法,設(shè)計了一套計算機應用基礎(chǔ)考試系統(tǒng)。實現(xiàn)了自動組卷、評分、成績回收等功能。將該系統(tǒng)應用于實際考試中,有效減少監(jiān)考老師的工作強度。實踐表明系統(tǒng)整體穩(wěn)定、高效,具有較高的應用價值。
關(guān)鍵詞: 遺傳算法;考試系統(tǒng);自動評分
1 研究現(xiàn)狀
從工業(yè)化向信息化邁進過程中,IT技能成為當今人們能力素質(zhì)的標志之一。計算機基礎(chǔ)普及教育的宣傳持續(xù)升溫,相關(guān)應用能力的考核形式多種多樣。從實際情況看,高校計算機基礎(chǔ)考試形式基本實現(xiàn)了無紙化[1]上機操作。但現(xiàn)行的無紙化考試系統(tǒng)暴露出一些缺陷,如:(1)雖然采用無紙化考試,但有些仍需人工方式閱卷評分;(2)有些考試系統(tǒng)雖能實現(xiàn)自動評分,但仍存在如下問題:首先,系統(tǒng)試題庫不能動態(tài)更新;其次,評分結(jié)果不能自動回收;再次,考試過程中出現(xiàn)的異常情況不能做到自動處理?,F(xiàn)有的無紙化計算機基礎(chǔ)考試系統(tǒng)存在的上述問題,背離了無紙化考試的初衷。
2 計算機基礎(chǔ)考試系統(tǒng)的框架
系統(tǒng)包括三部分:服務(wù)器端、教師客戶端和學生客戶端。
服務(wù)器端包括:(1)教師信息管理模塊,包括對教師信息的增加、修改、刪除和查詢操作;(2)回收考試成績模塊,負責從學生客戶端回收自動評分的成績;(3)數(shù)據(jù)備份模塊,完成數(shù)據(jù)庫數(shù)據(jù)的備份與恢復功能。
教師客戶端包括:(1)考試信息管理模塊,包括設(shè)置考試班級、考試日期及時長、試卷組成及分值的分配等信息;(2)學生信息管理模塊,包括對學生基本信息的增加、修改、刪除和查詢操作;(3)試題維護模塊,包括對試題的增加、修改、刪除和查詢操作;(4)考試狀態(tài)管理,包括對學生未參加考試、正在考試和已經(jīng)交卷三種狀態(tài)的管理,通過此模塊教師可以實時監(jiān)控考生的考試狀態(tài)。
學生客戶端包括:(1)試題下載模塊。當學生成功登錄考試系統(tǒng),該模塊將相應的考試題下載到學生機;(2)自動評分模塊。當學生單擊“交卷”按鈕或當考試時間倒計時為零時,系統(tǒng)調(diào)用自動評分模塊對考生所做試題進行閱卷,并將最終評分結(jié)果發(fā)送到服務(wù)器端。
系統(tǒng)結(jié)構(gòu)圖如圖1所示。
3 關(guān)鍵技術(shù)
3.1 Office自動閱卷
Microsoft office是微軟公司推出的辦公應用程序,目前被廣泛使用的版本是Microsoft office 2003和Microsoft office 2007。作為微軟公司推出的重量級開發(fā)語言,C#中提供了對大部分Office文件和應用的支持。下面以word 2003和excel 2003中對字體的設(shè)置為例介紹如何實現(xiàn)操作題的自動閱卷[2]功能。
實例1:設(shè)置word文檔a.doc中第1段文字的字體為宋體。
分析:從題目中提取有效信息。文檔:a.doc;段落:1;字體:宋體。
首先,從考生目錄中打開a.doc,方法如下:
public static Microsoft.Office.Interop.Word.Application
start(string path)
{
wapp=new Microsoft.Office.Interop.Word.Application();
wapp.Visible=false;
object filename=path;
object isread=true;
object isvisible=true;
object miss=System.Reflection.Missing.Value;
doc=wapp.Documents.Open(ref filename,ref miss,ref isread,ref miss,ref miss,ref miss,ref miss,ref miss,ref miss,ref miss,ref miss,ref isvisible,ref miss,ref miss, ref miss,ref miss);
return wapp;
}
其次,將考生設(shè)置的第1段的字體與“宋體”進行比較,成功給分,否則不給分。方法如下:
public static bool paragraphsValidataNameFarEast(int
paragraphs,string script)
{
try
{
if (Doc.Paragraphs.Item(paragraphs).Range.Font.
NameFarEast==script)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
實例2:設(shè)置excel工作簿b.xls中Sheet1工作表G3單元格的字體為楷體。
分析:從題目中提取有效信息:文檔:b.xls;工作表:Sheet1;單元格:G3;字體:楷體。
首先,從考生目錄中打開b.xls文檔,方法如下:
public static Microsoft.Office.Interop.Excel.Application
start(string path)
{
try
{
xlApp=new Microsoft.Office.Interop.Excel.Application();
xlApp.Visible=false;
object filename=path;
object isread=true;
object isvisible=true;
object Nothing=System.Reflection.Missing.Value;
xlWorkBook=xlApp.Workbooks.Open(path,Nothing, Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing, Nothing,Nothing);
return xlApp;
}
catch
{
eturn null;
}
}
其次,將考生設(shè)置的Sheet1工作表中G3單元格的字體與“楷體”進行比較,成功給分,否則不給分。方法如下:
public static bool judgeFontType(string fontType,int
rows,int column,string require)
{
try
{
bool result=false;
Microsoft.Office.Interop.Excel.Sheets sheets=xlApp.Worksheets;
xlWorkSheet=(Worksheet)xlApp.Worksheets[require];
Range rg=(Range)xlWorkSheet.Cells[rows,column];
if(rg.Font.Name.ToString()==fontType)
{
result=true;
}
else
{
result=false;
}
return result;
}
catch
{
return false;
}
}
3.2 試題模板庫隨機組卷
系統(tǒng)包含多套試題,每套試題包括Windows、Word和Excel 3個模塊的題目。生成試卷時可以按照成套試題進行選擇,這種方法優(yōu)點是抽取速度快,缺點是不能控制試題選取,不夠靈活。
為了靈活控制試題的選取也可以將試題打亂順序重新組卷。本系統(tǒng)的試題庫采用基于遺傳算法[3]的隨機組卷[4]方式。遺傳算法是一種模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,通過模擬自然進化過程搜索最優(yōu)解。其實現(xiàn)思路如下:從可能存在問題解集的一個種群開始,初始化種群后,按照優(yōu)勝劣汰和適者生存的原理,逐代進化產(chǎn)生出越來越好的近似解。在每一代,根據(jù)問題域中個體的適應度大小選擇個體,并借助自然遺傳學的遺傳算子進行組合交叉和變異,產(chǎn)生出代表新的解集的種群。這個過程將產(chǎn)生更加適應于環(huán)境的后生代種群,末代種群中的最優(yōu)個體經(jīng)過解碼,作為問題近似最優(yōu)解。
基于遺傳算法的組卷流程圖如圖2所示。
基于遺傳算法的試題組卷步驟如下:
?。?)隨機從試題庫中抽出一組試題,進行試題編碼;
?。?)生成初始群體;
?。?)判斷是否滿足終止條件,如果滿足則生成試卷并結(jié)束程序,否則轉(zhuǎn)(4);
(4)采用輪盤選擇原理實現(xiàn),并將個體復制到配對庫,以備配對繁殖;
(5)按照一定的交換概率對配對庫中的個體進行隨機交叉配對形成新個體;
(6)按照一定的變異概率對個體進行基因突變,產(chǎn)生新的個體;
?。?)完成以上選擇、交叉和變異步驟后,將配對庫中新產(chǎn)生的個體和原有的群體放在一起組合成新種群,轉(zhuǎn)(3)。
在遺傳算法的實現(xiàn)過程中,編碼方法、適應度函數(shù)、遺傳算子、初始群體、群體大小和停止標準等都是影響算法效率的非常關(guān)鍵的因素。
4 系統(tǒng)實現(xiàn)
4.1 類依賴關(guān)系圖
按照軟件復用原則和UML的設(shè)計思想,盡量使系統(tǒng)具有通用性和獨立性,降低類之間的耦合度和依賴性。采用面向?qū)ο蟮募夹g(shù)實現(xiàn)本系統(tǒng),將各種問題細化為多個類,把系統(tǒng)設(shè)計原型分解為一系列類的對象。學生客戶端類之間的依賴關(guān)系如圖3所示。
4.2 場景實現(xiàn)
考試系統(tǒng)設(shè)計了計算機基礎(chǔ)中3個常用模塊的基本操作,每個模塊的試題包含了該模塊的主要操作知識點。生成試卷的方式有兩種。一是按班級生成試卷,即考試時同一個班生成同一套試卷;二是按照考生學號生成試卷,即學號為單號的考生生成一套試卷,學號為雙號的考生生成另一套試卷。這保證相鄰考生所做的試題不同,有效防止考生在考試過程中相互商量抄襲。
教師可以對試題進行修改。生成試卷的同時會在桌面上自動創(chuàng)建考試文件夾,考試過程中系統(tǒng)自動將操作結(jié)果保存在該文件夾。這樣既方便考生操作,又可有效避免因保存位置的錯誤導致零分的出現(xiàn)。
另外考試過程中,考生客戶端顯示考試剩余時間,考生可以靈活把握自己的時間。當時間倒計時為零時,系統(tǒng)提示考生時間到,考生不能繼續(xù)答題。此時,系統(tǒng)自動將考生的操作結(jié)果進行保存并進行后續(xù)的自動評分。
本文對現(xiàn)有無紙化考試系統(tǒng)中存在的缺陷進行了分析,結(jié)合我校計算機基礎(chǔ)課程的教學現(xiàn)狀,設(shè)計了一套相對有效的計算機應用基礎(chǔ)考試系統(tǒng)。經(jīng)過我校計算機基礎(chǔ)期末考試的實際應用,表明系統(tǒng)具有應用簡單、實用性強等特點,能夠節(jié)省大量時間和工作量。
參考文獻
[1] 郭新順,劉雪芬.無紙化考試系統(tǒng)研制[J].計算機應用與軟件,2005,22(8):131-133.
[2] 周艷麗.基于改進遺傳算法的自動組卷問題的研究[J].計算機仿真,2010(9):319-322.
[3] 孟朝霞.基于自適應免疫遺傳算法的智能組卷[J].計算機工程,2008,34(14):203-205.
[4] 朱劍冰,李戰(zhàn)懷,趙娜.基于混合遺傳算法的自動組卷問題的研究[J].計算機仿真,2009,26(5):328-331.