考試監控及閱卷模塊的設計與開發畢業設計論文_第1頁
考試監控及閱卷模塊的設計與開發畢業設計論文_第2頁
考試監控及閱卷模塊的設計與開發畢業設計論文_第3頁
考試監控及閱卷模塊的設計與開發畢業設計論文_第4頁
考試監控及閱卷模塊的設計與開發畢業設計論文_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢畢 業業 設設 計計( 論論 文文) SMARTSMART 系統系統- - 考試監控及閱卷模塊的設計與開發考試監控及閱卷模塊的設計與開發 論文作者姓名:論文作者姓名: 申請學位專業:申請學位專業: 申請學位類別:申請學位類別: 指指導導教教師師姓姓名名(職職稱稱) : 論文提交日期:論文提交日期: SMARTSMART 系統系統 考試監控及閱卷模塊的設計與開發考試監控及閱卷模塊的設計與開發 摘摘 要要 Smart 在線考試評估系統(簡稱“SMART 系統”),是基于 Browser/Server(簡稱 B/S)結構的數據庫訪問模式,采用 Struts + Spring + Hibernate

2、 作為平臺搭建的框架開發的一套新型智能的遠程教育軟件。主要用 于各中小學的學生考試和教學評估。本論文設計作為 Smart 項目的一個組成部 分,主要實現了考試過程監控和客觀題的自動閱卷功能。論文首先介紹了設計 中所涉及到的項目背景、開發技術,并構建了系統的總體框架;其次根據中小 學的實際情況和遠程教育軟件項目的需求,詳細地進行了數據庫設計和系統功 能模塊設計,制定了各功能模塊的流程圖;然后采用 JAVA 編程語言對本論文的 設計任務進行編碼,并最終實現了對考試過程的監控和對客觀題的自動閱卷等 功能。通過本模塊的應用,可以滿足 SMART 系統的在線考試部分需求,對 SMART 系統的應用和發展

3、起到一定的促進作用。 關鍵詞關鍵詞:Hibernate;在線考試;考試監控;閱卷 The SMART System Design and Implementation The Module of The Examination Controls and Paper Inspection Abstract Smart online examination and evaluation system, as SMART System for short; is a kind of the intelligent long-distance education software which is d

4、eveloped by the framework of the Struts + Spring + Hibernate. This system will be used mainly in the middle and primary schools for examination and evaluation. As the part of the system, it has mainly realized some functions, controlling the course of examination and looking over the papers automati

5、cally. First, the thesis introduces the background of the project and the technology that involved in the project, and the construction of the developing platform by according to the actual conditions of the elementary school and middle school. Second, according to the actual conditions of the middl

6、e schools and primary schools and the demand of the long-distance education software project, the thesis describes the designation of the database and the module of systematic function in details, and then makes the flow diagram of every function module; and then based upon JAVA language to program.

7、 At last the system provides the function of the examination controls and the automatic objective questions inspection. By this module applying, it may satisfy the Smart system demand, and promote the Smart system development. Key words: Hibernate; online examination; examination controls; paper ins

8、pection 目目 錄錄 論文總頁數:23 頁 1引言.1 1.1課題背景.1 1.2課題目的.1 1.3課題意義.1 2系統總體設計.1 2.1系統構架及其相關技術介紹.1 2.2開發環境及相關技術介紹.5 3系統需求分析.7 3.1考試監控模塊需求分析.7 3.2閱卷模塊需求分析.8 4系統數據庫設計.8 4.1考試監控模塊數據庫設計.8 4.2閱卷模塊數據庫設計.10 5系統功能設計及實現.11 5.1考試監控模塊設計及實現.11 5.2閱卷模塊設計及實現.17 6系統測試.19 結 論.20 參考文獻.21 致 謝.22 聲 明.23 1 1 引言引言 1.11.1 課題背景課題背景

9、 隨著計算機軟硬件和互聯網的發展,將傳統的教育產業信息化成為可能。 但是目前學校與社會上的各種考試大都采用傳統的考試方式,在此方式下,組 織一次考試至少要經過五個步驟,即人工出題、考生考試、人工閱卷、成績評 估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師 的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情, 可以說傳統的考試方式已經不能適應現代考試的需要。所以擁有一套實用、完 善、高效的在線考試評估系統越來越顯的重要。這樣能更好的方便學校對教學 質量的管理,降低成本,提高效率。 1.21.2 課題目的課題目的 根據目前中小學的具體情況,設計一套符合他們的

