基於B/S架構的在線考試系統的設計與實現

前言

  這個是個人Web課程設計,用到的主要是JSP技術並使用了大量JSTL標籤,全部代碼已經上傳到了個人Github倉庫裏,地址:https://github.com/quanbisen/onlineexam,若是喜歡的話請幫我Mark個Star。
html

  隨着計算機軟件技術的高速發展,現代社會正快速邁入了一個互聯網應用時代,Web應用在各行業都獲得了普遍的應用,如小型公司的運銷存管理系統,高校的教務管理系統等都是經過B/S架構搭建的Web應用。在過去的幾年中,在線考試系統應用在不少行業都獲得了普遍的應用,但在教學管理考覈中難以普及。所以,本文針對當前在教學考覈中遇到的實際題目進行分析,設計出了一款基於B/S架構的教學考覈在線考試系統。html5

  本文主要介紹一個經過JSP(Java Server Page)技術和Tomcat服務器搭建的一個在線考試系統的設計與實現。針對目前的教學考覈都廣泛存在有選擇題和判斷題,而這兩種題型都是有固定的答案形式。本在線考試系統設計成能夠錄入選擇題和判斷題,其中使用了MySQL做爲系統的數據庫支撐,相關的考試題目和角色信息均可以存儲在MySQL數據庫表中。java

  本在線考試系統的設計主要分爲兩個角色設計,一個管理者角色管理考試相關的信息(至關於教師),一個考生角色參加管理者發佈的考試。其中管理者能夠添加、刪除、修改和查看考生信息,能夠查詢統計成績,能夠管理髮布考試試題;考生能夠查看本人的詳細信息而且自定義上傳頭像信息,能夠查詢考試信息以及成績信息,能夠參加在線考試。另外,兩個角色都提供了修改登陸密碼的功能。最後,對本文中設計實現的所需功能進行了功能測試,測試結果代表,該系統能夠知足教學考覈中選擇題和判斷題的考覈需求。git

  關鍵詞: B/S架構  在線考試  選擇題  判斷題  JSP github

 

目錄數據庫

基於B/S架構的在線考試系統的設計與實現 瀏覽器

 安全

1 緒論 服務器

1.1 背景 網絡

1.2 本文的主要工做 

2 系統需求分析 

2.1 系統可行性分析 

l 市場可行性分析 

l 技術可行性分析 

l 應用可行性分析 

2.2 功能需求分析 

l 考生需求 

l 管理者需求 

2.3 非功能需求分析 

4.4.1 界面美觀 

4.4.2 操做簡單 

4.4.3 多用戶在線考覈 

4.4.4 運行穩定 

3 系統總體設計 

3.1 整體結構設計 

3.2 業務流程設計 

3.3 系統框架設計 

3.4 主要功能模塊設計 

3.4.1 登陸模塊設計 

3.4.2 考生管理模塊設計 

3.4.3 試題管理模塊設計 

3.4.4 成績統計模塊設計 

3.4.5 修改密碼模塊設計 

3.4.6 在線考試模塊設計 

3.4.7 個人信息功能模塊設計 

3.5 服務器端設計 

3.5.1 Web服務器設計 

3.5.2 數據庫服務設計 

4 系統功能實現 

4.1 服務器框架設計 

4.2 瀏覽器端框架設計 

4.3 登陸功能模塊的實現 

4.4 考生管理功能模塊的實現 

4.5.1 修改時修改了考生ID 

4.5.2 分頁顯示 

4.5 試題管理功能模塊的實現 

4.5.1 試題模板的下載 

4.5.2 試題的發佈 

4.5.3 已發佈試題的刪除 

4.6 成績統計功能模塊的實現 

4.6.1 已發佈試題的顯示 

4.6.2 選擇查詢已發佈的試題的成績統計 

4.7 修改密碼功能模塊的實現 

4.8 在線考試功能模塊的實現 

4.8.1 考生信息的顯示 

4.8.2 瀏覽器端倒計時的實現 

4.8.3 試題題目的顯示 

4.8.4 各個題目的導航 

4.8.5 題目回答的業務處理 

4.8.6 交卷的業務處理 

4.9 個人信息功能模塊的實現 

4.9.1 考生我的信息的顯示 

4.9.2 上傳頭像文件成功後的數據庫信息更新及原頭像文件刪除 

5 系統測試 

5.1 測試環境 

5.2 測試內容 

5.3 測試方案及結果 

5.3.1 系統功能測試 

5.3.2 用戶體驗測試 

6 總結 

參考文獻 

 

緒論

