楊雪蓮
摘 要:隨著信息化的發(fā)展和各種在線答題系統(tǒng)的使用,使得調(diào)查問(wèn)卷變得十分方便。開(kāi)發(fā)圖書(shū)館管理規(guī)則答題系統(tǒng)可以方便圖書(shū)館了解在校師生對(duì)圖書(shū)館管理規(guī)則的掌握情況,然后根據(jù)調(diào)查結(jié)果采取有針對(duì)性的措施,做好圖書(shū)館管理工作。該系統(tǒng)采用J2EE技術(shù)開(kāi)發(fā),使用當(dāng)前比較流行的Spring + SpringMVC + Mybatis框架?;赟pring框架的技術(shù)特點(diǎn),該系統(tǒng)各個(gè)模塊之間實(shí)現(xiàn)了高內(nèi)聚低耦合的特點(diǎn),方便對(duì)系統(tǒng)進(jìn)行功能擴(kuò)展和模塊定制。
關(guān)鍵詞:答題系統(tǒng);J2EE;系統(tǒng)分析;系統(tǒng)設(shè)計(jì)
DOIDOI:10.11907/rjdk.1511024
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):1672-7800(2015)012-0075-02
0 引言
隨著信息化的高速發(fā)展和各種在線答題系統(tǒng)的使用,使得調(diào)查問(wèn)卷變得十分方便。不再是以前的設(shè)計(jì)問(wèn)卷、打印問(wèn)卷、分發(fā)問(wèn)卷、回收問(wèn)卷、統(tǒng)計(jì)問(wèn)卷等繁瑣程序,取而代之的是網(wǎng)絡(luò)問(wèn)卷,直接設(shè)計(jì)問(wèn)卷,待用戶(hù)回答完后,系統(tǒng)后臺(tái)會(huì)直接將結(jié)果統(tǒng)計(jì)出來(lái)。方便管理員對(duì)問(wèn)卷結(jié)果進(jìn)行相應(yīng)分析,大大提高了統(tǒng)計(jì)調(diào)查效率。
高校圖書(shū)館也基本實(shí)現(xiàn)了信息化管理,相應(yīng)地對(duì)圖書(shū)館管理規(guī)則的宣傳、調(diào)查也需要向信息化發(fā)展。因此設(shè)計(jì)一套圖書(shū)館管理規(guī)則答題系統(tǒng)十分必要。通過(guò)網(wǎng)絡(luò)問(wèn)答的形式開(kāi)展圖書(shū)館活動(dòng),使學(xué)校師生了解圖書(shū)館管理規(guī)則,一方面可以師生熟知圖書(shū)館管理規(guī)則,另一方面可以避免圖書(shū)館一些不必要的損失。
本系統(tǒng)采用J2EE技術(shù)開(kāi)發(fā),為了實(shí)現(xiàn)系統(tǒng)各功能模塊之間的高內(nèi)聚低耦合,使用Spring作為基礎(chǔ)框架,在數(shù)據(jù)持久層使用Mybatis插件。由于Spring框架本身依賴(lài)注入(IOC)和面向切面(AOP)的核心技術(shù),它將離散運(yùn)行時(shí)的組件組裝到一起。由于程序流程是在運(yùn)行時(shí)組裝,因此可以很方便地添加功能。
圖書(shū)館管理規(guī)則答題系統(tǒng)的開(kāi)發(fā)與應(yīng)用,可以使參與人員通過(guò)趣味性的方式了解圖書(shū)館管理規(guī)則。在日常生活中時(shí)刻提醒自己和身邊的人,在借閱圖書(shū)館書(shū)需遵守圖書(shū)館管理規(guī)則,創(chuàng)造良好的圖書(shū)館環(huán)境。
1 系統(tǒng)需求分析和設(shè)計(jì)
1.1 系統(tǒng)需求分析
(1)高校圖書(shū)館管理規(guī)則答題系統(tǒng)使用者主要是高校內(nèi)的師生,因此需要使用帳號(hào)密碼登錄管理系統(tǒng)。
(2)管理員登錄系統(tǒng)后可以看到相關(guān)信息,具體功能為:查看題庫(kù)、增加新題目、修改或刪除已有題目、設(shè)計(jì)新的問(wèn)卷、發(fā)布新的問(wèn)卷、查看問(wèn)卷統(tǒng)計(jì)結(jié)果等。
(3)用戶(hù)登錄系統(tǒng)后可以看到當(dāng)前活動(dòng)和當(dāng)前問(wèn)卷,具體功能為:查看未答問(wèn)卷、查看已答問(wèn)卷、回答問(wèn)卷等。
1.2 系統(tǒng)總體設(shè)計(jì)
1.2.1 系統(tǒng)體系結(jié)構(gòu)
本系統(tǒng)基于JavaEE的平臺(tái)開(kāi)發(fā),采用了B/S(Browser/Server)結(jié)構(gòu)架構(gòu),客戶(hù)端使用JavaScript、Jquery、Ajax等組件,很好地解決了各瀏覽器之間兼容性問(wèn)題。系統(tǒng)采用經(jīng)典的MVC設(shè)計(jì)模式。使用目前比較流行的Spring + SpringMVC + Mybatis的解決方案。采用Orecle數(shù)據(jù)庫(kù)和最新的Linux操作系統(tǒng)。與Windows Server操作系統(tǒng)相比,Linux操作系統(tǒng)更加安全、穩(wěn)定。
1.2.2 功能結(jié)構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)需求分析,可以把系統(tǒng)分為管理員中心、系統(tǒng)設(shè)置、信息發(fā)布、問(wèn)卷管理以及用戶(hù)中心等功能模塊,系統(tǒng)功能模塊具體如圖1所示。
1.2.3 邏輯結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)采用MVC設(shè)計(jì)模式,表現(xiàn)層采用JSP技術(shù),頁(yè)面動(dòng)態(tài)腳本采用JSTL標(biāo)簽、EL標(biāo)簽和Ajax技術(shù),這樣可以避免在JSP頁(yè)面中使用java代碼,使得表現(xiàn)層和控制層完全分離。控制層使用Spring攔截器和控制器處理、返回用戶(hù)請(qǐng)求,模型層分為業(yè)務(wù)邏輯層、DAO層以及數(shù)據(jù)持久層,使用Mybatis技術(shù)負(fù)責(zé)控制各層之間的數(shù)據(jù)交互。攔截器負(fù)責(zé)攔截用戶(hù)訪問(wèn)請(qǐng)求,然后交給相應(yīng)Controller進(jìn)行處理;控制層負(fù)責(zé)表現(xiàn)層與業(yè)務(wù)邏輯層之間的數(shù)據(jù)交互;業(yè)務(wù)邏輯層接收用戶(hù)請(qǐng)求數(shù)據(jù),完成業(yè)務(wù)處理,然后通過(guò)控制層將處理結(jié)果返回表現(xiàn)層。業(yè)務(wù)邏輯層以DAO層為基礎(chǔ),完成對(duì)業(yè)務(wù)邏輯的具體實(shí)現(xiàn);DAO層封裝了最基本的增、刪、改、查等操作,數(shù)據(jù)持久層則通過(guò)數(shù)據(jù)對(duì)象的實(shí)體類(lèi)完成與數(shù)據(jù)庫(kù)物理表現(xiàn)之間的映射。DAO層通過(guò)與數(shù)據(jù)持久層的數(shù)據(jù)交互完成對(duì)數(shù)據(jù)庫(kù)的操作。Mybatis技術(shù)負(fù)責(zé)處理模型層與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互。
圖1 系統(tǒng)功能模塊
利用Spring技術(shù)控制反轉(zhuǎn)(IOC)和面向切面(AOP),控制反轉(zhuǎn)主要是幫助類(lèi)初始化和實(shí)例化,然后把實(shí)體類(lèi)注入到其它應(yīng)用類(lèi)。面向切面技術(shù)主要負(fù)責(zé)系統(tǒng)安全、日志和事務(wù)處理。
圖2 系統(tǒng)邏輯結(jié)構(gòu)
1.2.4 數(shù)據(jù)庫(kù)設(shè)計(jì)
通過(guò)需求分析,列出系統(tǒng)管理模塊的E-R圖,如圖3所示。
通過(guò)對(duì)E-R圖分析,得到28個(gè)數(shù)據(jù)表,其中系統(tǒng)設(shè)置模塊包含了用戶(hù)表、用戶(hù)角色表、功能模塊表、操作功能表等。表1為用戶(hù)表結(jié)構(gòu)。
2 系統(tǒng)實(shí)現(xiàn)與系統(tǒng)界面展示
2.1 系統(tǒng)主界面
當(dāng)普通用戶(hù)使用已注冊(cè)的用戶(hù)名和密碼成功登錄后,進(jìn)入系統(tǒng)主界面。系統(tǒng)主界面展示該用戶(hù)目前可以回答的問(wèn)卷和已經(jīng)回答過(guò)的問(wèn)卷。當(dāng)點(diǎn)擊“回答”按鈕后,即彈出問(wèn)卷,然后對(duì)問(wèn)卷作答,作答完成提交后,即可顯示題目對(duì)錯(cuò)、用戶(hù)答案、正確答案以及此次問(wèn)卷作答取得的分?jǐn)?shù)。
圖3 系統(tǒng)設(shè)置模塊E-R圖
當(dāng)系統(tǒng)管理員使用給定帳號(hào)和密碼登錄系統(tǒng)后,進(jìn)入后臺(tái)頁(yè)面。后臺(tái)主界面向用戶(hù)展示參數(shù)設(shè)置、主題管理、題庫(kù)管理、問(wèn)卷管理、注冊(cè)用戶(hù)和數(shù)據(jù)統(tǒng)計(jì);界面右上角展示給系統(tǒng)管理員的是個(gè)人設(shè)置、系統(tǒng)設(shè)置、在線用戶(hù)和退出按鈕。
參數(shù)設(shè)置界面里管理員可以設(shè)置當(dāng)前答題開(kāi)關(guān),即當(dāng)前是否可以答題,以及同時(shí)在線答題人數(shù)等相關(guān)設(shè)置;主題管理界面可設(shè)置問(wèn)卷主題;系統(tǒng)管理員可以在題庫(kù)管理界面進(jìn)行增加、修改、刪除題目等操作,也可以在問(wèn)卷管理頁(yè)面進(jìn)行增加、修改、刪除問(wèn)卷等操作,即設(shè)計(jì)問(wèn)卷;注冊(cè)用戶(hù)即可以看到所有注冊(cè)用戶(hù)的基本信息;在數(shù)據(jù)統(tǒng)計(jì)頁(yè)面可以根據(jù)問(wèn)卷題目來(lái)查看此問(wèn)卷的回答情況,也可進(jìn)行相關(guān)排序以便抽獎(jiǎng)活動(dòng)使用。
2.2 設(shè)計(jì)問(wèn)卷功能
設(shè)計(jì)問(wèn)卷功能包括選擇題目、選擇問(wèn)卷題目數(shù)量、設(shè)置分值等功能。出于公平考慮,為防止部分使用者出現(xiàn)作弊情況,管理員在設(shè)計(jì)問(wèn)卷的時(shí)候可以從題庫(kù)中選中部分或全部的題目,然后通過(guò)設(shè)置問(wèn)卷題目數(shù)量來(lái)隨機(jī)顯示該數(shù)量題目。當(dāng)然也可以通過(guò)詳細(xì)設(shè)置單項(xiàng)選擇題的數(shù)量、多項(xiàng)選擇題的數(shù)量以及簡(jiǎn)答題的數(shù)量來(lái)設(shè)計(jì)問(wèn)卷題目。
2.3 問(wèn)卷打分功能
題目分為單項(xiàng)選擇題、多項(xiàng)選擇題和簡(jiǎn)答題,對(duì)于單項(xiàng)選擇題和多項(xiàng)選擇題的評(píng)分很簡(jiǎn)單,通過(guò)Ajax和Jquery實(shí)現(xiàn)及時(shí)打分,即用戶(hù)在提交問(wèn)卷后就可以看到得分情況。但是對(duì)于簡(jiǎn)答題的打分,因?yàn)闆](méi)有固定答案,而且字段非常多,本文采用后臺(tái)人工打分的形式,以避免誤判。
3 結(jié)語(yǔ)
基于J2EE的圖書(shū)館管理規(guī)則答題系統(tǒng),通過(guò)采用Spring+SpringMVC+Mybatis的框架,可以實(shí)現(xiàn)軟件各個(gè)模塊的高內(nèi)聚低耦合,方便進(jìn)行系統(tǒng)功能擴(kuò)展和系統(tǒng)性能優(yōu)化。在系統(tǒng)界面的設(shè)計(jì)上,沒(méi)有復(fù)雜的操作流程,用戶(hù)很容易掌握使用方法;功能能夠滿(mǎn)足當(dāng)前用戶(hù)需求,實(shí)現(xiàn)在線設(shè)計(jì)問(wèn)卷、在線發(fā)布問(wèn)卷、在線答題、答題結(jié)果匯總等功能,大大提高了工作效率;系統(tǒng)性能和穩(wěn)定性有保障,通過(guò)SSM框架明顯縮短了系統(tǒng)響應(yīng)時(shí)間,對(duì)一些客戶(hù)端能夠解決的問(wèn)題,盡量交給客戶(hù)端來(lái)解決,以此來(lái)減輕服務(wù)端的負(fù)擔(dān)。
參考文獻(xiàn)參考文獻(xiàn):
[1] 趙彥.JavaEE框架技術(shù)進(jìn)階式教程[M].北京:清華大學(xué)出版社,2011.
[2] 陳雄華.Spring 3.x企業(yè)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2012.
[3] 劉京華.Java Web整合開(kāi)發(fā)王者歸來(lái)[M].北京:清華大學(xué)出版社,2010:2-5.
[4] 儲(chǔ)久良.Web前端開(kāi)發(fā)技術(shù)—HTML、CSS、JavaScript[M].北京:清華大學(xué)出版社,2013:262-315.
[5] 伊雯雯.基于MVC的Java Web開(kāi)發(fā)項(xiàng)目式教程[M].北京:人民郵電出版社,2014.
[6] GRADY BOOCH,ROBERT A,MAKSIM CHUCK,et al.面向?qū)ο蠓治雠c設(shè)計(jì)[M].北京:電子工業(yè)出版社,2012.
(責(zé)任編輯:陳福時(shí))