10、高效智能的在線考試評 估系統(SMART 在線考試系統) ,并為學校、主管部門教學評估、教學質量控制 提供決策依據。本課題主要實現該系統的部分功能考試監控及對客觀題的 自動閱卷,從而減輕了老師的工作量。把更多的精力放入到對學生的教育中。 1.31.3 課題意義課題意義 SMART 在線考試評估系統(簡稱“SMART 系統” )目的是為中小學提供一個 公正客觀的在線考試、在線評估的智能化平臺。考試監控及對客觀題的自動閱 卷的設計,主要是能夠讓老師平時繁瑣的閱卷以及對整個考試過程的管理中解 脫出來,把更多的精力投入到對學生的教育中來;從而大大提高工作效率。與 此同時也提高了考試的質量,從而使考試更

11、趨于公正、客觀,更加激發學生的 學習興趣。 2 2系統總體設計系統總體設計 2.12.1 系統構架系統構架及其相關技術介紹及其相關技術介紹 .1 系統構架系統構架 本系統是基于 Browser/Server(簡稱 B/S)結構的數據庫訪問模式,在 struts + spring 管理的 hibernate 作為平臺框架搭建具體的 Smart 在線考試 評估系統。 采用 struts MVC 框架主要用于將 Smart 的數據流和業務流分開,采用 hibernate,主要用于更高效率對數據庫存取效率及提高項目開發效率。采用 spring 管理的 hibernate 主要是獲得 S

12、pring 對 Hibernate 的支持,獲得更高 的開發效率和更高的 Hibernate 操作性能。并能獲得 Spring 相關的事務支持。 之所以不完全用 Spring 框架是考慮項目組的技術水平可能不足以完全駕馭這樣 的框架規范。所以本系統不屬于標準的 Struts + Spring + Hibernate 的標準 J2EE 應用。 對于 Hibernate 的數據庫 IO 操作,將采用 DAO 模式將操作封裝至 DAO 對象 中。而將建立專門的業務層,對 WEB 層及其他子模塊或類進行接口。 如圖 2-1 所示: 圖 2-1系統框架結構圖 .2 相關技術介紹相關技術介

13、紹 三層 B/S 結構介紹 B/S 結構是真正的三層結構,它以訪問 WEB 數據庫為中心,HTTP 為傳輸協 議,客戶端通過瀏覽器(Browser)訪問 WEB 服務器和與其相連的后臺數據庫,我 們稱之為 B/S(Browser/Server)模式。其三級結構組成如圖 2-2 所示: 圖 2-2B/S 三層結構圖 圖中從左到右,分為三個層次: 第一層是客戶端即瀏覽器,主要完成客戶和后臺的交互及最終查詢結果的 輸出功能。在客戶端向指定的 Web 服務器提出服務器請求,Web 服務器用 HTTP 協議把所需文件資料傳給用戶,客戶端接受并顯示在 WWW 瀏覽器上; 第二層 Web 服務器是功能層,完

14、成客戶的應用功能,即 Web 服務器接受客 戶請求,并與后臺數據庫連接,進行申請處理,然后將處理結果返回 Web 服務 器,再傳至客戶端; 第三層數據庫服務器是數據層。數據庫服務器應客戶請求獨立地進行各種 處理。 與傳統的 C/S 模式相比,B/S 結構把處理功能全部移植到了服務器端,用 客戶端 WEB 服務器后臺數據庫 客戶端 戶的請求通過瀏覽器發出,無論是使用和數據庫維護上都比傳統模式更加經濟 方便。而且使維護任務層次化:管理員負責服務器硬件日常管理和維護,系統 維護人員負責后臺數據庫數據更新維護。 由以上的分析可知,三層結構也可以理解為增加 WEB 服務器的 C/S 模式。 Struts

15、 Struts is 是 Apache Jakarta 項目的一部分,它用 Java Servlet/JavaServerPages 技術,開發 Web 應用程序的開放源碼的 framework。 Struts 有如下的主要功能: 1. 包含一個 controllerservlet,能將用戶的請求發送到相應的 Action 對象。 2. JSP 自由 tag 庫,并且在 controllerservlet 中提供關聯支持,幫助 開發人員創建交互式表單應用。 3. 提供了一系列實用對象:XML 處理、通過 JavareflectionAPIs 自 動處理 JavaBeans 屬性、國際化的提示和