1.1 背景

  在十幾年前,因爲教學資源的缺少,考試的考覈大多使用的是人工考試,人工成績計分,有的貧困山區的學生的考卷甚至是手抄的。但近幾年來,我國第三產業發展迅速,尤爲軟件事業,逐漸出現了一些專業的考試系統軟件,這些軟件大可能是針對某一行業定製開發的,沒法知足其它行業的業務需求;也有一些系統功能相對中庸,只可以適用於一些通用性較強的行業。加上目前我國經濟水平的迅速發展,貧困山區的學生的教學資源基本上少數的教學資源仍是可使用到電腦的。考試是教學過程當中的一個重要環節,紙質考試的方式每每令人們受到時間和空間等各類各樣的限制,形成不少不利。所以,設計一個在線考試系統能夠解決傳統的紙質考試中繁瑣的人工計分過程,還能夠解決教師對學生成績的統計過程。

1.2 本文的主要工做

  本文主要結合目前國內教學工做中遇到的實際問題以及對軟件系統的使用需求,設計了基於B/S架構的在線考試系統。最終開發出一款可以解決當前傳統教學考覈中選擇題和判斷題題型考覈的人工計分考覈的繁瑣過程的Web應用。本文涉及的內容主要包括如下幾個方面:

  • 對教學考覈工做進行需求分析,保證軟件系統的功能設計符合用戶的使用需求;
  • 根據需求對系統進行總體設計,包括系統的目標設計、數據模型設計、系統功能結構設計等;
  • 根據系統功能進行具體的編碼工做;
  • 對系統進行詳細測試,確保功能符合當前的設計要求,符合用戶使用需求。

系統需求分析

2.1 系統可行性分析

  • 市場可行性分析

  市場可行性分析主要是分析項目在實現後是否可以在市場中獲得普遍應用,具有推廣價值。本項目的目標用戶主要是教育部門或培訓機構等具有選擇和判斷考題題型的傳統考覈或未從傳統考覈方式中解脫出來的貧困山區,目前我國正在大力推動城鄉一體化措施,貧困地區的教育資源會逐漸獲得補充,傳統人工考覈的繁瑣方式將會被逐漸取代。經過本系統能夠解決傳統的考覈方式中人工計分的繁瑣任務,具有必定的市場需求和推廣價值。

  • 技術可行性分析

  技術可行性是經過對本項目實現所涉及的技術進行系統分析,找出技術難念及解決方案,保證系統在技術實現環節不出現災難性問題而致使沒法繼續。本系統主要涉及到的是Web技術,這種技術的應用已經很是普遍,自身有着不少技術解決方案的積累,因此遇到問題應該都能找到不少資料進行查閱。Web技術是傳統的B/S架構,它具備穩定性、可擴展性等優勢,本項目最終決定選用JSP技術進行具體的實現。

  • 應用可行性分析

  目前我國還具有着傳統人工計分的考覈方式,教師亟需一種信息技術可以幫助他們解決繁瑣的選擇判斷題型等具有固定答案的試題的批改計分問題,同時信息技術在人們平常生活中也獲得普遍的使用,因此不管是管理者仍是考生都對這種軟件的管理方式熟悉了。因此,本系統在教育方面可以獲得應用,並能解決傳統教育考覈的人工計分繁瑣任務。

2.2 功能需求分析

  在系統中不一樣類型的角色有着不一樣的功能需求,角色須要完成哪些工做,達到什麼樣的目標,系統須要分哪些模塊去完成等等都是系統需求分析中須要考慮的重要因素,爲了充分了解不一樣角色對系統的使用需求,我對不一樣角色進行了需求分析,主要的功能需求包括如下幾個方面:

  • 考生需求

  考生是這個系統中用戶量最多的角色,主要經過電腦瀏覽器進行登陸完成考試,能夠查看考試信息、完成的考試的成績及我的信息。考生的登陸初始帳號統一由管理者進行添加分發,考生經過自行登陸後,能夠根據需求決定是否更改登陸的密碼,另外還提供一個個性化的我的信息頭像上傳功能。

  考生角色登陸系統時要求系統界面簡單明瞭,可以符合大部分的考生的操做。關於最主要的考試功能,在考試期間須要能夠導航到任意的題目號進行顯示,須要能夠顯示出已經選擇了答案的題目的答案而且可以更改原來選擇的答案,須要能夠在試題計時結束後自動提交試題答案,須要能夠在提交試卷時進行試題的得分計算而且可以導航到成績顯示的頁面供考生查看。除此,在考試的頁面還須要給出適當的提示,如「離開此頁面將沒有成績」等提示。大體的功能需求如圖2-1所示:

 

  • 管理者需求

  管理者主要須要對整個系統進行管理,須要完成考試的發佈和對已發佈考試的刪除,考生信息的錄入、查看、修改、刪除。在實際的應用中,通常狀況下考生的數量都是大於40我的的,於是有必要在考生管理的頁面進行考生信息的分頁顯示。管理者的須要完成的任務繁多,其中試題的錄入這一項工做最爲繁瑣,所以,須要提供一個excel中間文件完成一次性上傳考覈的題目。爲了保證試題錄入的時系統的正確性,提供一個試題的模板給管理者參照錄入本身須要考覈的題目,而且提供考試相關信息描述的錄入,如考試時間,考試的描述(期中考試,期末考試,英語考試,物理考試)。

  在考生管理中錄入考生信息完成和考試的發佈完成後,考生能夠經過登陸系統完成發佈的考試,在考生完成了考試後,管理者能夠在成績統計中查詢已發佈的考試的成績統計(最高分、最低分和平均分)和未完成考試的考生信息。大體的功能需求如圖2-2所示:

 

  注意:除上述的考生角色和管理者角色外,還有一個數據庫管理者。數據庫管理者是管理者角色用戶登陸的管理,本系統的全部數據都存儲在數據庫中,數據庫管理者是整個系統的最高管理者,但不在本系統的設計角色以內。

