摘要:目前教育形式日益多樣性,考試的種類(lèi)和規(guī)模也逐漸擴(kuò)大,對(duì)試卷的命題和管理工作需要進(jìn)一步完善和發(fā)展。該文以某考試院為對(duì)象,針對(duì)其在管理高等教育自學(xué)考試的試卷中存在的實(shí)際情況,開(kāi)發(fā)了一種基于Client/Server結(jié)構(gòu)的試卷管理系統(tǒng)。文章闡述了在VC++6.0平臺(tái)上結(jié)合數(shù)據(jù)庫(kù)實(shí)現(xiàn)系統(tǒng)所需要的主要技術(shù)和算法,并且從系統(tǒng)的框架結(jié)構(gòu)、模塊設(shè)計(jì)等方面給出了軟件設(shè)計(jì)思路和方法。
關(guān)鍵詞:試卷管理系統(tǒng);VC++6.0;C/S;數(shù)據(jù)庫(kù)
中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)04-1022-03
Analysis and Design of The Test Paper Management System Based on C/S Structure
SHEN Shun-cheng, SANG Qing-yu
(School of Mechanical and Electronical Engineering,Wuhan University of Technology,Wuhan 430070,China)
Abstract: Currently, various forms of education have arisen, the examination’s scale is getting larger and larger, so the management of papers needs to further improve and develop. This article deals with the study of a certain examination administration, develops a paper management system based on Client/Server focuses on real problems in the management of the papers of The Self-Study Examination. The article elaborated the main technology and algorithms to realize the system on the VC++6.0 platform integrated with database, and gives the design and methods of software from the system framework and the module design.
Key words: the test paper management system;VC++6.0;C/S;database
1 引言
考試作為教學(xué)的一個(gè)必不可少的重要環(huán)節(jié),是衡量教學(xué)質(zhì)量的重要指標(biāo),同時(shí)考試也是保證客觀(guān)、準(zhǔn)確、及時(shí)地選拔人才的重要手段。目前教育形式日益多樣性,考試種類(lèi)越來(lái)越多,規(guī)模也越來(lái)越大,相關(guān)的命題及試卷管理工作如果仍用傳統(tǒng)的人工來(lái)完成的話(huà),效率不高而且還不一定能滿(mǎn)足要求。以某考試院為例,在高等教育自學(xué)考試的命題及試卷管理工作中主要存在以下幾個(gè)方面的問(wèn)題:1)試卷流程管理問(wèn)題。對(duì)于每個(gè)專(zhuān)業(yè)的每門(mén)課程,相關(guān)工作人員從職能上可以分為課程負(fù)責(zé)人、命題人、試卷校閱人等。當(dāng)有考試任務(wù)需要命題時(shí),課程負(fù)責(zé)人發(fā)布命題任務(wù)給命題人,以及命題人提交試卷給校閱人等之間的工作全部通過(guò)人工完成,尤其是當(dāng)試卷需要多次修改時(shí),試卷轉(zhuǎn)接工作更加頻繁,容易出差錯(cuò),效率不高,也不利于試卷的保密性要求;2)試卷及其相關(guān)信息的存儲(chǔ)、查閱問(wèn)題。在試卷的命題及校閱過(guò)程中,試卷多用光盤(pán)存儲(chǔ),而很多相關(guān)信息,例如課程的命題細(xì)目表、命題人、校閱人及校閱時(shí)間、校閱意見(jiàn)、試卷修改記錄以及一些備注的信息等,多是用書(shū)面方式記錄,即使集中管理,但由于數(shù)量太大,不利于保存和日后的跟蹤查詢(xún);3)試卷版本問(wèn)題。同一課程的某一份試卷,由于不同考試的需要,可能需要兩個(gè)或多個(gè)版本,不同版本之間僅有部分試題不同,區(qū)別很小,人工管理就容易出差錯(cuò)??偟膩?lái)說(shuō),就是缺少一個(gè)能使相關(guān)工作人員各司其責(zé)高效辦公的平臺(tái)。
基于實(shí)際的使用環(huán)境和試卷特殊的保密性要求,本文提出在VC++6.0平臺(tái)下,結(jié)合SQL Server 2000數(shù)據(jù)庫(kù)開(kāi)發(fā)出一套試卷管理系統(tǒng),將試卷及其相關(guān)信息集中的存儲(chǔ)到系統(tǒng)里,同時(shí)也將不同的用戶(hù)按角色分成課程負(fù)責(zé)人、出題人,校閱人,使用人等,每個(gè)用戶(hù)按照自己的權(quán)限完成對(duì)試卷的管理工作。這樣既可以減少失誤,也將試卷管理者從簡(jiǎn)單、重復(fù)的環(huán)節(jié)中解脫出來(lái),提高效率。
2 基于C/S結(jié)構(gòu)的系統(tǒng)結(jié)構(gòu)模型
傳統(tǒng)C/S(客戶(hù)機(jī)/服務(wù)器)結(jié)構(gòu)一般分為兩層:客戶(hù)端和服務(wù)器端。但隨著應(yīng)用系統(tǒng)的不斷擴(kuò)大,兩層C/S結(jié)構(gòu)表現(xiàn)出效率低下、維護(hù)困難、安全性差和伸縮性差等缺點(diǎn)。本系統(tǒng)從試卷的特點(diǎn)及用戶(hù)的角度出發(fā),采用三層的C/S結(jié)構(gòu),系統(tǒng)以分布式數(shù)據(jù)庫(kù)技術(shù)為支撐,在兩層結(jié)構(gòu)的基礎(chǔ)上增加一個(gè)中間層,可以減輕客戶(hù)端的負(fù)擔(dān),并改善兩層C/S結(jié)構(gòu)的性能,而且功能集中在中間層,當(dāng)功能需求變化時(shí),僅需修改應(yīng)用服務(wù)器,從而提高了可維護(hù)性,也增強(qiáng)了數(shù)據(jù)的一致性。系統(tǒng)在Visual C++ 6.0平臺(tái)上開(kāi)發(fā),采用ODBC接口訪(fǎng)問(wèn)SQL Server 2000數(shù)據(jù)庫(kù)。如圖1所示為系統(tǒng)的體系結(jié)構(gòu)圖。
3 基于角色-對(duì)象的訪(fǎng)問(wèn)控制模型
對(duì)于一個(gè)多用戶(hù)的試卷管理系統(tǒng)來(lái)說(shuō),采用的訪(fǎng)問(wèn)控制模型至關(guān)重要。鑒于試卷特殊的保密性,以及各課程工作人之間的不相關(guān)性,本系統(tǒng)采用基于角色-對(duì)象的訪(fǎng)問(wèn)控制模型。
3.1基于角色的訪(fǎng)問(wèn)控制模型
基于角色的訪(fǎng)問(wèn)控制模型(RBAC Mobel,Rolebaced Access Mobel)是一種在數(shù)據(jù)管理系統(tǒng)中常用的訪(fǎng)問(wèn)控制模型,其基本思想是將訪(fǎng)問(wèn)許可權(quán)分配給一定的角色,用戶(hù)通過(guò)飾演不同的角色獲得角色所擁有的訪(fǎng)問(wèn)許可權(quán)。角色可以看作是一組操作的集合,不同的角色具有不同的操作集,這些操作集由系統(tǒng)的管理員分配給角色。用戶(hù)在一定的部門(mén)中具有一定的角色,其所執(zhí)行的操作與其所扮演的角色的職能相匹配。
3.2 基于角色-對(duì)象的訪(fǎng)問(wèn)控制模型
在本系統(tǒng)中運(yùn)用基于角色-對(duì)象的訪(fǎng)問(wèn)控制模型,在基于角色的訪(fǎng)問(wèn)控制模型基礎(chǔ)上,將訪(fǎng)問(wèn)控制權(quán)限設(shè)置與對(duì)象相關(guān)聯(lián),在給用戶(hù)定義角色的同時(shí)必須定義訪(fǎng)問(wèn)對(duì)象。在這一模型中,角色僅僅是一組操作的集合,并不與對(duì)象直接關(guān)聯(lián),通過(guò)用戶(hù)、角色、對(duì)象3項(xiàng)屬性來(lái)唯一標(biāo)識(shí)1項(xiàng)訪(fǎng)問(wèn)控制權(quán)限。系統(tǒng)中的角色包括:命題人、校閱人、使用人、課程負(fù)責(zé)人等。每種角色都對(duì)應(yīng)一組操作的集合,例如命題人對(duì)應(yīng)的操作包括讀數(shù)據(jù)對(duì)象、寫(xiě)數(shù)據(jù)對(duì)象、提交等,即讀取命題任務(wù)信息,編制命題細(xì)目表,在系統(tǒng)里已經(jīng)存在的試卷模板里編制試題,命題完成后提交等。當(dāng)用戶(hù)被定義為某種角色,即擁有了執(zhí)行該角色對(duì)應(yīng)的操作的權(quán)限。但定義角色僅僅只是設(shè)置了允許用戶(hù)執(zhí)行的操作,還必須同時(shí)定義操作的對(duì)象,這樣才能完成訪(fǎng)問(wèn)控制的設(shè)置。其示例圖如圖2所示。
4 系統(tǒng)的模塊設(shè)計(jì)
從試卷管理的實(shí)際需求出發(fā),對(duì)系統(tǒng)的設(shè)計(jì)進(jìn)行模塊劃分。首先,系統(tǒng)要求能批量導(dǎo)入試卷信息,簡(jiǎn)化數(shù)量龐大的試卷錄入工作,提高工作效率;其次需限定用戶(hù)的權(quán)限、用戶(hù)登陸、用戶(hù)管理等功能;然后需實(shí)現(xiàn)試卷從命題到使用的流程管理功能、試卷狀態(tài)跟蹤查詢(xún)功能、試卷及其相關(guān)信息查詢(xún)功能、操作歷史跟蹤記錄和查詢(xún)功能、科目信息添加修改刪除等維護(hù)功能、工作人員添加修改維護(hù)功能等。另外,從用戶(hù)的角度出發(fā),盡量使操作簡(jiǎn)單、界面友好??傮w功能劃分如圖3所示。
5 系統(tǒng)主要模塊的詳細(xì)設(shè)計(jì)
5.1 登陸驗(yàn)證模塊及用戶(hù)權(quán)限判定的規(guī)則
該模塊負(fù)責(zé)判斷用戶(hù)的合法登陸權(quán)限并區(qū)分不同的用戶(hù)來(lái)實(shí)現(xiàn)其相應(yīng)的權(quán)限管理。在系統(tǒng)里將對(duì)象劃分為三層,全系統(tǒng)、專(zhuān)業(yè)和課程。當(dāng)用戶(hù)進(jìn)行某項(xiàng)操作的時(shí)候,判斷操作是否通過(guò)的程序?yàn)椋寒?dāng)用戶(hù)提出對(duì)某對(duì)象進(jìn)行某項(xiàng)操作時(shí),先判斷該對(duì)象的最小范圍,既課程。如果用戶(hù)可以在該課程子目錄下進(jìn)行該項(xiàng)操作則操作通過(guò),不再做其它判斷;否則判斷專(zhuān)業(yè)內(nèi)的操作,若操作通過(guò),則不再做其它判斷;否則在全系統(tǒng)范圍內(nèi)進(jìn)行判斷。如果該操作仍不能通過(guò),則該操作被拒絕。主要的實(shí)現(xiàn)過(guò)程為:在SQL Server2000數(shù)據(jù)庫(kù)中建立User和UserRole2張表,分別用來(lái)保存用戶(hù)設(shè)置和權(quán)限設(shè)置的數(shù)據(jù)。User表包含UserID、UserName、PassWord3個(gè)字段,其中UserID為主鍵,唯一標(biāo)識(shí)一個(gè)用戶(hù),UserName為用戶(hù)名,PassWord為經(jīng)過(guò)加密的密碼。UserRole表包含UserRoleID、UserID、ObjectID和Role4個(gè)字段,其中UserRoleID為主鍵,唯一標(biāo)識(shí)一項(xiàng)權(quán)限設(shè)置,UserID即User表中的UserID,ObjectID為系統(tǒng)中試卷數(shù)據(jù)對(duì)象的ID,每個(gè)數(shù)據(jù)對(duì)象都用一個(gè)ObjectID唯一標(biāo)識(shí), Role用于標(biāo)識(shí)角色,為了方便使用,在系統(tǒng)中將角色映射為整數(shù),用不同整數(shù)代表不同操作。這樣就將用戶(hù)、角色、操作相關(guān)聯(lián)。然后對(duì)應(yīng)這2張表創(chuàng)建User和UserRole2個(gè)類(lèi),用于完成其功能操作。再設(shè)計(jì)CUserManager和CUserRoleManager2個(gè)類(lèi)分別用于用戶(hù)管理和權(quán)限管理,這2個(gè)類(lèi)都繼承MFC中的CObList類(lèi),類(lèi)中包含1個(gè)用來(lái)存放對(duì)象指針的雙向鏈表。這4個(gè)類(lèi)的UML類(lèi)圖如圖4所示。
5.2 試卷的流程管理模塊
鑒于目前試卷管理部門(mén)的現(xiàn)狀,系統(tǒng)管理的對(duì)象包括試卷及其所有的相關(guān)信息,其格式有文本文檔、數(shù)據(jù)文檔、方正格式文件、圖紙文檔等,系統(tǒng)的流程管理就是對(duì)這些文檔進(jìn)行一系列的操作。由此出發(fā)設(shè)置如圖5的工作流程。每門(mén)試卷均有編輯、待校、待用、已用四種版本狀態(tài)。
以校閱事件為例,校閱人對(duì)版本為待校狀態(tài)的當(dāng)前試卷版本進(jìn)行校閱流程。此時(shí),校閱人可以點(diǎn)擊“同意”表示此次校閱未發(fā)現(xiàn)任何問(wèn)題,試卷進(jìn)入待用版本狀態(tài),等待什么時(shí)候考試時(shí)安排使用;也可以點(diǎn)擊“再修改”,則試卷退回到命題狀態(tài),要求命題者對(duì)試卷修改;如果修改量較大,可以點(diǎn)擊“新版本”以保存原試卷而創(chuàng)建一個(gè)版本為編輯狀態(tài)的新版本試卷要求命題人修改。在校閱過(guò)程中校閱人可以寫(xiě)上自己的意見(jiàn),以備查閱。修改和校閱可以多次反復(fù)進(jìn)行,系統(tǒng)對(duì)每次修改和校閱的信息記錄在案。其工作對(duì)話(huà)框如圖6所示。
在流程操作中,實(shí)際就是對(duì)試卷歷史記錄內(nèi)容的讀寫(xiě),其中主要的兩個(gè)相關(guān)類(lèi)如下:
1) Paper類(lèi)。記錄了試卷及其相關(guān)信息的一般屬性,包括試卷名稱(chēng)、試卷文檔流程、權(quán)限和狀態(tài)等消息。
2) PaperHistory類(lèi)。記錄所有試卷流程歷史信息,包括操作人、時(shí)間、備注信息、試卷狀態(tài)等。其詳細(xì)數(shù)據(jù)表及程序設(shè)計(jì)限于篇幅不再詳述。
5.3 系統(tǒng)的主體功能
界面如圖7所示,其中左視圖為用戶(hù)個(gè)人工作區(qū)和試卷資料樹(shù),右視圖為試卷的相關(guān)信息,與試卷資料綁定顯示,清晰明了。
6 結(jié)論
本文從實(shí)際出發(fā),分析了當(dāng)前試卷流程管理中的問(wèn)題,并在VC++6.0平臺(tái)上成功實(shí)現(xiàn),目前已在某考試院試用。使用本系統(tǒng)可以提高效率和試卷管理水平,最大限度地減少出錯(cuò)機(jī)會(huì);并且規(guī)范了試卷管理工作流程,有助于試卷的質(zhì)量管理;與試卷有關(guān)的全面信息都可通過(guò)系統(tǒng)得到,管理者可方便地加強(qiáng)對(duì)命題流程及試卷維護(hù)的管理;也保證了數(shù)據(jù)的安全性、完整性、權(quán)威性和可靠性。
此外,系統(tǒng)還不是很完善,在試卷的項(xiàng)目管理及試卷的自動(dòng)生成等方面,有待于進(jìn)一步研究和開(kāi)發(fā)。
參考文獻(xiàn):
[1] David J,Wingo K S.Visual C++技術(shù)內(nèi)幕6.0[M].北京:北京希望電子出版社.1999.
[2] 袁鵬飛,孫軍安.SQL Server2000數(shù)據(jù)庫(kù)系統(tǒng)管理[M].北京:人民郵電出版社,2001.
[3] 陳堅(jiān).實(shí)用VisualC++編程大全[M].西安:西安電子科技大學(xué)出版社,2002.
[4] 祝雪金.基于C/S的試題管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:同濟(jì)大學(xué)碩士學(xué)位論文,2006.
沈順成(1959-),男,湖北武漢人,武漢理工大學(xué)副教授,碩士研究生導(dǎo)師,主要研究方向:制造業(yè)信息化、智能設(shè)計(jì)與智能制造基礎(chǔ)理論及應(yīng)用,機(jī)電一體化技術(shù)與應(yīng)用。