16、消息。 Struts 項目的目標是為創建 Java web 應用提供一個開放源代碼的 framework。Struts framework 的內核是基于例如 Java Servlets, JavaBeans, ResourceBundles, 和 XML,以及各種 Jakarta Commons 包的標準技術的靈活 的控制層。 Struts 提供了它自身的控制器組件,并整合了其他技術,以提供模型和視 圖。對于模型,同大多數的第三方軟件包一樣,如 Hibernate, iBATIS, 或者 Object Relational Bridge,Struts 能夠和標準數據連接技術相結合,如 JDBC

17、 和 EJB。對于視圖,Struts 與 Java Server Pages 協同工作,包含 JSTL 和 JSF。 Spring Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring 模塊 構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖 2-3 所示: 圖 2-3Spring 框架的 7 個模塊圖 組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一 個或多個模塊聯合實現。每個模塊的功能如下: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組 件是 BeanFactory,它是工廠模式的實現。Bea

18、nFactory 使用控制反轉(IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。 Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供 上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際 化、校驗和調度功能。 Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編 程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的 任何對象支持 AOP。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供 了事務管理服務。通過使用 Spring

19、 AOP,不用依賴 EJB 組件,就可以將聲明 性事務管理集成到應用程序中。 Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結 構來管理異常處理和不同數據庫供應商拋出的錯誤消息。異常層次結構簡化了 錯誤處理,并且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接) 。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。 Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的 對象關系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵 從 Spring 的

20、通用事務和 DAO 異常層次結構。 Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為 基于 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到 域 對象的工作。 Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。通過策略接口,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技 術,其中包括 JSP、Velocity、Tiles、iText 和 POI。 Hibernate Hibernate 是一個開放源代碼的

21、對象關系映射框架,它對JDBC 進 行了非常輕量級的對象封裝,使得Java 程序員可以隨心所欲的使用對 象編程思維來操縱數據庫。 Hibernate 可以應用在任何使用JDBC 的 場合,既可以在Java 的客戶端程序實用,也可以在Servlet/JSP 的 Web 應用中使用,最具革命意義的是,Hibernate 可以在應用 EJB 的 J2EE 架構中取代 CMP,完成數據持久化的重任。 2.22.2 開發環境及相關技術介紹開發環境及相關技術介紹 .1 開發環境開發環境 本設計主要運用 JSP 語言、Hibernate、Struts 等知識,在 Window Xp 的 環境

22、下,采用 SQL Server2000 數據庫,用 Eclipse3.2 + MyEclipse5.0 + Tomcat5.5 + j2sdk1.5 搭建 J2EE 開發環境進行開發。 .2 相關技術介紹相關技術介紹 JSP 介紹 JSP(Java Server Pages)是由 Sun Microsystems 公司倡導、許多公司參與 一起建立的一種動態網頁技術標準,其網址為 http:/ HTML 文件 (*.htm,*.html)中加入 Java 程序片段(Scriptlet)和 JSP 標記(tag),就構成了 JSP 網頁(*.jsp)。Web 服務器在遇到訪問 JS

23、P 網頁的請求時,首先執行其中的 程序片段,然后將執行結果以 HTML 格式返回給客戶。程序片段可以操作數據庫、 重新定向網頁以及發送 email 等等,這就是建立動態網站所需要的功能。所有 程序操作都在服務器端執行,網絡上傳送給客戶端的僅是得到的結果,對客戶 瀏覽器的要求最低,可以實現無 Plugin,無 ActiveX,無 Java Applet,甚至 無 Frame。 SQL Server2000 介紹 SQL Server 2000 是建立在 SQL Server 7.0 在可伸縮性、可用性、可管 理性和數據倉庫成功的基礎上,并且引入了針對電子商務的重要新功能。 在高性能和企業級可伸縮

24、性領域,SQL Server 2000 設計成利用 Windows 2000 對更多處理器、更大的系統內存的支持,最終達到支持 64 位硬件平臺。 在不斷提升可用性的努力過程中,SQL Server 2000 采用 Windows 2000 四路 群集,提供了大大改進的群集支持。SQL Server 7.0 已經在可管理性和易用性 方面在行業內領先,SQL Server 2000 通過與 Windows 2000 活動目錄緊密結 合進一步改進了這些功能。而且,SQL Server 2000 還包含對現有管理工具和 實用程序的重大改進,并引入更具自我調節和自我管理的引擎功能。 通過與 OLAP