2.3 非功能需求分析

  基於B/S架構的在線考試系統經過瀏覽器(Browser)和服務器(Server)交互的方式實現,在登陸、管理、考試這些總體功能的界面應當遵循界面簡潔、操做簡單的原則,避免繁瑣問題給用戶增長工做量等,具體的要求包括:

4.4.1 界面美觀

  界面是進行人加交互的接口,根據大部分的Web應用的操做方式進行UI的佈局設計,具有良好的UI界面是吸引用戶使用的最直接因素。所以系統的操做界面總體採用暗淡的黃色背景做爲導航欄的顯示,黑色的背景做爲主要功能的顯示。

4.4.2 操做簡單

  系統的操做須要同時兼顧管理者和考生的使用需求,同時更要對經常使用功能和易出錯功能給與人性化的提示,而且可以擁有操做結果的反饋信息。

4.4.3 多用戶在線考覈

  本系統是目標用戶是教育部門,系統至少須要可以40個考生同時進行在線考試的併發量要求。

4.4.4 運行穩定

  在線考試系統是教育考覈的一種新方式,在考覈的過程當中必須保證應用的穩定性,避免發生崩潰致使考生須要重複考等故障。

系統總體設計

  根據前期的需求描述要求,本系統的使用主要是PC電腦端,用戶能夠經過電腦瀏覽器使用本系統。本系統設計是基於B/S架構下實現的,軟件服務器的運行環境爲Windows 10專業版、Tomcat服務器、MySQL數據庫以及Navicat數據庫管理軟件;用戶運行環境主要是標準的瀏覽器環境。服務器業務邏輯的處理採用JSP技術實現,用戶端的功能顯示與功能實現採用HTML5和JavaScript語言實現。詳見3-1系統平臺記錄表:

3-1 系統平臺配置表

服務器操做系統

Windows 10專業版

數據庫

MySQL 5.7

數據庫管理軟件

Navicat

Web服務器

Tomcat

客戶端瀏覽器

Edge、Chrome

開發環境

IntelliJ IDEA

開發語言

JSP、JavaScript、HTML五、JSTL

  系統中的考生信息和考試試題對數據的安全性有較高要求,採用B/S架構的應用具備良好的擴展性外,也具備必定的安全性,只有經過登陸驗證數據庫中的用戶表存在用戶記錄的用戶才能進入本系統。

3.1 整體結構設計

  基於B/S架構實現的在線考試系統的總體結構能夠劃分爲數據庫服務器,Web服務器(Tomcat)和系統管理功能三大結構。整體架構如圖3-1所示:

 

3.2 業務流程設計

  根據需求分析,系統的角色分爲管理者和考生兩個角色,業務的流程能夠分爲兩個分支,具體的業務流程圖如圖3-2和圖3-3所示:

 

  考生登陸本系統後能夠有兩個業務流程,一是查看本人的信息是否正確或決定是否個性化上傳頭像,二是查看管理者發佈的試題和查看以前已考的試題的成績,若是有試題,考生能夠開始在線考試,答題完成後能夠交卷,交卷完成後能夠查看考試的成績。

管理者登陸本系統後能夠有三個業務流程,一是考生信息錄入,根據新加入學的學生信息錄入本系統,若是錄入錯誤還能夠修改刪除,二是試題發佈,管理者能夠根據須要是否下載試題的模板,根據模板的格式錄入考題的相關信息,而後添加試題的描述信息和試題的考試時間,最後發佈本試題到系統中,三是成績統計,待試題發佈成功和考生登陸系統完成考試後,管理者能夠在成績統計中查看以發佈的試題的成績統計。

3.3 系統框架設計

  系統的使用是經過瀏覽器訪問Web服務器的,系統總體設計分爲兩個角色,分別爲管理者和考生。管理者角色主要提供考生管理、試題管理和成績統計三大功能模塊;考生角色主要提供個人考試、個人信息兩大功能模塊。

  管理者角色功能框架如圖3-4所示:

 

  考生角色功能框架如圖3-5所示:

 

3.4 主要功能模塊設計

  本系統的設計主要是解決當前傳統教學考覈中選擇題和判斷題題型考覈的人工計分考覈的繁瑣過程,主要的功能模塊能夠分爲七大功能模塊,分別爲系統登陸模塊、考生管理模板、試題管理模塊、成績統計模塊、修改密碼模塊、在線考試模塊和個人信息模塊。

