張育人
(寶雞文理學(xué)院 計(jì)算機(jī)學(xué)院,陜西 寶雞 721016)
基于SSH技術(shù)的在線考試系統(tǒng)設(shè)計(jì)與研究*
張育人
(寶雞文理學(xué)院 計(jì)算機(jī)學(xué)院,陜西 寶雞 721016)
摘要:對(duì)目前高校在線考試系統(tǒng)存在的一些問(wèn)題進(jìn)行了研究與創(chuàng)新,提出了采用B/S三層結(jié)構(gòu)模式和高性能SSH架構(gòu)思想,優(yōu)化和改進(jìn)了設(shè)計(jì)模式和系統(tǒng)功能,詳細(xì)描述了系統(tǒng)的實(shí)現(xiàn)方法和關(guān)鍵技術(shù)。
關(guān)鍵詞:WEB;SSH;考試系統(tǒng)
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,國(guó)內(nèi)外教育機(jī)構(gòu)非常重視教育現(xiàn)代化建設(shè)的研究,作為其重要組成部分的網(wǎng)絡(luò)考試系統(tǒng),由于考試和閱卷更加規(guī)范和合理、教考分離、提高考試效率、強(qiáng)大的統(tǒng)計(jì)分析功能、數(shù)據(jù)的有效保存以及增強(qiáng)了信息的共享等優(yōu)點(diǎn),而得到了人們的高度重視。縱觀現(xiàn)行的各種考試系統(tǒng),存在成本高、重復(fù)勞動(dòng)多和容易出現(xiàn)錯(cuò)判、誤判等情況,考試成績(jī)難于分析和統(tǒng)計(jì),并且試卷質(zhì)量和閱卷質(zhì)量受教師主觀因素的影響難以做到客觀公正等。設(shè)計(jì)一種基于網(wǎng)絡(luò)且能夠滿足高校需求的在線考試系統(tǒng)很有必要。
1考試系統(tǒng)的總體框架
本系統(tǒng)結(jié)合高校教育現(xiàn)代化資源,利用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù),采用企業(yè)開(kāi)發(fā)中最為流行的、開(kāi)源的組合框架SSH和三層結(jié)構(gòu)的B/S模式的MVC框架[1],實(shí)現(xiàn)應(yīng)對(duì)多用戶需求的在線考試系統(tǒng)。
Struts2、Spring和Hibernate三種開(kāi)源框架都是J2EE的實(shí)現(xiàn)技術(shù),并進(jìn)行了改進(jìn),都遵循Java規(guī)范,因此可將其整合成高性能的開(kāi)發(fā)架構(gòu)SSH。整合后,Struts2框架提供了豐富的視圖組件,不再負(fù)責(zé)Action的實(shí)例生成,減少了代碼的編寫(xiě)量,提高了程序的規(guī)范性、易用性和穩(wěn)定性;Hibernate框架實(shí)現(xiàn)ORM,對(duì)數(shù)據(jù)庫(kù)進(jìn)行了封裝,減輕了程序的耦合度;Spring框架對(duì)Hibernate進(jìn)行了封裝,集成了對(duì)各種其他框架的良好支持,配置過(guò)程中高度動(dòng)態(tài)化,具有很好的松散耦合特性。
2考試系統(tǒng)的功能結(jié)構(gòu)
本系統(tǒng)采用模塊化設(shè)計(jì),包括學(xué)生管理、教師管理和系統(tǒng)管理等模塊(見(jiàn)圖1)。
圖1 考試系統(tǒng)功能模塊
2.1學(xué)生管理模塊
學(xué)生管理模塊包括個(gè)人信息管理、考試管理、查詢成績(jī)管理和查看考試信息等。學(xué)生通過(guò)客戶端或者互聯(lián)網(wǎng)登錄考試系統(tǒng)后,可以查看和修改姓名、性別、專業(yè)和班級(jí)等個(gè)人信息,在線考試和在線練習(xí),查閱考試信息和考試成績(jī)。
2.2教師管理模塊
教師管理模塊包括個(gè)人信息管理、試題管理、信息發(fā)布、考試管理和成績(jī)管理等。教師登錄系統(tǒng)后,可以實(shí)現(xiàn)個(gè)人信息的維護(hù),錄入考題,生成和維護(hù)試卷,安排考試,組織閱卷,發(fā)布試卷和考試信息等。
2.3系統(tǒng)管理模塊
系統(tǒng)管理模塊包括系統(tǒng)維護(hù)角色管理、用戶管理、部門(mén)管理、科目管理和數(shù)據(jù)字典管理等。管理員登錄系統(tǒng)后,可以實(shí)現(xiàn)人員、部門(mén)、權(quán)限的管理和數(shù)據(jù)字典維護(hù)。
考試系統(tǒng)的整體流程如圖2所示。
圖2 考試系統(tǒng)的整體流程
3考試系統(tǒng)關(guān)鍵環(huán)節(jié)的實(shí)現(xiàn)
3.1系統(tǒng)的架構(gòu)
本系統(tǒng)使用MyEclipse6.0開(kāi)發(fā)工具,整合目前更流行、更有效的企業(yè)應(yīng)用架構(gòu)SSH開(kāi)發(fā)框架,如圖3所示。其中,User.java是封裝了數(shù)據(jù)庫(kù)User表的POJP,User.hbm.xml是將數(shù)據(jù)庫(kù)表格中的字段與User類的屬性進(jìn)行映射的文件,UserDAO.java封裝了一系列對(duì)于數(shù)據(jù)庫(kù)中User表的操作。
圖3 SSH的目錄結(jié)構(gòu)圖
3.2各層的實(shí)現(xiàn)
數(shù)據(jù)持久層由Java對(duì)象化類和DAO組成,持久層訪問(wèn)由POJO來(lái)完成,通過(guò)使用Hibernate的映射文件,其目的是通過(guò)持久層的框架將數(shù)據(jù)庫(kù)存儲(chǔ)從服務(wù)層中分離出來(lái),將每行映射成一個(gè)持久化實(shí)例,將每列映射成持久化類的一個(gè)屬性,將面向?qū)ο蟮牟僮鬓D(zhuǎn)化成對(duì)數(shù)據(jù)表的操作,通過(guò)完成各個(gè)實(shí)體間的映射來(lái)實(shí)現(xiàn)系統(tǒng)底層數(shù)據(jù)庫(kù)的設(shè)計(jì)[2]。
DAO層把JavaBean拆分為SQL語(yǔ)句并執(zhí)行,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn),可以屏蔽業(yè)務(wù)邏輯對(duì)數(shù)據(jù)持久化的依賴,并且引入Spring框架后,業(yè)務(wù)邏輯組件可以直接調(diào)用DAO接口的方法,如本系統(tǒng)中借助YeekuHibernateDaoSupport來(lái)實(shí)現(xiàn)分頁(yè)功能。
業(yè)務(wù)邏輯層包含業(yè)務(wù)邏輯組件接口和實(shí)現(xiàn)類,由Spring框架支持,負(fù)責(zé)創(chuàng)建業(yè)務(wù)邏輯組件的實(shí)例,并管理其依賴關(guān)系。如完成個(gè)人信息等數(shù)據(jù)添加、修改和查詢業(yè)務(wù),數(shù)據(jù)有效性驗(yàn)證和用戶權(quán)限合法性判斷等。
WEB層提供用戶與系統(tǒng)的友好訪問(wèn),包括控制器和JSP組件,控制器負(fù)責(zé)攔截用戶請(qǐng)求,并調(diào)用業(yè)務(wù)邏輯方法來(lái)處理用戶請(qǐng)求;JSP負(fù)責(zé)信息交互,及時(shí)收集用戶請(qǐng)求,并將系統(tǒng)處理結(jié)果顯示給用戶。
3.3數(shù)據(jù)庫(kù)設(shè)計(jì)
本系統(tǒng)使用MYSQL作為在線考試系統(tǒng)的數(shù)據(jù)庫(kù),根據(jù)實(shí)踐需求,主要包含10個(gè)表,基本結(jié)構(gòu)如下。
1)用戶信息表。主要保存用戶的各種信息,包括用戶ID、用戶名、密碼、真實(shí)姓名、類型ID、性別、角色I(xiàn)D、院校和專業(yè)等。
2)試題信息表。主要保存試題的各種信息,包括試題ID、試題類型、試題難度和數(shù)據(jù)字典_id等。
3)試卷信息表。主要保存試卷的各種信息,包括試卷ID、數(shù)據(jù)字典_id和創(chuàng)建者等。
4)標(biāo)準(zhǔn)答案表。主要保存答案的信息,包括標(biāo)準(zhǔn)答案ID、題目和試卷ID等。
5)答案信息表。主要保存學(xué)生答題的信息,包括答卷ID、試卷ID和所有者ID等。
6)答卷答案表。主要保存試卷表標(biāo)準(zhǔn)答案的信息,包括答卷答案ID、答卷ID和題號(hào)等。
7)考試表。主要保存考試信息,包括考試ID、試卷名稱、試卷ID、開(kāi)考時(shí)間、考試時(shí)限和發(fā)布人等。
8)考試成績(jī)表。主要保存考試成績(jī)信息,包括成績(jī)ID、用戶ID、考試ID、客觀題得分和主觀題得分等。
9)公告信息表。主要保存公告信息,包括公告ID、公告標(biāo)題、公告內(nèi)容、發(fā)布時(shí)間和發(fā)布人等。
10)角色信息表。主要保存角色信息,包括角色I(xiàn)D、角色名稱、角色描述和角色權(quán)限等。
系統(tǒng)使用hibernate.cfg.xml配置數(shù)據(jù)庫(kù),其代碼如下:
″-//Hibernate/Hibernate Configuration DTD 3.0//EN″
″http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd″>
……
3.4智能組卷與閱卷策略
本系統(tǒng)在分析了測(cè)試?yán)碚摵途C合了優(yōu)先權(quán)法、弱并行法、誤差補(bǔ)償、有控隨機(jī)策略法和回溯法等幾種組卷策略的基礎(chǔ)上,采用多約束性離差求解算法MCDWDP,并選用Tytk.DLL組件中的MakePaper類中的方法來(lái)實(shí)現(xiàn),杜絕簡(jiǎn)單地隨機(jī)抽取試題,實(shí)現(xiàn)知識(shí)點(diǎn)的覆蓋范圍盡可能地全面,難度級(jí)別合理,以充分體現(xiàn)組卷的科學(xué)性與合理性。組卷流程如圖4所示。
圖4 組卷流程圖
現(xiàn)行的考試系統(tǒng)中客觀題通常采用精確匹配算法實(shí)現(xiàn)自動(dòng)閱卷,而簡(jiǎn)答題、描述題和程序題等主觀題,由于答案不唯一,很難同參考答案進(jìn)行精確匹配,目前一般采用人工閱卷的方式。本系統(tǒng)在分析基于語(yǔ)句相似度、基于中文分詞技術(shù)和基于單向貼近度概念等算法的基礎(chǔ)上[3],采用基于詞形相似度的算法來(lái)實(shí)現(xiàn)主觀題的自動(dòng)閱卷。詞形相似度計(jì)算方法如下。
令x為需要處理語(yǔ)句中所包含的詞的個(gè)數(shù),len(x)為數(shù)量,SimWC(A,B)為A、B語(yǔ)句所包含的相同單詞的個(gè)數(shù)(取出現(xiàn)較少的次數(shù)為該詞的計(jì)數(shù))。公式如下:
4結(jié)語(yǔ)
本文深入分析了目前國(guó)內(nèi)外智能化在線考試系統(tǒng)的功能需求、數(shù)據(jù)需求和性能需求,對(duì)高校在線考試系統(tǒng)存在的一些問(wèn)題進(jìn)行了研究與創(chuàng)新,提出采用B/S三層結(jié)構(gòu)模式和高性能SSH架構(gòu)思想,優(yōu)化和改進(jìn)了設(shè)計(jì)模式和系統(tǒng)功能,詳細(xì)描述了系統(tǒng)的實(shí)現(xiàn)方法和關(guān)鍵技術(shù),對(duì)于提高高校教育教學(xué)管理水平和質(zhì)量,降低資源耗費(fèi)等具有重要的意義。
參考文獻(xiàn)
[1] 司飆.MVC模式下的考試系統(tǒng)建模研究[J].計(jì)算機(jī)科學(xué),2013(S1):403-406.
[2] 李林朋.基于J2EE的網(wǎng)絡(luò)輔助教學(xué)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古師范大學(xué),2009.
[3] 曹玉嬋,左映龍.淺析在線考試主觀題智能閱卷算法的設(shè)計(jì)與實(shí)現(xiàn)[J].價(jià)值工程,2014(17):231-233.
*寶雞文理學(xué)院科技資助項(xiàng)目(YK1041)
責(zé)任編輯鄭練
Design and Implementation of Online Examination System based on SSH
ZHANG Yuren
(Institute of Computer Science, Baoji University of Arts and Sciences, Baoji 721016, China)
Abstract:Some of the problems currently existing in universities online examination system were researched and innovated. The idea that three-tier architecture and the high performance SSH framework based on B/S was used and proposed in the paper. The design pattern and system functions were also optimized and improved for online examination system. The implementation method and key technology of the system were also described in details.
Key words:WEB, SSH, examination system
收稿日期:2015-01-05
作者簡(jiǎn)介:張育人(1980-),男,講師,碩士,主要從事計(jì)算機(jī)技術(shù)和嵌入式系統(tǒng)等方面的研究。
中圖分類號(hào):TH 311
文獻(xiàn)標(biāo)志碼:A