25、服務、數據轉換服務、存儲庫和英文查詢的緊密結合,SQL Server 7.0 代表了行業內最全面的數據倉庫和決策支持平臺。SQL Server 2000 繼續了這種創新,在整個系統內進行了重要的改進。特別重要的是,SQL Server 2000 關系引擎增加了實質化的視圖,改善了在特大型數據庫環境中執 行復雜查詢的性能。同時,SQL Server 2000 引入了新的數據挖掘功能,可自 動發現在大量數據之間隱藏的關系并可基于歷史數據做出預測。這些數據挖掘 功能將要實施,以向最終用戶隱藏這種尖端技術的復雜性,并允許開發人員將 第三方的數據挖掘產品輕松集成進客戶的應用程序中。最后,在電子商務領域,

26、 SQL Server 2000 高度集成了對 XML 和通過 Web 訪問數據庫的支持。 SQL Server 2000 按照設計可以為部署和維護強大的、易于管理、支持商 務活動的 Web 站點提供最好的性能,這些站點可以從事商家和商家之間或商家 與客戶之間的交易。在尋求一個支持您的電子商務解決方案的數據庫時,需要 考慮的項目包括:可用性、性能、可管理性和價格。 Eclipse 介紹 Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發平臺。就其本身 而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。幸運的 是,Eclipse 附帶了一個標準的插件集,包括 Java

27、開發工具(Java Development Tools,JDT) 。 雖然大多數用戶很樂于將 Eclipse 當作 Java IDE 來使用,但 Eclipse 的目標不僅限于此。Eclipse 還包括插件開發環境(Plug-in Development Environment,PDE) ,這個組件主要針對希望擴展 Eclipse 的軟件開發人員, 因為它允許他們構建與 Eclipse 環境無縫集成的工具。由于 Eclipse 中的每 樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統一的集 成開發環境而言,所有工具開發人員都具有同等的發揮場所。 這種平等和一致性并不僅限

28、于 Java 開發工具。盡管 Eclipse 是使用 Java 語言開發的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C+、COBOL 和 Eiffel 等編程語言的插件已經可用,或預計會推出。 Eclipse 框架還可用來 作為與軟件開發無關的其他應用程序類型的基礎,比如 內容管理系統。 基于 Eclipse 的應用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它構成了 IBM Java 開發工具系列的基礎。例如,WebSphere Studio Application Developer 添加了對 JSP、servlet、EJB、XML、

29、Web 服 務和數據庫訪問的支持。 MyEclipse 介紹 MyEclipse 企業級工作平臺(MyEclipse Enterprise Workbench ,簡稱 MyEclipse)是對 Eclipse 3.0 IDE 的擴展,利用它我們可以在數據庫和 J2EE 的開發、發布,以及應用程序服務器的整合方面極大的提高工作效率。 Tomcat 介紹 Tomcat 是一個免費的開源的Serlvet 容器,它是 Apache 基金會的 Jakarta 項目中的一個核心項目,由Apache,Sun 和其它一些公司及個 人共同開發而成。由于有了Sun 的參與和支持,最新的Servlet 和 Jsp

30、規范總能在 Tomcat 中得到體現。 j2sdk 介紹 J2SDK=JDK+JRE,J2SDK(Java 2 Software Development Kit) JAVA2 軟 件開發工具包,包括了 Java 編譯器和 Java 虛擬器。 3 3系統需求分析系統需求分析 需求分析是一切工作的基礎,他告訴我們將要做什么。只有當了解了所需 要做的任務后,才能對整個系統進行設計。 本課題主要實現 SMART 在線考試系統的部分功能-考試過程的監控及對客 觀題的自動閱卷。 3.13.1 考試監控模塊需求分析考試監控模塊需求分析 考試監控模塊的設計,主要是實現對學生參加考試的整個過程的設計及老 師對學