3.4.1 登陸模塊設計

  系統登陸模塊是本系統的入口,根據需求分析,登陸模塊須要提供管理者和考生兩個角色進入系統的入口。具體的業務流程如圖3-6所示:

3.4.2 考生管理模塊設計

  考生管理模塊是提供給管理者角色錄入考生信息的。在考生管理模塊中,管理者能夠添加、修改、查看和刪除考生的信息。其中查看考生信息時,因爲考生的數量通常狀況下都會大於40人,因此須要根據考生的id號進行排序而後分頁顯示。具體的業務流程如圖3-7所示:

 

 

3.4.3 試題管理模塊設計

  試題管理模塊是提供給管理者管理試題發佈試題供考生考覈的。試題的數量比較多,須要提供模板給管理者批量導入到系統中,於是設計了容許使用Excel文件批量導入。導入過程當中還須要提供發佈此次試題的相關信息,如考試的描述和考試的時間限制。具體的業務流程如圖3-8所示:

 

3.4.4 成績統計模塊設計

  成績統計模塊是提供給管理者查看試題的考覈狀況的。根據需求分析,成績統計須要顯示已發佈的試題和查詢已發佈試題的考生考覈狀況,包括未考的學生,已考學生的分數信息。具體的業務流程如圖3-9所示:

 

3.4.5 修改密碼模塊設計

  根據需求分析,修改密碼是兩個角色用戶都要有的功能,具體的業務流程如圖3-10所示:

 

3.4.6 在線考試模塊設計

  在線考試模塊是提供給考生完成管理者發佈的試題考覈的。根據需求分析,提供題目導航和已選答案的顯示,還有考生我的信息的顯示,考試剩餘時間的倒計時,其中系統支持選擇題和判斷題,須要爲考生提供的選項選擇方式。具體的業務流程如圖3-11所示:

 

3.4.7 個人信息功能模塊設計

  個人信息模塊提供考生覈實管理者錄入的信息是否有誤,有誤須要聯繫管理者修改。此功能模塊額外提供了個性化的頭像上傳功能。具體的業務流程如圖3-12所示:

 

3.5 服務器端設計

3.5.1 Web服務器設計

  本系統採用B/S架構實現,採用Tomcat服務器技術和JSP動態Web技術完成本系統的用戶的業務處理,只要在局域網內部署Tomcat服務器,局域網內的用戶就可使用Web瀏覽器訪問Tomcat服務器了。整個系統的操做請求和返回結果都是經過http方式傳送的。

3.5.2 數據庫服務設計

  數據庫是以必定方式儲存在一塊兒、能與多個用戶共享、具備儘量小的冗餘度、與應用程序彼此獨立的數據集合。本系統的設計是基於關係型數據庫設計的,可使用MySQL開源的關係型數據庫。數據庫服務設計主要是設計數據實體和數據表。

  • 數據實體設計

  根據系統的需求分析,系統中須要包含的實體對象包括用戶、考試和試題,如下是各個實體的E-R圖描述:

  用戶這個實體包含的信息主要有惟一性ID標識、密碼、姓名、性別、考試理由和頭像的url,其中用戶的角色只有考生包含有所有的屬性,而管理者只包含惟一性ID標識和密碼。如圖3-13所示:

 

  考試這個實體包含的信息主要有惟一性ID標識、考試的描述詳細和考試的時間限制。如圖3-14所示:

  試題這個實體包含的信息主要有記錄號(自動增長)、題目的描述、選項的提供、正確的選項、各自的分值和類型。如圖3-15所示:

  • 數據表設計

  本系統採用MySQL數據庫做爲數據的存儲倉庫,針對系統中實體對象和須要處理的業務數據要求分析,最終肯定了系統共包含6張數據庫表,下面是對這6張數據表的詳細說明:

  用戶登陸驗證表(分別建立了管理者和考生兩張表,其中管理者對應administrators表,考生對應users表)如表3-2所示:

3-2 用戶登陸驗證表(administrators和users)

字段

數據類型

描述

註釋

id

varchar(100)

惟一性標識

主鍵

password

varchar(100)

密碼

 

  考生詳細信息表如表3-3所示:

3-3 考生詳細表users_information

字段

數據類型

描述

註釋

id

varchar(100)

惟一性標識

外鍵

nane

varchar(100)

姓名

不爲空

sex

char(10)

性別

不爲空

exam_reason

varchar(100)

考試理由

 

picture

varchar(100)

頭像url

 

  考試描述表如表3-4所示:

3-4 考試描述表exam_description

字段

數據類型

描述

註釋

id

int(11)

惟一性標識

主鍵自增

exam_description

varchar(100)

描述信息

不爲空

exam_time

int(10)

時間限制

單位:分鐘

  試題詳細信息表如表3-5所示:

3-5 試題詳細信息表questions

字段

數據類型

描述

