- 相關(guān)推薦
基于試題庫的試卷管理和自動排版系統(tǒng)的設(shè)計和實現(xiàn)
基于試題庫的試卷管理和自動排版系統(tǒng)的設(shè)計和實現(xiàn)河南省駐馬店市新蔡縣教研室 楊 楊
【摘 要】在當(dāng)前的校本建設(shè)和教學(xué)教研中,考試管理一直都是一項壓力巨大的工作。每學(xué)期各種考試,從組織出卷到試卷的印制及試卷的管理等工作都非常繁瑣,這種組織管理方式不僅工作任務(wù)繁重而且試卷的標(biāo)準(zhǔn)化程度、難易程度、題量大小等各方面難以控制,難以形成有效的資源積累,給試題和試卷的管理帶來很多問題和困難。鑒于這種情況,利用計算機進(jìn)行試卷的自動生成并逐步積累形成有效的試題庫,對試題和試卷的管理將變的高效而便捷,對提高工作效率,使試卷管理逐步走向正規(guī)化自動化將起到十分重要的作用。
【關(guān)鍵詞】試題庫;自動排版;引擎
一、實現(xiàn)目標(biāo)
盡力適配各學(xué)科各階段的各種題型,極力減少限制。
廣大普通教師在不經(jīng)過或只經(jīng)過極少量培訓(xùn)的情況,能夠便捷的往系統(tǒng)數(shù)據(jù)庫里錄入試題。
能夠依據(jù)較高顆粒度的設(shè)置自動生成規(guī)范的、直接可用的試卷和對應(yīng)答案,甚至可以導(dǎo)出試題答題分離卷,自動產(chǎn)生機讀卡等。
二、技術(shù)難點說明
目前此系統(tǒng)難以實現(xiàn)的主要原因是沒有一個針對試卷的排版引擎,商業(yè)的排版軟件或者不夠開放,或者限制太多無法適用。因為在試卷排版中要不斷的檢查各個塊區(qū)所占的空間,微調(diào)各個間隔以使試題適應(yīng)整個頁面,而現(xiàn)有的排版引擎基本無法做到。經(jīng)過分析總結(jié),盡管難度極大,我認(rèn)為自己重寫一個專門針對試卷的排版引擎對此系統(tǒng)來說是必要的。
另一個難點是數(shù)學(xué)公式的處理,情況和排版引擎類似,商業(yè)公式軟件限制太多,無法取用;js版的公式編輯器瀏覽器要求太高、不夠美觀、限制較多;開放的Tex系統(tǒng)太龐大繁雜,因為公式編輯直接面向廣大普通教師,Tex的部署和學(xué)習(xí)成本都沒有可行性,所以也得自己寫一個公式系統(tǒng)。
三、系統(tǒng)分塊
1.整體設(shè)計和數(shù)據(jù)模型
管理單位給有資格錄入試題的人員提供賬戶→設(shè)置賬戶的權(quán)限(學(xué)科、學(xué)段等)→錄入人員進(jìn)入系統(tǒng)錄入試題(等待審核)→管理單位專設(shè)審核人員對新錄入未審核的試題進(jìn)行審核(審核通過)→試題正式入庫。
此系統(tǒng)的數(shù)據(jù)模型較簡單:
人員:用戶名、密碼、權(quán)限類型(錄入人員或?qū)徍巳藛T)、學(xué)科、學(xué)段。
試題:人員(連接到人員)、教材版本、年級、學(xué)期、學(xué)期階段(一般分為4個月)、難度等級、學(xué)科、題干、圖片路徑。
試題模式:試題(連接到試題)、題型、答案試題和試題模式為一對多的關(guān)系,這樣的設(shè)計可以提供單一題干有多種題型的功能,而且避免了一張試卷內(nèi)抽到了不同題型的同一問題的可能性。
2.試題錄入模塊
考慮到廣大普通教師的計算機水平,能做到無部署直接使用是最好的效果,所以技術(shù)平臺選擇html+js.
錄入人員打開瀏覽器進(jìn)入系統(tǒng)后可以看到自己的試題以及審核狀態(tài),還可以刪除或編輯試題等。
新建試題時,需要選擇教材版本、選擇年級、選擇學(xué)期、選擇學(xué)期階段、選擇難度等級,選擇題型,在題干里輸入試題,圖片上傳是可選的。
這里的設(shè)計為:題干區(qū)域輸入的信息里包含各種題型的特殊的替換符(公式表達(dá)式也為替換符),在編輯停止3秒后,頁面會在下面提供和題型對應(yīng)的正式的試題預(yù)覽,保存后,這個試題就有了題干和一個默認(rèn)的試題模式。
3.試題審核模塊
此模塊技術(shù)難度較低,依然是選擇html+js.
審核人員可以在這里進(jìn)行對應(yīng)學(xué)科的試題審核,決定試題是否進(jìn)入試題庫,也可以修改試題的難度等級。
4.試卷生成程序
此模塊功能集中復(fù)雜,要求較高,所以選擇。net平臺,使用wpf技術(shù)實現(xiàn)。
進(jìn)入此程序,選擇新建一張試卷,選擇年級、學(xué)科、版本、學(xué)期、學(xué)期階段,難度系數(shù),單面\雙面,填寫考試名稱,總分,點擊下一步。
下面可以詳細(xì)設(shè)定各種題型所占比例,分?jǐn)?shù),點擊下一步。
程序開始根據(jù)設(shè)置從試題庫中隨機抽取符合條件的試題,調(diào)用排版引擎進(jìn)行排版,最后輸出試卷。
四、排版引擎和公式系統(tǒng)的實現(xiàn)
1.排版引擎
此排版引擎的核心工作在于測算各級模塊所占的空間,估算撐滿考卷需要的調(diào)整。
以下間隔都有默認(rèn)值和最小值,最小值是在不影響版面美觀的前提下可以調(diào)整的極限。
字符級:字符,字符右有間隔;
行級:包含字符級,行下有間隔;行首有標(biāo)點符號會進(jìn)行特殊處理;
段級:包含行級,段下有間隔;如果最后一個行只多出2個字符,上面還有足夠的完整行,則緊縮上面行的字符級間隔,把這2個字符提上去,省下一行。
塊級:包含段級,圖片等,一個塊裝下一道試題,不包含試題留白,塊無間隔;塊級需要做很多特殊的處理,比如說檢測本道題圖片較小,塊級處理就會把段級寬度縮小,讓圖片和文字并列擺放;如果題目較短又需要留白(如計算題),就把多個塊級橫著并排擺放,等。
引擎接收到試題數(shù)據(jù)開始按默認(rèn)間隔開始排版:
。1)單頁設(shè)置
如果是語文或英語學(xué)科,直接把剩下空白繪制作文紙,然后再加一頁作文紙。
如果是其他學(xué)科,最后一頁內(nèi)容少于半頁,則逐級緊縮間隔:
*先計算段級間隔和行級間隔之和,除最后半頁的高度,獲得一個比例值,段級和行級按這個比例值進(jìn)行緊縮,如果段級或行級的間隔值小于了自身的最小值,則認(rèn)定不可緊縮處理,直接放大段級間隔撐滿最后一頁。
如果最后一頁內(nèi)容多于半頁,直接做撐滿處理。
。2)雙頁
如果是語文或英語學(xué)科,結(jié)果是奇數(shù)頁的,按*做緊縮處理,盡量多繪制一部分作文紙,后面再添加一張作文紙,湊夠偶數(shù)頁。
如果是其他學(xué)科,結(jié)果是奇數(shù)頁的,按*做緊縮處理,如果緊縮處理失敗,再把段級和行級間隔直接縮到最小值,計算出差,再犧牲一部分問答題或計算題等大留白的試題的留白,把最后一頁擠到前面頁;偶數(shù)頁的則接放大段級間隔撐滿最后一頁。
2.公式編輯器
公式編輯器的難點在于表達(dá)式分析和公式圖形的繪制,對這兩點我采取的是使用Tex的語法和樣式標(biāo)準(zhǔn)。但Tex的語法復(fù)雜,不易學(xué)習(xí),分析器也不易實現(xiàn),目前我只用正則表達(dá)式實現(xiàn)了初中階段內(nèi)簡單公式的表達(dá)式分析,效率很低。我正在考慮重新設(shè)計一種較簡單、易于學(xué)習(xí)的表達(dá)式語法,以方便實現(xiàn)和廣大教師學(xué)習(xí)使用。
五、小結(jié)
雖然目前系統(tǒng)還在試做階段,但在實現(xiàn)過程中已經(jīng)獲取了足夠的經(jīng)驗和心得,幾大技術(shù)難點已獲得了突破,架構(gòu)上也已基本穩(wěn)定,以后只需逐步完善功能、排錯、提高通用性和擴展性。相信此系統(tǒng)完善之時,必定能為各個教育機構(gòu)的校本建設(shè)和教學(xué)教研提供很多便宜。
【參考文獻(xiàn)】
[1]C#、WinForm、WPF、。net (http://www.gymyzhishaji.com)
[2]html/css、JavaScript、jQuery
[3]Tex
【基于試題庫的試卷管理和自動排版系統(tǒng)的設(shè)計和實現(xiàn)】相關(guān)文章:
基于Client/Server 的課件系統(tǒng)的設(shè)計與實現(xiàn)04-12
基于Verilog HDL設(shè)計的自動數(shù)據(jù)采集系統(tǒng)04-12
基于MSP430和nRF40l的 無線自動抄表系統(tǒng)04-12
基于MATLAB 的自動控制原理實驗仿真系統(tǒng)的設(shè)計04-10
對自動化的認(rèn)識和心得范文11-05
《樹和喜鵲》教學(xué)設(shè)計06-06