31、生考試的監視與控制,包括查看學生信息,改變學生考試狀態等。 學生要參加考試,必須根據學生的相關信息(如班級,學號,姓名等)以及當 前的服務器時間,來查找該生有權限參加的考試信息并顯示在頁面上。學生通過 點擊相應的考試,進入到該門考試的答題界面。為了確保考試的有效性和安全 性,系統必須設定一下規則: (1).只有學生才能參加考試。 (2).學生在考試過程中,不能同時進行其他課程的考試。 (3).對學生來說,每一門考試只允許考一次;如果已經交卷,系統將會禁 止其重新進行考試。如果需要進行補考或者重考,教師可以另外設置一份考卷, 讓學生進行考試。 為防止相鄰學生之間可能會出現作弊的情況,要求在學生答

32、題界面生成的 題目要隨機排序。并且答題頁面要禁止實用復制和右鍵功能。考慮到學生答題 過程中有可能會出現斷線、死機、電腦故障等問題或者是要返回已經做過的題 目,要實現對學生做了的題目答案進行實時保存。當學生要查看已經做過的題 目時,要把題目的答案回調在頁面上。 監控端主要涉及到對學生考試過程的管理。學生登陸系統時,要判斷其是 遲到還是由于考試過程中異常情況而重登陸。如果是遲到,則該生的考試時間 不推遲,如果是由于考試過程中發生異常情況而造成的重登陸,則需要將學生 在重登陸系統所浪費的這個時間補償給學生。 學生登陸系統時,都要將信息提交到監控端。監考老師可以通過監控頁面 直觀地看出學生的狀態,并且

33、可以改變其中的一個或多個學生的考試狀態(如重 新考試,結束考試等),改變狀態后,學生考試界面要出現相應的提示信息。 3.23.2 閱卷模塊需求分析閱卷模塊需求分析 傳統的手工改卷,工作量既繁重又低效,出錯的幾率比較高。為了使學生 的考試更加趨向于公平公正,本模塊主要實現對客觀題的自動閱卷(如判斷題、 多選題、單選題等) ,來代替傳統的老師手工該卷。在學生主動提交考卷、老師 強制提交或者是考試結束時間到了自動提交后,要對學生當前的考試進行系統 自動閱卷,并統計出學生的各項大題分數和總分,為后面的評估做好基礎。 學生考試結束后,如果試卷的組成都是客觀題,則學生可以馬上查看自己 的得分。 4 4 系

34、統數據庫設計系統數據庫設計 數據庫設計也是一個很重要的環節。設計一個合理的數據庫,能夠讓程序 員在寫代碼的時候有很強的邏輯性,而不再為了理清數據庫表間的關系浪費大 量的時間和精力。在以后的系統運行中,數據庫也擔當著重要的角色,不合理 的數據庫往往是成為一個系統的瓶頸。 4.14.1 考試監控模塊數據庫設計考試監控模塊數據庫設計 此模塊主要涉及到的數據庫表有如下幾張: 學生用戶表: 表 4-1學生用戶表(SMART_STUDENT) 學生用戶表 SMART_STUDENT 字段名稱數據類型是否是主鍵是否是外鍵是否可 NULL備注 Student_idDECIMAIL(18,0)YESNONO 自

35、增 ID Student_noVARCHAR(50)NONONO 學生 NO UinVARCHAR(20)NONONOUIN student_nameVARCHAR(50)NONONO 學生姓名 Province_noVARCHAR(50)NONOYES 省 city_noVARCHAR(50)NONOYES 市 county_noVARCHAR(50)NONOYES 區/縣 ref_school_noVARCHAR(50)NONOYES 學校 ref_grade_noVARCHAR(50)NONOYES 年級 ref_class_noVARCHAR(50)NONOYES 班級 Registe

36、r_idBIGINTNONOYES 注冊時的用戶 ID TelVARCHAR(20)NONOYES 聯系電話 e_mailVARCHAR(50)NONOYES E_Mail 地址 addressVARCHAR(100)NONOYES 地址信息 register_dateDATETIMENONOYES 注冊時間 record_numberINTEGERNONONO 版本控制 remarkVARCHAR(100)NONOYES 備注 班級表: 表 4-2班級表(smart_class) 班級表 smart_class 字段名稱數據類型是否是主鍵是否是外鍵是否可 NULL備注 class_idUNI