註釋

id

int(11)

惟一性標識

主鍵自增

exam_description

int(10)

考試惟一性標識

外鍵

question

varchar(300)

題目描述

 

options

varchar(255)

題目選項

 

correct_asnswer

char(10)

正確選項

 

min_score

decimal(5)

分值

 

type

varchar(25)

題目類型

 

  考試記錄信息表如表3-6所示:

3-6 考試記錄信息表examrecord

字段

數據類型

描述

註釋

user_id

varchar(100)

考生惟一性id

外鍵

exam_description_id

int(11)

試題的惟一性id

外鍵

total_score

int(5)

試題總分

 

obtain_score

int(5)

考生得分

 

系統功能實現

  本系統的實現是基於B/S架構下的,服務器選用了Tomcat,使用與其配套的JSP Web技術實現了服務端的設計與開發,系統的開發主要是服務器端的開發。因爲系統中有大部分的操做是須要進行數據庫數據表的查詢、添加、修改和查詢,所以引用了JSTL來方便服務器端進行數據庫的業務邏輯處理。JSTLJavaServer Pages Standard Tag LibraryJSP標準標籤庫的縮寫。

4.1 服務器框架設計

  根據需求分析中角色的分配,本系統的實現內容可分爲了三份文件夾和登陸功能實現文件,其中三份文件夾命名爲AdministratorStudentsrcJava源文件,處理部分JSTL沒法實現的業務處理)。AdministratorStudentsrc文件夾和登陸功能實現文件具體的內容以下表4-14-24-34-4所示:

4-1 Administrator文件夾內容

文件

說明

AdministratorIndex.jsp

管理者角色的首頁

GradeStatistic.jsp

管理者角色的成績統計功能模塊實現

QuestionsManagement.jsp

管理者角色的試題管理功能模塊實現

StudentManagement.jsp

管理者角色的考生管理功能模塊實現

ModifyPassword.jsp

管理者角色的修改密碼功能模塊實現

4-2 Student文件夾內容

文件

說明

StudentIndex.jsp

考生角色的首頁

MyExam.jsp

考生角色的個人考試功能模塊實現

MyInformation.jsp

考生角色個人信息功能模塊實現

OnlineExam.jsp

考生角色在線考試功能模塊實現

ModifyPassword.jsp

考生角色的修改密碼功能模塊實現

4-3 src文件夾內容

文件夾

說明

Bean

考生在線考試題目存儲模型

Servlet

系統部分業務邏輯處理的控制

Util

公共的實用工具

4-4 登陸功能實現文件

文件

說明

Login.jsp

登陸頁面顯示

HandleLogin.jsp

處理登陸功能模塊實現

4.2 瀏覽器端框架設計

  瀏覽器端的功能實現採用目前流行的Web技術HTML5CSSJavaScript結合實現,其中HTML5負責瀏覽器的顯示內容,CSS負責界面的美化,JavaScript負責瀏覽器的提示操做提示信息。瀏覽器經過http請求發送到服務器端,服務器端Tomcat對收到的請求進行業務處理後做出響應,把響應的結果返回給瀏覽器供用戶查看。

4.3 登陸功能模塊的實現

  根據需求分析,系統的角色分爲管理者和考生,所以系統登陸功能模塊須要爲這兩個角色提供進入本系統的入口。登陸模塊的具體實現思想是取出輸入的用戶名、密碼與選擇的角色類型,依據角色類查詢數據庫服務器中對應的數據表中是否存在有與輸入用戶名和密碼相一致的記錄。若是有就重定向進入相應的管理頁面;若是沒有就攜帶失敗參數重定向到登陸頁面,由登錄頁面在加載時對參數的信息進行合理的信息提示。登陸模塊功能頁面、部分代碼實現及參數說明如圖4-14-2和表4-5所示:

 

 

4-5 具體的參數說明

參數

說明

${onlineexam}

數據庫鏈接

${user}

登陸功能頁面輸入的用戶名

${password}

登陸功能頁面輸入的密碼

${role}

登陸功能頁面選中的角色

message

瀏覽器提示信息

4.4 考生管理功能模塊的實現

  考生管理功能模塊包括對考生信息的增長、刪除、查看和修改,其中查看須要作分頁顯示,增長、刪除和修改都是對數據庫服務器數據的更新(修改時若是修改了考生ID除外),在此列舉修改時修改了考生ID和分頁顯示的具體實現。考生管理功能頁面如圖4-3所示:

 

4.4.1 修改時修改了考生ID

  修改考生信息時修改了考生的ID時須要完成的處理是先把新的考生ID和考生信息插入到數據庫服務器中,然在再把原考生ID的相關的記錄從數據庫服務器中刪除,插入操做和刪除操做都成功後攜帶成功參數重定向到考生管理頁面,由考生管理頁面在加載時對參數的信息作出提示信息的反饋;反之則攜帶失敗參數重定向。其部分的代碼實現以及參數說明如圖4-4和表4-6所示:

4-6 修改時修改了考生ID的參數說明

參數

說明

${onlineexam}

數據庫鏈接

${param.id}

功能頁面輸入的考生ID

${param.password}

功能頁面輸入的密碼

${param.name}

功能頁面輸入的姓名

${param.sex}

功能頁面輸入的性別

${param.reason}

功能頁面輸入的考試理由

${param.pre_id}

功能頁面修改以前的考生ID

${currentpage}

當前頁

message

瀏覽器提示信息

4.4.2 分頁顯示

  分頁顯示的關鍵在於計算出總頁數和實現頁面循環顯示,總頁數是根據記錄數與頁面的大小計算出來的,頁面循環顯示是控制當前頁出界後連接到第一頁或最後一頁,確保當前頁不會出界。其關鍵實現及其參數說明如圖4-五、4-6和表4-7所示:

4-7 分頁顯示的參數說明

參數

說明

${pageSize}

單個頁面顯示的記錄數

${totalRecord}

考生全部的記錄行數

${totalPage}

頁數

${currentPage}

當前頁

4.5 試題管理功能模塊的實現

  試卷管理功能模塊是提供給管理者發佈試題的使用。它包括試題模板的下載、試題的發佈和對已發佈試題的刪除。其功能頁面如圖4-7所示:

 

4.5.1 試題模板的下載

  試題模板的下載是事前準備模板文件放置在部署Web項目的文件中,當Tomcat服務器啓動後,使用客戶端的瀏覽器經過http請求,發送獲取資源的路徑給服務器,服務器對所請求的資源作出響應,而後瀏覽器就能夠與服務器進行傳輸文件鏈接完成試題模板的下載。

4.5.2 試題的發佈

  試題的發佈須要完成的處理有試題文件的上傳、試題文件的讀取和試題文件對應的數據庫表的更新。試題發佈用到的工具文件UploadFileUtil.javaReadExcelUtil.java文件說明如表4-8和表4-9所示:

4-8 UploadFileUtil.java的方法說明

方法名稱

參數

返回值

說明

uploadFileForm()

uploadPath, request

Map<String,String>

表單文件上傳

uploadFile()

uploadPath, request

String

文件上傳

4-8 ReadExcelUtil.java的方法說明

方法名稱

參數

返回值

說明

readExcelList()

filePath

List<List<String>>

讀取文件記錄

readExcel()

filePath

Workbook

獲取工做本

getCellFormatValue()

cell

String

取單元格值

  管理者選擇試題文件、輸入試題描述和時間限制單擊交卷後,提交給服務器調用處理uoloadFile()函數完成文件的上傳,而後再調用readExcelList()函數讀取excel文件,返回記錄excel文件記錄的集合。在調用readExcelList()函數中會使用readExcel()函數獲取excel文件的工做本,還會使用getCellFormatValue()函數獲取excel單元格的字符串型值,最後將上傳試題的信息插入到數據庫服務器的exams_description表,把讀取到的excel文件集合插入到數據庫服務器的questions表格。具體的業務流程如圖4-8所示:

 

4.5.3 已發佈試題的刪除

  已發佈試題的刪除是根據發佈試題的惟一性標識刪除數據庫服務器上考試記錄examrecord、試題記錄questions和試題描述記錄exams_descriotion,具體的代碼實現及參數說明如圖4-9和表4-9所示:

 

4-9 已發佈試題刪除的參數說明

參數

說明

${onlineexam}

數據庫鏈接

${param.exam_description_id}

試題描述的惟一標識

4.6 成績統計功能模塊的實現

  成績統計功能模塊包括已發佈試題的顯示選擇查詢已發佈的試題的成績統計和選擇查詢已發佈的試題中未參加這次試題考試的考生信息。其功能頁面如圖4-10所示:

 

4.6.1 已發佈試題的顯示

  已發佈試題的顯示是經過JSTL查詢數據庫服務器中記錄發佈試題信息的表exams_description來完成的,具體的業務流程圖4-11所示:

 

4.6.2 選擇查詢已發佈的試題的成績統計

  選擇查詢已發佈的試題的成績統計包括顯示已考考生的成績統計、詳細成績和未考考生的信息。其主要的實現是經過數據庫查詢語句查詢獲得結果,而後進行遍歷顯示結果集。詳細的SQL語句說明見圖4-十二、4-13和4-14所示:

 

  其中「?」表明參數,未參加這次試題考試的考生信息須要用到數據庫的聯合查詢,首先查詢本次考試未在記錄考試表examrecord的學生的id和未參加過考試的考生的id,而後根據查詢到的id聯合查詢學生users_information表的詳細信息做爲顯示。

4.7 修改密碼功能模塊的實現

  修改密碼功能模塊須要爲管理者和考生兩個角色提供修改密碼的功能,具體實現是經過更新數據庫服務器記錄用戶帳號信息的表usersAdministratorspassword字段。其功能頁面如圖4-15所示: 