37、QUEIDENTIFIERYESNONO 全球唯一碼 Class_nameVARCHAR(50)NONONO 班級名字 class_noVARCHAR(50)NONONO 班級編號 class_noVARCHAR(2500)NONOYES 班級描述 lengthINTEGERNONOYES 編號長度 lastclass_noVARCHAR(50)NONOYES 上一級別編號 ruleclass_nameVARCHAR(50)NONOYES 設置的名稱 lastnameVARCHAR(50)NONOYES 上級別名稱 nextnameVARCHAR(50)NONOYES 下級別名稱 record

38、_numberINTEGERNONONO 版本控制 RemarkVARCHAR(100)NONOYES 備注 考試監控表: 表 4-3考試監控表(smart_exam_control) 考試監控表 smart_exam_control 字段名稱數據類型是否是主鍵是否是外鍵是否可 NULL備注 control_idUNIQUEIDENTIFIERYESNONO全球唯一碼 exam_nameVARCHAR(1000)NONONO考試名稱 student_noVARCHAR(50)NONONO學生 NO student_nameVARCHAR(20)NONONO學生姓名 class_noVARCHA

39、R(50)NONONO學生所在班級號 IpVARCHAR(50)NONOYES登陸 IP student_stateVARCHAR(20)NONONO學生狀態 now_timeDARETIMENONONO寫入時間 start_timeDARETIMENONONO考試開始時間 end_timeDARETIMENONONO考試結束時間 exam_delayDARETIMENONONO考試時長 landing_timeDARETIMENONONO登陸考試時間 submit_timeDARETIMENONONO提交考試時間 exam_tateVARCHAR(50)NONONO考試狀態 record_n

40、umberINTEGERNONONO版本控制 RemarkVARCHAR(100)NONOYES備注 4.24.2 閱卷模塊數據庫設計閱卷模塊數據庫設計 此模塊主要涉及到的數據庫表有: 考試臨時表: 表 4-4考試臨時表(temp_smart_exam) 考試臨時表 temp_smart_exam 字段名稱數據類型 是否是主 鍵 是否是外 鍵 是否可 NULL 備注 Exam_temp_idUNIQUEIDENTIFIERYESNONO 全球唯一 碼 exam_paper_noUNIQUEIDENTIFIERNONONO 試卷號 exam_paper_question_noVARCHAR(50

41、)NONONO 試題號 exam_nameVARCHAR(50)NONONO 考試名 稱 student_noVARCHAR(50)NONONO 學生 NO student_nameVARCHAR(20)NONONO 學生姓名 AnswerVARCHAR(50)NONOYES 試題答案 record_numberINTEGERNONONO 版本控制 RemarkVARCHAR(100)NONOYES 備注 考試結果表: 表 4-5考試結果表(smart_exam_result) 考試結果表 smart_exam_result 字段名稱數據類型 是否是 主鍵 是否是 外鍵 是否可 NULL 備注

42、 smart_exam_result_idUNIQUEIDENTIFIERYESNONO 全球唯一碼 exam_paper_noUNIQUEIDENTIFIERNOYESNO 試卷號 exam_paper_question_noUNIQUEIDENTIFIERNOYESNO 試題號 exam_nameVARCHAR(50)NONONO 考試名稱 student_noUNIQUEIDENTIFIERNOYESNO 學生 NO student_nameVARCHAR(20)NONONO 學生姓名 AnswerVARCHAR(50)NONOYES 試題答案 Is_rightINTEGERNONOYE

43、S 是否正確 ScoreFLOATNONOYES 試題得分 record_numberINTEGERNONONO 版本控制 RemarkVARCHAR(100)NONOYES 備注 考試結果統計表: 表 4-6考試結果統計表(smart_exam_stat_result) 考試結果統計表 smart_exam_stat_result 字段名稱數據類型 是否是 主鍵 是否是 外鍵 是否可 NULL 備注 smart_exam_stat_result_idUNIQUEIDENTIFIERYESNONO 全球唯 一碼 exam_paper_noUNIQUEIDENTIFIERNOYESNO 試卷號

44、exam_nameVARCHAR(50)NONONO 考試名 稱 student_noUNIQUEIDENTIFIERNOYESNO 學生 NO student_nameVARCHAR(20)NONONO 學生姓 名 Single_choice_scoreFLOATNONoYES 單選題 得分 multi_choice_scoreFLOATNONOYES 多選題 得分 judgement_scoreFLOATNONOYES 判斷題 得分 score_totalFLOATNONOYES 總分 record_numberINTEGERNONONO 版本控 制 RemarkVARCHAR(100)N

45、ONOYES 備注 5 5 系統功能設計及實現系統功能設計及實現 5.15.1 考試監控模塊設計及實現考試監控模塊設計及實現 考試監控模塊的設計,是指對整個考試過程及考試過程中發生的一些事件 進行監視和控制。總體流程如下: 1. 學生在點擊參加考試后,通過對學生所在的班級 NO 的判斷,查找出所 有該班有權限參加的考試,再通過發卷時間與服務器當前時間的比對, 在頁面上顯示出符合該生的考試信息。 圖 5-1學生考試信息圖 主要實現代碼: 通過用戶登陸時寫入 Session 的用戶類型,判斷是否是學生用戶。如果是, 則通過用戶 ID 查找到該用戶對應的班級 NO,再通過班級 NO 查找對應的符合該

46、 班級的考試信息。 /得到用戶登陸是存在Session中的用戶類型及用戶ID Authorization user = (Authorization)request.getSession().getAttribute(Constants.USER_KEY); /用戶ID Long userId = user.getLoginInfo().getUserId(); /用戶類型 String userType = user.getLoginInfo().getType(); Map params = new HashMap(); SmartStudent entity = null; /判斷該用戶

47、如果是學生類型,則將userID傳到后臺,通過SmartStudent試題得 到相關學生信息 if(userType.equals(UserType.STUDENT) params.put(stuId, userId); entity = (SmartStudent) this.call(new Carrier(params, BusinessConstants.PCM_USER_BUSINESS, LoadStudent); /得到學生所在班級NO String classNo = entity.getClassNo(); params = new HashMap(); /通過班級NO查找符

48、合該班的考試信息 params.put(classNo, classNo); List result = (List) this.call(new Carrier(params, BusinessConstants.EXAM_OPTION_BUSINESS, SearchExam); 比對服務器時間與考試發卷時間及考試結束時間,如果服務器時間早于發 卷時間或者遲于考試結束時間,則不顯示該門的考試信息。 /調用DatetimeGap(String headDatetime, String tailDatetime)函數,返回兩個日期時 /間字符串之間的差,日期尾減日期頭,以秒為單位。 如果值為負

49、數,說明日*期頭大于日 /期尾,返回的格式為“long”。 SmartExam smartExam = (SmartExam)result.get(i); /得到考試發卷時間 String sendTime = smartExam.getSendTime().toString(); /得到考試結束時間 String endTime = smartExam.getEndTime().toString(); /格式化時間 DateFormat time = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); /獲取服務器當前時間 String nowTime =

50、time.format(new Date(); headDatetime - 日期頭 格式為1999-10-10 12:12:12 tailDatetime - 日期尾 格式為1999-10-10 12:12:12 /將當前時間與考試發卷時間比較 long send = DateUtil.getDatetimeGap(sendTime.toString(),nowTime.toString(); /將當前時間與考試結束時間比較 long end = DateUtil.getDatetimeGap(endTime.toString(),nowTime.toString() ; if(send 0

51、) else /如果當前時間在發卷時間和考試結束時間內,則將smartExam內的元素寫入到resultList resultList.add(smartExam); /寫入session request.getSession().setAttribute(resultList, resultList); 2.學生通過點擊對應的考試進入考試界面(此時將學生的信息,如姓名、 學號、登陸時間、登陸 IP 等寫入監控表) ,進行答題。 圖 5-2學生考試答題圖 學生考試過程中要定時的獲取服務器時間(比如 10 秒),再將該時間寫入監 控表,服務器端也要每隔一段時間去讀取監控表內的該時間,如果該時間很

52、久 沒有刷新,則說明此時考試端可能出現了異常情況(如掉線、死機等) 。這樣就 方便管理員去管理學生考試。流程圖如下: 用戶考試端獲取服務器時間并寫監控表流程圖: 用戶考試端 是否在考試時間 內 讀取服務器時 間 YES NO考試結束 開始考試 寫入監控表 圖 5-3用戶考試端獲取并寫監控表流程圖 用戶監控端讀取監控表流程圖: 用戶監控端 讀取監控表 是否在考試時間 內 YES NO考試結束 開始監控 返回處理結 果 圖 5-4用戶監控端讀取監控表流程圖 3. 監控端監考老師可以選擇一個或多個班級進行監控。通過選擇班級后, 將這些班級的所有參加當前考試的學生信息羅列出來,監考老師可以對學生進 行

53、相應的操作。 具體實現: 監考老師可以直接選擇要監控的班級,或者也可以通過年級查詢先過濾一 些年級再進行操作。點擊確定后跳到對應班級的所有學生的監控頁面。 圖 5-5用戶監控端班級列表圖 監考老師可以實時獲得各個學生的考試狀態。也可以對某個或多個學生進 行對應的考試操作,如讓他們重新考試或者是結束考試等。 圖 5-6用戶監控端監控頁面圖 用戶監控端改變考試狀態流程圖: 用戶監控端 是否在考試時間 內 YES YES NO 是否改變學生考 試狀態 NO 考試結束 寫入監控表 開始監控 圖 5-7用戶監控端改變考試狀態流程圖 用戶考試端獲取考試狀態流程圖: 用戶考試端 讀取監控表 是否在考試時間

54、內 YES NO 狀態是否改變 YES NO 返回處理結果 考試結束 開始考試 圖 5-8用戶考試端獲取考試狀態流程圖 具體實現方法: /創建 XMLHttpRequest 類 var xmlHttp; function createXMLHttpRequestObject() if(window.ActiveXObject) xmlHttp=new ActiveXObject(Microsoft.XMLHTTP); else if(window.XMLHttpRequest) xmlHttp=new XMLHttpRequest(); /向服務器發送請求 function startRequ

55、est(url,functionName) /url 為要執行的在 action 中的更新方法 var url = /examPageAction.do?action=update; createXMLHttpRequestObject(); /發送請求后的回調函數 / getExamState為我要調用的javascript函數名(主要實現對各種狀態的處理) xmlHttp.onreadystatechange=getExamState; xmlHttp.open(GET,url,true); /發送請求并異步執行 xmlHttp.send(null); /實現的 javascript 代碼

56、 function getExamState() if (xmlHttp.readyState = 4 var state = examState0.firstChild.nodeValue; /對不同的狀態進行不同的操作 if(state = kaoshizhong) if(state = kaoshihou) if(state = kaoshiqian) /定時調用該函數,時間單位為毫秒 window.setInterval(startRequest(), 10000); 如老師禁止學生考試,則在學生考試端顯示相關的信息。學生確認消息后 則自動退出當前考試。 圖 5-9用戶考試端 狀態被改

57、變后的答題頁面 5.25.2 閱卷模塊設計及實現閱卷模塊設計及實現 在學生主動提交考卷、老師強制提交或者是考試時間到了自動提交后,對 存在考試臨時表內的學生試題信息進行判斷,并將結果存入到考試結果表中。 最后將分數進行統計存到考試結果統計表中。 其中涉及到的表主要有 3 張:考試臨時表,考試結果表和考試結果統計表。 關系如圖 5-10 所示: 圖 5-10 閱卷相關表與其他表間的關系圖 自動閱卷流程如圖 5-11 所示: 考試結果統 計表 考試結果表考試臨時表自動閱卷分數統計開始閱卷結束閱卷 圖 5-11 閱卷流程圖 具體實現: . /構造實體類 public class SmartExamT

58、emp extends PersistenceObject implements Audit, java.io.Serializable /接口 public class SmartExamTempImpl extends AbstractDAO implements SmartExamTempDAO public List search(String no) /在 Business 中調用 public class SmartExamTempBusiness extends BaseBusiness public Object process search(Carrier vo) /在 ac

59、tion 中調用 public class ExamControlAction extends BaseAction public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception . this.call(new Carrier(map2, BusinessConstants.PAPER_CHECK_BUSINESS, SavePaperResult); . . 6 6系統測試系

60、統測試 依據上述分析和設計資料,經過多次測試,已完成系統所需的功能。系統 截圖參考上面系統功能設計部分。 單元測試:在開發系統的過程中,對所有代碼的正確性和邏輯行得到一定 的檢驗,暫時看來不存在大的錯誤。單元測試就是指為了確保我們的軟件在運 行過程中的正確無誤。 單元測試任務包括: 模塊接口測試、數據庫連接測試等。 本系統的單元測試中,使用了 Eclipse 作為測試工具。在測試過程中,我 們要對每一個類實現的方法編寫一個相應的測試方法。例如下面一個簡單方法 的用例。 public class ExamOptionImpl extends AbstractDAO implements Exam

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論