4.8 在線考試功能模塊的實現

  在線考試功能模塊是提供給考生參加管理者發佈的試題的,其主要包括考生信息的顯示、瀏覽器端倒計時的顯示、試題題目的顯示、各個題目的導航、題目回答的業務處理以及交卷的業務處理六個內容。其中發佈試題的查看與管理者角色的成績統計模塊中的發佈試題的查看相似,所以在此再也不具體說明實現。在線考試模塊的功能頁面如圖4-16所示:

 

4.8.1 考生信息的顯示

  考生信息的顯示是根據考生的惟一性ID查詢數據庫服務器的users表,獲取獲得一條行記錄,而後輸出顯示。其具體業務流程如圖4-17所示:

 

4.8.2 瀏覽器端倒計時的實現

  瀏覽器端的計時器是用JavaScript的setInterval(function(),millionSecond)函數結合瀏覽器的session存儲功能實現的。其具體實現的流程圖如圖4-18所示:

 

4.8.3 試題題目的顯示

  試題題目的顯示是根據當前的題號,從試題集合中取出的一條行記錄顯示出來,其中選項須要以@符號分割,使用JSTLsplit()函數完成分割。具體的業務流程如圖4-19所示:

  

4.8.4 各個題目的導航

  各個題目的導航是經過html5<a></a>超連接標籤連接到須要的currentquestion題目索引中去,交給試題題目的顯示部分實現顯示。題目導航的顯示流程圖如圖4-29所示:

 

4.8.5 題目回答的業務處理

  題目回答的業務處理包括對選擇的答案以及試題分值與正確答案的記錄和對選擇了的答案的顯示。記錄選擇的答案以及存儲試題分值與正確答案須要提交給Servlet完成,而顯示選擇了的答案能夠直接在JSP文件中嵌套Java程序片斷輸出。其具體的業務流程圖如圖4-20所示:

  

4.8.6 交卷的業務處理

  交卷須要完成的業務處理是計算出試題的總分與考生做答的所得分數,而後更新數據庫服務器的記錄表。其具體的業務流程圖如圖4-21所示:、

 

4.9 個人信息功能模塊的實現

  個人信息功能模塊包括考生我的信息的顯示、自定義頭像的上傳和上傳頭像文件成功後的數據庫信息更新與原頭像文件刪除。其中自定義頭像的上傳與Excel試題文件的上傳處理的方式大體相同,在此再也不具體說明。個人信息模塊的功能頁面如圖4-22所示:

 

4.9.1 考生我的信息的顯示

  考生我的信息的顯示是經過JSTL根據考生的惟一性標識查詢數據庫服務器中表的記錄實現的,其具體的業務流程與在線考試功能模塊的考生信息顯示一致,在此再也不具體說明。

4.9.2 上傳頭像文件成功後的數據庫信息更新及原頭像文件刪除

  數據庫信息更新根據考生的惟一性標識執行的,原頭像文件的刪除須要先查詢數據庫中的記錄頭像url的信息,即查詢要比更新先執行。其具體的業務流程圖如圖4-23所示:

 

系統測試

5.1 測試環境

測試環境如表5-1所示:

5-1 測試環境表

環境設置

服務器設置

瀏覽器端配置

硬件配置

CPU:Intel 4790K

內存:16G

硬盤:1TB STAT

CPU:Intel 4790K

內存:16G

硬盤:1TB STAT

軟件配置

Windows10 操做系統

Tomcat9.0

MySQL5.7

Widdows10 操做系統

Chrome瀏覽器

Microsoft Edge瀏覽器

網絡環境

局域網

局域網

5.2 測試內容

系統測試內容主要包括兩個部分:

  • 系統功能測試

  系統的功能測試是測試系統可否在使用過程當中正常運行,數據可否正確的添加、修改、刪除和查詢,功能的輸入輸出可否正確的實現而且沒有發生錯誤。

  • 用戶體驗測試

  用戶體驗測試主要是針對系統功能的操做方式、頁面的佈局以及顯示方式、操做的提示信息等內容進行測試,確保系統的使用符合用戶的平常使用習慣,系統中的操做流程符合用戶的實際業務流程。

5.3 測試方案及結果

5.3.1 系統功能測試

  系統功能測試須要對系統各項功能的操做來驗證輸入、輸出的內容是否知足功能需求的要求,同時須要對數據輸入進行多方便測試,保證系統在任意條件下都可以正確運行。

登陸功能模塊測試結果見表5-2所示:

5-2 登陸功能模塊測試結果

編號

01

測試內容

登陸模塊提供的功能

一、 驗證用戶的合法性

二、 角色的選擇提供

三、 合法用戶導航到響應的系統頁面

四、 不合法用戶提示

預計結果

一、 可以判斷用戶輸入的密碼是否正確

二、 能根據提供的角色來驗證用戶合法性

三、 考生可進入考生管理頁面,管理者可進入管理者頁面

四、 不合法用戶提示「帳號或密碼錯誤」

測試結果

經過

  考生管理功能模塊測試結果見表5-3所示:

5-3 考生管理功能模塊測試結果

編號

02

測試內容

考生管理模塊提供的功能

一、 考生信息的查看、修改、添加和刪除

二、 考生信息的分頁顯示

預計結果

一、 能完成考生信息的查看、修改、添加和刪除

二、 修改和添加考生信息時考生的ID、密碼、姓名不能爲空

三、 分頁顯示能夠循環下一頁,也能夠跳轉到指定也

測試結果

經過

  試題管理功能模塊測試結果見表5-4所示:

5-4 試題管理功能模塊測試結果

編號

03

測試內容

試題管理模塊提供的功能

一、 試題模板的下載

二、 試題模板的上傳

三、 發佈試題的描述、時間限制

預計結果

一、 能提供試題模板的下載

二、 能對試題文件、描述和時間限制的合法性進行檢驗並提示

三、 發佈試題成功的提示

測試結果

經過

  成績統計功能模塊測試結果見表5-5所示:

5-5 成績統計功能模塊測試結果

編號

04

測試內容

成績統計模塊提供的功能

一、 已發佈考試的查看

二、 選擇查詢的考試成績統計

三、 已考考生的分數

四、 未考考生的信息

預計結果

一、 能看到全部發布的試題

二、 能根據發佈的試題查當作績統計

三、 能根據發佈的試題顯示已考學生的分數

四、 能根據發佈的試題顯示未考考生的信息

測試結果

經過

  修改密碼功能模塊測試結果見表5-6所示:

5-6 修改密碼功能模塊測試結果

編號

05

測試內容

修改密碼模塊提供的功能

一、 原密碼的顯示

二、 二次密碼的確認輸入

預計結果

一、 能修改密碼成功

二、 能以密碼的形式顯示原先的密碼

三、 能二次密碼的核對校驗

測試結果

經過

  在線考試功能模塊測試結果見表5-7所示:

5-7 在線考試功能模塊測試結果

編號

06

測試內容

在線考試模塊提供的功能

一、 考生信息顯示

二、 倒計時的顯示

三、 題目的顯示

四、 題目的導航

五、 交卷計算分數

預計結果

一、 能顯示考生的頭像、姓名、性別、考試理由等信息

二、 能有計時器,並在計時器時間爲0時自動交卷

三、 能有題目問題和選項的顯示

四、 能導航到本次考試的任意題目

五、 交卷後能統計出得分

測試結果

經過

  個人信息功能模塊測試結果見表5-8所示:

5-8 個人信息功能模塊測試結果

編號

07

測試內容

個人信息模塊提供的功能

一、 考生信息顯示

二、 考生頭像的上傳

預計結果

一、 能顯示考生的頭像、姓名、性別、考試理由等信息

二、 能自定義上傳頭像而且更新顯示

測試結果

經過

5.3.2 用戶體驗測試

  用戶體驗測試主要爲了保證各個功能頁面操做簡潔、方便而且有適當的提示信息反饋,頁面操做響應符合要求。

  用戶體驗測試結果見表5-9所示:

5-9 個人信息功能模塊測試結果

編號

08

測試內容

驗證界面是否美觀、操做是否簡單、關鍵操做是否有提示反饋信息

預計結果

一、 界面操做簡單易懂,操做方便

二、 頁面響應在2-4秒之內

測試結果

經過

總結

  本文主要介紹了基於B/S架構實現的在線考試系統的設計與實現,使用在線考試系統能夠解決傳統教學過程當中人工計分的繁瑣工做,減輕教育相關部門在教學考覈中的工做量,提升工做效率。通過一系列需求的分析和功能測試,本系統可以基本知足目前傳統教學中選擇題和判斷題的考覈任務。但本系統也存在一些不足的地方,如界面不夠美觀、未測試服務器是否能承受多用戶在線考覈等非功能需求。本在線考試系統還須要持續地完善和改進。

參考文獻

[1] 楊忠維.基於WebApp的醫學在線考試系統設計與實現[D]:[碩士學位論文].南京:東南大學,2018

[2] 耿祥義,張躍平.JSP實用教程[M].第3版.北京:清華大學出版社,2015.184-189

[3] 陳婉凌.HTML5+CSS+jQuery Mobile輕鬆構建APP與移動網絡[M].2版.北京:清華大學出版社,2016.118-138

[4] RUNOOB.JSP文件上傳[EB/OL]. https://www.runoob.com/jsp/jsp-file-uploading.html,無/2019-06-8

[5] 君臨-行者無界.Java解析Excel(xls,xlsx兩種格式)[EB/OL].

http://www.javashuo.com/article/p-yruweuqu-eb.html, 2017-07-29/2019-06-11

[6] 駕考一點通.在線仿真考試[EB/OL]. https://www.jsyks.com/kmy-fzks,無/2019-06-01

相關文章
相關標籤/搜索