




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、*大學(xué) 畢 業(yè) 論 文(設(shè)計(jì)) 題 目:基于 java 在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 姓 名: 學(xué) 院: 理學(xué)與信息科學(xué)學(xué)院 專 業(yè): 通信工程 班 級: 學(xué) 號: 指導(dǎo)教師: 年 月 日 目錄 摘要.i abstract: .ii 第一章引言.1 1.1 課題背景.1 1.2 課題的目的和意義.1 1.3 對于該項(xiàng)目的描述.1 1.4 系統(tǒng)設(shè)計(jì)思想.2 1.5 可行性分析.3 第二章 系統(tǒng)設(shè)計(jì)相關(guān)技術(shù)介紹及開發(fā)環(huán)境要求.3 2.1mvc 模式的介紹.4 2.1.1mvc 模式的概述 .4 2.1.2mvc 的強(qiáng)勢與劣勢 .4 2.2 java 組件 javabeans.4 2.2.1 什么是 j
2、avabeans.4 2.3 javase 概述.4 2.4 關(guān)于 struts.5 2.4.1 struts簡介.5 2.4.2 struts的主要功能.5 2.4.3 struts工作原理.5 2.5 關(guān)于 swing.6 2.5.1 swing簡介.6 2.5.2 為什么需要 swing.6 2.5.3 swing帶給我們什么.7 2.6 關(guān)于開發(fā)環(huán)境的概述.7 2.6.1 操作系統(tǒng) .7 2.6.2 開發(fā)語言 .7 2.6.3 開發(fā)環(huán)境 .8 2.7 關(guān)于布局的概述.8 2.7.1borderlayout.8 2.7.2flowlayout.8 2.7.3gridlayout和 gri
3、dbaglayout.8 2.8 小結(jié).9 第三章系統(tǒng)需求分析和總體設(shè)計(jì).9 3.1 系統(tǒng)功能需求.9 3.2 系統(tǒng)設(shè)計(jì)的總體框架.10 3.2.1 軟件層次結(jié)構(gòu) .10 3.2.2 界面與控制器的關(guān)系 .10 3.2.3 業(yè)務(wù)層介紹 .10 3.2.4 數(shù)據(jù)層介紹 .11 3.3 系統(tǒng)的用例圖.11 3.3.1 總體用例分析.11 3.3.2 用戶管理用例分析.12 3.3.3 考試管理用例分析.12 3.3.4 考試題目管理用例分析.13 3.3.5 成績管理用例分析.13 3.4 小結(jié).14 第四章系統(tǒng)的詳細(xì)設(shè)計(jì).14 4.1 客戶機(jī)的類.14 4.2 服務(wù)器的類.15 4.3 實(shí)體類部
4、分.15 4.4 工具類.16 4.5 讀取配置文件類.16 4.6 系統(tǒng)運(yùn)行的詳細(xì)描述.16 4.7 系統(tǒng)運(yùn)行圖以及主要的實(shí)現(xiàn)代碼.20 4.8 小結(jié).28 第五章總結(jié)與展望.28 5.1 工作總結(jié).28 5.2 后續(xù)工作展望.29 致謝.30 參考文獻(xiàn):.31 基于基于 java 的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 摘要摘要:當(dāng)今節(jié)約已經(jīng)成為一個命題,在線考試系統(tǒng)的設(shè)計(jì)意在響應(yīng)這個話題, 努力構(gòu)建無紙化管理。所謂的在線考試就是將考試安排在網(wǎng)上進(jìn)行,方便了考 試的組織安排工作;節(jié)省了大量的時間與資源。在線考試系統(tǒng)適合考生分布范 圍廣不容易集中的遠(yuǎn)程教育。本文通過對試題的導(dǎo)出
5、,在線用戶的登錄,答題, 以及考試結(jié)果的輸出進(jìn)行設(shè)計(jì),完成一個簡單的在線考試系統(tǒng)。本文基于 java,通過 mvc 結(jié)構(gòu),swing 進(jìn)行布局。綜上技術(shù),能夠?qū)⑾到y(tǒng)功能實(shí)現(xiàn)。 關(guān)鍵字:遠(yuǎn)程教育、在線考試、mvc、java、swing design and implementation of online examination based on java abstract: todays conservation has become a proposition, online examination system design is intended to respond to this t
6、opic and build a paperless management. the so-called online exam is conducted online examination arrangements will facilitate the examination of the organizational arrangements; saves a lot of time and resources. online examination system is suitable for a wide range of candidates is not easy to foc
7、us on the distribution of distance education. based on the examination of export, online users login, answer, and the output of test results to design, to complete a simple online examination system. based on java, through the mvc structure, swing the layout. to sum up technology, the ability to imp
8、lement system functions. keywords: distance learning, online examinations, mvc, java, swing 第一章引言第一章引言 1.11.1 課題背景課題背景 隨著近些年來網(wǎng)絡(luò)的蓬勃發(fā)展使得網(wǎng)絡(luò)教育也得到了一定的認(rèn)可,代表了 現(xiàn)代教育的重要發(fā)展趨勢,推動了教育的更新?lián)Q代。在這種形式下,網(wǎng)絡(luò)教育 所伴隨的在線考試必定能在將來的教育事業(yè)上作用明顯。到目前為止,包括教 育部在內(nèi)的教育執(zhí)行機(jī)構(gòu)等都在積極的制定在線考試機(jī)制,使得教育事業(yè)更上 一層樓。所以,如今很多研發(fā)機(jī)構(gòu)都在響應(yīng)時代的命題對網(wǎng)絡(luò)教育以及附屬產(chǎn) 業(yè)進(jìn)行探討和研發(fā)
9、。伴隨著網(wǎng)頁技術(shù)對日常生活的滲透,開發(fā)一個在線考試系 統(tǒng)已經(jīng)勢在必行。 1.21.2 課題的目的和意義課題的目的和意義 根據(jù)現(xiàn)有情況,教育機(jī)構(gòu)和學(xué)校都還是采用以往的考試方式,即紙質(zhì)答卷。 但是傳統(tǒng)紙質(zhì)考試步驟很繁瑣,考試組織機(jī)構(gòu)要組織人員更具自己的需求出試 題;安排考生在所在考場考試;安排監(jiān)考人員監(jiān)考;安排閱卷人員對試題進(jìn)行 評閱;最后安排閱卷結(jié)束后的總結(jié)大會并對考試情況作出分析報(bào)告。不只是這 樣,其工作也將會是十分繁瑣并且非常容易出錯。換句話說,傳統(tǒng)的考試方式 已經(jīng)在一定程度上不太適合現(xiàn)代考試的需求。在計(jì)算機(jī)應(yīng)用的迅猛發(fā)展的前提 下,網(wǎng)絡(luò)應(yīng)用也伴隨著蓬勃發(fā)展。所以,無論是考試機(jī)構(gòu)還是考生都迫
10、切需求 一個應(yīng)用來減輕工作量。不僅減輕了考生的負(fù)擔(dān),而且也提高了考試的質(zhì)量。 從而使考試更接近公平,公正,客觀,更能激發(fā)考生的學(xué)習(xí)積極性。現(xiàn)在這種 技術(shù)已經(jīng)得到初步推廣,得到了各種認(rèn)證考試的認(rèn)可。綜上需求,我們做出這 個在線考試系統(tǒng)能夠在考試和學(xué)習(xí)的過程中起到便捷、提高考試質(zhì)量、減少閱 卷工作量的作用。 1.31.3 對于該項(xiàng)目的描述對于該項(xiàng)目的描述 對計(jì)算機(jī)的應(yīng)用,使得生產(chǎn)效率得到了極大的提高,同時也使一部分生產(chǎn) 力得到了解放。在信息化飛速發(fā)展的今天,計(jì)算機(jī)的應(yīng)用來解決實(shí)際生產(chǎn)生活 中的問題已經(jīng)相當(dāng)普遍。鑒于傳統(tǒng)考試中使用紙質(zhì)試卷帶來的效率低下,信息 滯后等詬病,我們迫切需要一個應(yīng)用解決這些
11、問題。本文設(shè)計(jì)這個在線考試系 統(tǒng),采用了 java 編程語言實(shí)現(xiàn)考試系統(tǒng)。 本文介紹的這個在線考試系統(tǒng),考生通過系統(tǒng)許可。在用戶登錄界面輸入 自己的賬戶和密碼,進(jìn)入考試系統(tǒng)。然后根據(jù)系統(tǒng)提示,完成考試作答并得到 自己的分?jǐn)?shù)。上述這個過程全部都是在網(wǎng)絡(luò)上進(jìn)行并且解決了紙質(zhì)答卷的繁瑣 過程。 本文論述的在線考試系統(tǒng)主要分成兩個部分,即服務(wù)器部分與客戶端部分。 這兩者之間是通過網(wǎng)絡(luò)連接起來的,服務(wù)器的一個線程和客戶端是連著的。 首先,在服務(wù)器部分,這部分首先啟動。然后,服務(wù)器開始讀取系統(tǒng)所需 的配置文件。上述操作能夠使考試所用到的試題提交到服務(wù)器;接著讀取學(xué)生 的信息、學(xué)號、姓名、密碼等都要出現(xiàn)在服
12、務(wù)器中。將上述信息讀取到服務(wù)器 中之后,將上述信息封裝在某個類中,緊接著等待客戶端發(fā)送請求。當(dāng)客戶端 有請求發(fā)送,然后服務(wù)器就會與客戶端進(jìn)行連接。然后等待請求結(jié)束,該連接 才會斷開。在這個過程中,服務(wù)器不斷監(jiān)聽客戶端的請求,控制運(yùn)行進(jìn)程。 其次,客戶端部分,設(shè)計(jì)的比較簡單。因?yàn)橐o學(xué)生操作,所以為了方便 學(xué)生進(jìn)行操作,這里用到了圖形界面的操作。上邊提到的圖形界面總共有三個 界面構(gòu)成。第一個就是用于學(xué)生考試的用戶登錄的界面:考生需要正確輸入自 己的賬號和密碼才能登錄該系統(tǒng);第二個就是學(xué)生選擇考試科目的界面,在這 個窗口出現(xiàn)之前先將前面一個窗口關(guān)閉,然后再創(chuàng)建新的窗口;第三個界面是 考生的考試界面
13、的窗口,進(jìn)入此界面也要關(guān)閉前一個窗口,緊接著當(dāng)考生完成 考試,提交試題,分?jǐn)?shù)自動顯示,然后關(guān)閉窗口。在此同時,服務(wù)器同時要斷 開連接,線程結(jié)束。綜上所述,就是客戶端的三個窗口。 在這個在線考試系統(tǒng)中,本文涉及到兩個主要的類:即試卷類和學(xué)生類。 這兩個類的信息,都是以配置文件的形式保存的。上述信息都可以用工具類讀 取。 1.41.4 系統(tǒng)設(shè)計(jì)思想系統(tǒng)設(shè)計(jì)思想 本文所描述的在線考試系統(tǒng)是以服務(wù)器和客戶端的連接為中心的,下述就 是該系統(tǒng)的設(shè)計(jì)思想。 首先,服務(wù)器先啟動,服務(wù)器然后讀取配置文件。接著,將考試所需的考 題以及規(guī)定格式寫入配置文件;然后,把考生的賬號密碼等信息寫入另一個配 置文件中。服務(wù)器
14、需要讀取試題信息,所以在設(shè)計(jì)時要定義學(xué)生類,試卷類以 及題目類。當(dāng)客戶端與服務(wù)器之間連接時需要數(shù)據(jù)請求,這里包括多種請求類 型。這里包含的請求有連接請求,考生登錄請求,試題發(fā)送請求,答題請求。 為滿足上述需求,我們要定義請求類,并且要求服務(wù)器不斷讀取請求信息。為 了減少代碼量,我們這里需要幾個工具類:一個是創(chuàng)建套接字的連接;另一個 就是用來讀取配置文件的工具類。這樣就出來了服務(wù)器的基本框架。 在客戶機(jī)這邊,我們只需考慮一個線程就行了。并且涉及到四個類,這之 中有三個窗口類和一個客戶機(jī)與服務(wù)器線程連接的類。這個連接類是上述三個 窗口類的一個屬性,這個屬性用來使三個窗口類與服務(wù)器進(jìn)行數(shù)據(jù)通信。三個
15、 窗口也只能通過上述連接類與服務(wù)器之間進(jìn)行通信。這樣這個客服器的整體設(shè) 計(jì)也就呈現(xiàn)出來了。 此外還要說一下就是,客戶機(jī)與服務(wù)器進(jìn)行連接是通過 ip 和端口號數(shù)據(jù)通 信的??蛻魴C(jī)與服務(wù)器對應(yīng)關(guān)系如下:一個客戶機(jī)對應(yīng)一個服務(wù)器;而一個服 務(wù)器對應(yīng)多個客戶機(jī)。服務(wù)器與客戶機(jī)通過線程連接。 1.51.5 可行性分析可行性分析 鑒于在線考試系統(tǒng)的美好前景,本項(xiàng)目的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)考試系統(tǒng),并且 能夠?qū)崿F(xiàn)其相應(yīng)的業(yè)務(wù)功能,例如登錄功能,考試功能,管理員修改難度系數(shù), 考試時間,題目數(shù),考試得分等。此項(xiàng)目需要實(shí)現(xiàn)如下功能。 1、登錄功能:用戶能夠準(zhǔn)確無誤的登錄考試系統(tǒng)。二、考試功能:實(shí)現(xiàn)基 本的業(yè)務(wù)邏輯。三、
16、查看分?jǐn)?shù):在考試結(jié)束后,考生能夠看到考試分?jǐn)?shù)。四、 管理員可以根據(jù)系統(tǒng)定義修改難度系數(shù)和題目數(shù)。五、題目切換:實(shí)現(xiàn)上一題 與下一題的切換。六、其他功能還有計(jì)時功能等。 第二章第二章 系統(tǒng)設(shè)計(jì)相關(guān)技術(shù)介紹及開發(fā)環(huán)境要求系統(tǒng)設(shè)計(jì)相關(guān)技術(shù)介紹及開發(fā)環(huán)境要求 2.1mvc2.1mvc 模式的介紹模式的介紹 2.1.12.1.1mvc 模式的概述模式的概述 mvc 是 模型(model),視圖(view)和控制(controller)的縮寫。其中 model 層用來實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通??梢杂?javabean 來實(shí)現(xiàn); view 層 用于與用戶的交互; controller 層連接模塊與視圖,它可
17、以是用戶的請求得到 恰當(dāng)?shù)囊晥D予以顯示,同時它也可以是用戶的輸入得到解釋并將它們映射為模 型層可執(zhí)行的操作1。 2.1.2mvc2.1.2mvc 的強(qiáng)勢與劣勢的強(qiáng)勢與劣勢 優(yōu)點(diǎn):低耦合性,使得更改視圖層代碼就不用重新編譯模型和控制器代碼。 高重用性和可適用性,允許你是用各種方式的視圖來訪問同一個服務(wù)器端的代 碼??焖俚牟渴?,使用 mvc 模式是的開發(fā)時間得到相當(dāng)大的縮減2。 缺點(diǎn):mvc 的缺點(diǎn)是它沒有明確的定義,不容易理解。 2.22.2 j javaava組件組件 j javaavab beanseans 2.2.12.2.1 什么是什么是 javabeans javabeans 是一種企
18、業(yè)級開發(fā)中的技術(shù)規(guī)范,凡是遵循該規(guī)范的類都稱為 javabeans 類,又叫做 pojo 類。該規(guī)范主要包含以下幾點(diǎn): 1.所有的類都必須實(shí)現(xiàn)序列化接口。 2.所有的屬性盡量定義為私有屬性。 3.所有的方法定義為公有方法。 4.提供屬性的 get 和 set 方法,通過該方法可以訪問屬性。 2.32.3 javasejavase 概述概述 javase 是 java standard edition 的縮寫。javase 就是 java 的標(biāo)準(zhǔn)版,主要 用于桌面應(yīng)用軟件的編程。javase 包含那些構(gòu)成 java 語言核心的類。比如: 數(shù)據(jù)庫連接、接口定義、輸入/輸出、網(wǎng)絡(luò)編程3。 javas
19、e 具有以下幾個特點(diǎn):第一,它比較容易開發(fā);第二,它啟動時間短, 內(nèi)存占用較少;第三,它還有元數(shù)據(jù)特性。 2.42.4 關(guān)于關(guān)于 s strutstruts 2.4.12.4.1 struts 簡介簡介 struts 是開源軟件。使用 struts 的目的是為了幫助我們減少在運(yùn)用 mvc 設(shè) 計(jì)模型應(yīng)用的時間。struts 已逐步越來越多運(yùn)用于商業(yè)軟件,是一種非常優(yōu)秀的 javase mvc 實(shí)現(xiàn)方式4。 2.4.22.4.2 struts 的主要功能的主要功能 1.struts 包含一個 controller servlet,能夠?qū)⒖蛻舳说恼埱蟀l(fā)送給 action 對 象。 2.它提供了一系
20、列實(shí)用對象:通過 java reflection 自動處理 javabeans 屬性、 提示和消息。struts 提供了它自身的控制器組件,并且整合了其他技術(shù),用來提 供模型和視圖。struts 正逐步被運(yùn)用,是性能良好的 mvc 實(shí)現(xiàn)方式5。 2.4.32.4.3 struts 工作原理工作原理 這里我們先來介紹一下 mvc,mvc 是 model-view-controller 的縮寫。它 作為稱用得設(shè)計(jì)模式得到了廣泛的運(yùn)用。mvc 使數(shù)據(jù)接口和邏輯接口連接減 弱,并且使得視圖更加富有變化性。mvc 使得程序邏輯清晰,更容易被人理解。 mvc 的工作原理如下 2-1 所示: 2-12-1m
21、vc 的工作原理的工作原理 接下來,我們說一下 struts,它作為 mvc 的一種實(shí)現(xiàn)。struts 繼承了 mvc 的各項(xiàng)特性,具有 mvc 的特點(diǎn)。并根據(jù) javase 的特點(diǎn),做出了相應(yīng)的更改。 struts 的工作原理,如下圖 2-2 所示: 2-22-2struts 的工作原理的工作原理 2.52.5 關(guān)于關(guān)于 s swingwing 2.5.12.5.1 swing 簡介簡介 swing 是建立在 awt 之上的組件集。除提供了 awt 所缺少的、大量的附 加組件外,swing 還提供了替代 awt 重量組件的輕量組件。awt 中文含義抽 象窗口工具包(abstract wind
22、ow toolkit)功能是 java 開發(fā)用戶界面最初的工具包。 swing 還包括了一個用于實(shí)現(xiàn)插入式界面樣式特性的圖形用戶界面的下層構(gòu)件。 因此,在不同的平臺上,swing 組件都能保持組件的界面樣式特性。例如雙緩 沖、調(diào)試圖形和文本編輯包等6。 2.5.22.5.2 為什么需要為什么需要 swing swing 設(shè)計(jì)者采用的設(shè)計(jì)模式:模型視圖控制器(mvc)模式。 該設(shè)計(jì)模式遵循一個基本原則:它限制一個對象的功能的數(shù)量。防止一個按鈕 完成所有的事情。而應(yīng)該分配內(nèi)容,比如說讓一個對象負(fù)責(zé)組件的觀感,另一 個對象負(fù)責(zé)存儲內(nèi)容。 當(dāng)程序員想要使用 swing 組件來完成開發(fā)時,不需要考慮 m
23、vc 體系結(jié)構(gòu)。 每個用戶界面的元素都有一個包裝器的類來保存模型和視圖。當(dāng)需要查詢所需 要的內(nèi)容時,包裝器類會向模型詢問并且返回所要的內(nèi)容。當(dāng)想要改變視圖時 (例如,在一個文本域中改變光標(biāo)位置的時候) ,包裝類會把此請求轉(zhuǎn)發(fā)給視圖。 然而,有時候包裝器轉(zhuǎn)發(fā)命令并不得力。在這種情況下,就必須直接地與模型 進(jìn)行交互。 2.5.32.5.3 swing 帶給我們什么帶給我們什么 mvc 模式吸引廣大 swing 設(shè)計(jì)者原因是這種模式允許實(shí)現(xiàn)可插觀感。每個 按鈕或者文本域的模型是獨(dú)立于觀感的。當(dāng)然可視化表明完全依賴于特殊觀感 的用戶界面的設(shè)計(jì),并且控制器可以改變它。比如,在一個語音控制設(shè)備中, 控制其
24、需要處理的各種事件與使用鍵盤和鼠標(biāo)的標(biāo)準(zhǔn)計(jì)算機(jī)完全不同。swing 設(shè)計(jì)者通分離底層模型與用戶界面,這樣能夠重用模型的代碼,更甚于在程序 運(yùn)行時對觀感進(jìn)行切換7。 對于絕大多數(shù)組件,模型類將實(shí)現(xiàn)一個以 model 命名結(jié)尾的接口。比如, 我們所知道的按鈕就實(shí)現(xiàn)了 buttonmodel 接口。實(shí)現(xiàn)上述接口的類可以定義各 種按鈕的狀態(tài)。上述按鈕并不是很復(fù)雜,在 swing 組件庫中就有個叫 defaultbuttonmodel 的類就實(shí)現(xiàn)了這個接口。在試圖對象中,每個 swing 組件 都有一個相關(guān)的后綴 ui 的視圖對象8。 2.62.6 關(guān)于關(guān)于開發(fā)環(huán)境的概述開發(fā)環(huán)境的概述 2.6.12.6
25、.1 操作系統(tǒng)操作系統(tǒng) 此在線考試系統(tǒng)的開發(fā)環(huán)境是 windows 系統(tǒng),該系統(tǒng)安全系數(shù)比較高而且 方便。 2.2.6 6. .2 2 開發(fā)語言開發(fā)語言 開發(fā)語言:jdk1.6.0_10。jdk(java development kit)是 sun 公司針對 java 開發(fā)員研發(fā)的產(chǎn)品。 java 的就是 jdk,它包括了 java 運(yùn)行環(huán)境(java runtime envirnment) ;一 堆 java 工具和 java 基礎(chǔ)的類庫(rt.jar)。所有的 java 應(yīng)用程序都有某個版本的 jdk 與其相對應(yīng)。所以,要學(xué)好 java,首先要掌握 jdk。最能被程序員接受的 是 sun
26、公司發(fā)布的 jdk。除了 sun 之外,好多公司都開發(fā)了自己的 jdk。例如 gnu 組織開發(fā)的 jdk;ibm 公司開發(fā)的 jdk 等9。 2.2.6 6. .3 3 開發(fā)環(huán)境開發(fā)環(huán)境 開發(fā)環(huán)境:eclipse6.0 版。eclipse 是一個基于 java 的開發(fā)平臺。它的源 代碼是開放的。該軟件本身是一個框架和一組服務(wù),用于通過插件組件來構(gòu)建 開發(fā)環(huán)境。其中 eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括了 java 開發(fā)工具 (java development kit,jdk)10。 2.72.7 關(guān)于布局的概述關(guān)于布局的概述 2.7.12.7.1borderlayout borderl
27、ayout 用于邊框布局的布置容器。它可以對容器內(nèi)的組件等進(jìn)行布 局設(shè)置。例如,調(diào)整大小,調(diào)整容器內(nèi)組件的位置。該容器有以下五個區(qū)域: 東、西、南、北、中。這五個位置,每個位置只允許包含一個組件。并且這些 位置都有自己的標(biāo)志:east、west、south、north、center11。 2.7.22.7.2flowlayout flowlayout 外觀管理器的功能就是把系統(tǒng)程序中所用的的各個組件按照先 后順序由上到下,由左及右依次排開12。 2.7.32.7.3gridlayout 和和 gridbaglayout gridlayout 的作用是將該窗口分成大小不等的均勻網(wǎng)格,然后使得組件
28、能 夠依次按格放入組件。 gridbaglayout 的功能是根據(jù)設(shè)計(jì)者的想法,改變組件的大小,使它們能夠 擺在想要的位置13。 2.82.8 小結(jié)小結(jié) 本章主要介紹了該在線考試系統(tǒng)的關(guān)鍵技術(shù)和工具,對系統(tǒng)模式簡介 mvc,以及串聯(lián)的 struts。使得模型視圖控制器直接進(jìn)行恰當(dāng)?shù)慕换ィ?完成各自的職能。用 swing 布局器進(jìn)行布局,使得用戶界面的設(shè)計(jì)更加人性化。 第三章第三章系統(tǒng)需求分析和總體設(shè)計(jì)系統(tǒng)需求分析和總體設(shè)計(jì) 3.13.1 系統(tǒng)功能需求系統(tǒng)功能需求 這個在線考試系統(tǒng)的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)考試系統(tǒng),讓考生能夠自主考試完成 答卷以及查分。并附帶實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)功能,如登錄功能、考試功能、查分
29、功 能等。項(xiàng)目中的需實(shí)現(xiàn)的功能如下。 1.登錄功能。考生能夠自主登錄該考試系統(tǒng),再輸入考生的賬號密碼后能 夠準(zhǔn)確無誤的進(jìn)入考試系統(tǒng)。為考試完成做好充分的前提。 2.考試功能。它主要業(yè)務(wù)邏輯就是考試功能。考試功能,顧名思義,考試 點(diǎn)擊該按鈕能夠打開試題進(jìn)行作答。進(jìn)入考試后系統(tǒng)為考生自動分配考題,考 生只需對試卷中出現(xiàn)的考題進(jìn)行作答即可。 3.查看分?jǐn)?shù)??忌軌蛟诳荚嚱Y(jié)束后查看考試分?jǐn)?shù)。當(dāng)考生對自己分配到 的試題做大完畢并確認(rèn)無誤后,提交試卷。系統(tǒng)會對考生對試題的作答準(zhǔn)確與 否進(jìn)行判斷,進(jìn)而對考生的作答給出得分。 4.查看考試規(guī)則。該考試系統(tǒng)能夠查閱考試規(guī)則??荚嚱M織者根據(jù)具體情 況對考試規(guī)進(jìn)行編
30、寫??忌诳荚嚽澳軌蜷喿x該規(guī)則,以免出現(xiàn)不該發(fā)生的失 誤。 5.題目切換。實(shí)現(xiàn)上一題、下一題的切換。是考生能夠在做題的過程中進(jìn) 行題目選擇,或者切換題目進(jìn)行答案糾正,題目檢查。 6.計(jì)時功能??荚嚳颇慷加幸?guī)定一定的作答時間,該考試系統(tǒng)具有倒計(jì)時 功能??忌軌驎r刻看到自己的作答時間以及剩余時間。不至于因?yàn)闀r間問題 影響自己的答題,計(jì)時功能能夠督促考生快速完成試題的作答。 除此之外,該系統(tǒng)下管理員還可以修改難度系數(shù)和倒計(jì)數(shù)時間修改設(shè)定以 及考題題目的增減來適應(yīng)不同的情況。 3.3.2 2 系統(tǒng)設(shè)計(jì)的總體框架系統(tǒng)設(shè)計(jì)的總體框架 3.2.13.2.1 軟件層次結(jié)構(gòu)軟件層次結(jié)構(gòu) 控制層 視圖層 業(yè)務(wù)層
31、 數(shù)據(jù)層 3-13-1 軟件層結(jié)構(gòu)軟件層結(jié)構(gòu) 在線考試系統(tǒng)軟件層次結(jié)構(gòu)大致以上述圖片進(jìn)行連接。首先,登陸窗體, 菜單窗體,測試窗體共同構(gòu)成了用戶客戶端。用戶客戶端連接業(yè)務(wù)層,業(yè)務(wù)層 連接數(shù)據(jù)層,三者共同構(gòu)成了該考試系統(tǒng)的軟件層結(jié)構(gòu)。 3.3.2.22.2 界面與控制器的關(guān)系界面與控制器的關(guān)系 3-23-2 界面與控制器的關(guān)系界面與控制器的關(guān)系 界面與控制器的關(guān)系大致由上圖就能夠表述出來,客戶端就是這里的控制 loginframe menuframe examfranme clientcontext examserviceimp lpl entitycontext 選擇界面 menuframem
32、enufra me client context 登陸界面 loginframe 考試界面 examframe 器。它能夠控制選擇進(jìn)入各個界面。它根據(jù)考生的信息輸入請求,響應(yīng)進(jìn)入不 同的考試界面。例如:登陸界面,選擇界面,和考試界面。綜上,呈現(xiàn)出控制 器與界面的關(guān)系。 3.2.33.2.3 業(yè)務(wù)層介紹業(yè)務(wù)層介紹 在這個在線考試系統(tǒng)的開發(fā)中,業(yè)務(wù)層采用接口加實(shí)現(xiàn)的方式制作。其中 項(xiàng)目中的業(yè)務(wù)層主要有以下幾個功能: 1.驗(yàn)證用戶信息的正確性。當(dāng)用戶來到登陸界面,用戶需要輸入本人的賬 號和密碼方能進(jìn)入該考試系統(tǒng)完成考試作答。當(dāng)輸入的賬號或者密碼不準(zhǔn)確時, 系統(tǒng)會做出報(bào)錯信息。以免考試出現(xiàn)問題。 2.
33、從數(shù)據(jù)層抽取試題,生成試卷,為表現(xiàn)層提高考試所需要的信息及試題。 使考生能夠得到考試試題并完成考試。 3.驗(yàn)證用戶的答案是否正確并且給出分?jǐn)?shù)。在考生完成試題作答后能夠獲 取自己的得分。 3.2.43.2.4 數(shù)據(jù)層介紹數(shù)據(jù)層介紹 在本次在線考試系統(tǒng)的開發(fā)中,數(shù)據(jù)層的主要實(shí)現(xiàn)的功能是讀取用戶信息, 考題信息,考試信息等。 讀取用戶信息:數(shù)據(jù)層接收到登錄請求時,數(shù)據(jù)層要調(diào)出用戶信息并且讀 取。從而響應(yīng)請求,進(jìn)而用戶能夠順利進(jìn)入考試系統(tǒng)。 考題信息:當(dāng)用戶登錄考試系統(tǒng)成功,考生要進(jìn)行考試,必須發(fā)送考試請 求。這時,數(shù)據(jù)層要調(diào)出考題信息,形成考題。這樣,考生就能進(jìn)入考試界面 并完成考試作答。 考試信息
34、:當(dāng)考生開始答卷,數(shù)據(jù)層要不斷地更新考試信息。并通過考生 的答案提交判斷考生的得分。當(dāng)考生提交試卷,數(shù)據(jù)層提交考生得分。 3.33.3 系統(tǒng)的用例圖系統(tǒng)的用例圖 3.3.13.3.1 總體用例分析總體用例分析 在線考試系統(tǒng) 用戶管理部分 3-33-3 總體用例圖總體用例圖 由上圖我們可以看出該考試系統(tǒng)分為以上五個部分即:用戶管理部分,考 試管體部分,成績管理部分以及試題管理部分。其中,用戶管理部分是對用戶 的個人信息進(jìn)行統(tǒng)一管理,使用戶能夠登陸該在線考試系統(tǒng)。考試管理部分是 指考生再登陸考試系統(tǒng)后,對考試進(jìn)行的所有操作,比如,查看考試規(guī)則、進(jìn) 行考試、試卷提交等,都貴考試管理部分統(tǒng)一作出處理。
35、成績管理系統(tǒng)就是當(dāng) 用戶提交試卷,系統(tǒng)給出分?jǐn)?shù)后,它要對數(shù)據(jù)進(jìn)行處理并能夠在用戶界面呈現(xiàn) 出來。試題管理部分是管理者將試題導(dǎo)入該考試系統(tǒng),并將試題進(jìn)行分類。當(dāng) 用戶點(diǎn)擊考試請求,試題管理部分自動分配考題供用戶作答。上述的使用者分 為兩部分,其中一部分是管理者;另一部分是用戶。 3.3.3 3.2.2 用戶管理用例分析用戶管理用例分析 通過下圖我們能夠看到用戶管理分為以下四部分,當(dāng)用戶登陸考試系統(tǒng)后 可以進(jìn)行以下五個操作即:考試開始,分?jǐn)?shù),考試規(guī)則,試題提交以及離開。 當(dāng)考生點(diǎn)擊考試開始,系統(tǒng)就為用戶分配好試題。當(dāng)然在開始考試前最好看一 下考試規(guī)則,以免出現(xiàn)非受獲性失誤。當(dāng)用戶提交考題時要進(jìn)行試
36、卷提交操作, 接著用戶會得到考試結(jié)果即考試分?jǐn)?shù)。最后用戶進(jìn)行離開操作,離開考試系統(tǒng)。 這樣,一次完整的在線考試就結(jié)束了。這就是用戶所能體驗(yàn)的在線考試系統(tǒng)的 用戶的所有操作。 在線考試系統(tǒng) 用戶 開始 分?jǐn)?shù) 考試規(guī)則 離開 管理者考試管理部分 成績管理部分 試題管理部分 試題提交 3-43-4 用戶管理用戶管理 3.3.3 3.3.3 考試管理用例分析考試管理用例分析 考試管理 3-53-5 考試管理考試管理 綜上圖,我們可以得到考試管理部分包括以下五個管理項(xiàng)目。就是考試規(guī) 則的修訂填充;考試系統(tǒng)曾是正常時刻準(zhǔn)備用戶考試;開始考試,對考試進(jìn)行 計(jì)時,以及監(jiān)督用戶進(jìn)行考試操作,進(jìn)行整錯判斷;用戶提
37、交試卷后,考試管 理自動判斷用戶所做出的答案并進(jìn)行評分;最后考試管理提供用戶分?jǐn)?shù)。這些 都能被用戶體驗(yàn)。 3.3.3 3.4.4 考試題目管理用例分析考試題目管理用例分析 題目管理 3-63-6 題目管理題目管理 上圖所描述的是管理者對題目進(jìn)行的管理操作。它包含五部分:題目的增 加、題目的刪除以及答案的設(shè)置。增加題目和刪除題目是管理者對試題庫的試 用戶 考試規(guī)則 準(zhǔn)備考試 開始考試 自動閱卷 查看成績 增加題目 刪除題目 答案設(shè)置 管理者 題進(jìn)行數(shù)量的修訂,以滿足用戶對該考試系統(tǒng)的需求。答案設(shè)置就是對試題的 正確結(jié)果作出明確標(biāo)出。綜上來實(shí)現(xiàn)管理者對題目的管理。 3.3.3 3.5.5 成績管理
38、用例分析成績管理用例分析 成績管理 3-73-7 成績管理成績管理 上圖是該系統(tǒng)的成績管理用例。管理者對用戶的成績進(jìn)行管理,用戶能夠 查詢自己的成績。完成系統(tǒng)的成績顯示職能。 3.43.4 小結(jié)小結(jié) 這一章通過對系統(tǒng)功能需求、設(shè)計(jì)框架以及總體用例圖來分析系統(tǒng)需求和 總體設(shè)計(jì)。由系統(tǒng)的功能需求夠做出系統(tǒng)的基本框架,通過框架讓我們更能了 解考試系統(tǒng)的基本構(gòu)造。最后通過系統(tǒng)的整體用例圖來說明用戶與管理者所需 的操作以及在此考試系統(tǒng)中起到的作用。為在線考試系統(tǒng)的構(gòu)造做出更詳細(xì)的 說明,為下邊在線考試系統(tǒng)的具體編寫做好堅(jiān)實(shí)的鋪墊。 第四章第四章系統(tǒng)的詳細(xì)設(shè)計(jì)系統(tǒng)的詳細(xì)設(shè)計(jì) 前邊幾章我們已經(jīng)介紹過,本文所
39、描述的在線考試系統(tǒng)主要有兩部分組成: 客戶機(jī)部分和服務(wù)器部分。此外,該系統(tǒng)還涉及到一些實(shí)體類和一些工具類。 這些類在系統(tǒng)中都是以包的形式存在,下邊我們來介紹一下考試系統(tǒng)的設(shè)計(jì)方 式。按照包的形式。 4.14.1 客戶機(jī)的類客戶機(jī)的類 客戶機(jī)的類包含 lginframe 類、selectsubjectframe 類、exammainframe 類、 用戶 成績查詢 管理者 client 類。各個類在此考試系統(tǒng)中都扮演著不同的角色,下面我就來介紹一下。 首先是登陸界面。該界面有登錄窗口、學(xué)號輸入框、密碼輸入框、確定進(jìn) 入考試系統(tǒng)按鈕、取消按鈕等。這些都是都是使用的 lginfranme 類來編寫的
40、實(shí) 現(xiàn)的。 而 selectsubjectframe 類用來編寫選擇科目的窗口、一個選擇科目的標(biāo)簽、 一個選擇科目的下拉菜單和一個確定按鈕以及一個取消按鈕。 下邊這些都屬于 exammainframe 類:學(xué)生考試窗口、考試窗口的標(biāo)題即在 線考試系統(tǒng)、顯示題目的文本框、試題四個選項(xiàng)的可選項(xiàng)、顯示題號的框和剩 余題目數(shù)的標(biāo)簽、上一題,下一題試題切換以及交卷按鈕、顯示剩余剩余時間 的標(biāo)簽。 以上就是本次考試系統(tǒng)中客戶機(jī)的類。 4 4.2.2 服務(wù)器的類服務(wù)器的類 服務(wù)器中只用到了 serveletmainclass 類,下邊我們屬性、方法和內(nèi)部類這 個順序來介紹一下。 首先,servelettma
41、inclass 類的屬性有以下內(nèi)容。ss 是 serversocket 的縮寫, 其表示服務(wù)器的套接字;studao 是由 studentdao 縮寫而來的,它表示學(xué)生信息; pro 是 properties 的縮寫,其含義是一個鍵值對,通信時傳輸信息用;pdao 由 paperdao 縮寫而來,它表示試卷信息。 接著,我們介紹一下它的方法。其中,init()void 表示初始化函數(shù);而 main() void 表示服務(wù)器啟動入口函數(shù)。 最后,我們來介紹一個內(nèi)部類 serverthread,它有以下屬性。s 是 socket 的縮寫,它表示與客戶機(jī)連接的套接字;oos 是由 objectout
42、putstream 縮寫而來 的,它表示對象輸出流。接著來描述一下它的方法,begin void 是表示開始考試 請求;login void 用來表示登陸請求;其中 sendvoid 表示結(jié)束考試請求發(fā) 送;run() void 來表示線程運(yùn)行。 4.34.3 實(shí)體類部分實(shí)體類部分 其中實(shí)體類包含四個類:一個學(xué)生類;一個試卷類;一個試題類;還有一 個請求類。下面我們依次來看一下這些類的屬性和方法。 首先,來看一下學(xué)生類。student 類,該類中有以下屬性:id 是 int 整型的, 它表示學(xué)生學(xué)號;name 和 passwd 都是字符串型的,前一個表示學(xué)生學(xué)號,后 一個表示學(xué)生的密碼。 接下
43、來,介紹一下試卷類。該類有以下三個屬性:subjectstring 來表示 考試科目;allqusstionlist用來表示所有題目的集合;answers list 能夠表示 出學(xué)生選擇的答案的集合。實(shí)現(xiàn)方法有如下,tostring() void是將試卷轉(zhuǎn)換 成字符串格式;而 addqusetion() void是表示向試卷中添加題目。 最后,來介紹一下試題類。此類包含以下屬性和方法。question 類,屬性 如下:title 是 string 字符串類型的,它表示題目的標(biāo)題;answer 是 char 字符類 型的,它表示題目的正確選項(xiàng);items 是 list(只能存儲字符串類型 的集合
44、)一個集合,它表示題目選項(xiàng)。question 類用到的方法如下:tostring() void 它表示將題目轉(zhuǎn)換成字符串格式。 4.44.4 工具類工具類 questionreader 類和 socketutil 類是該考試系統(tǒng)用到的工具類,前一個是表 示封裝一些讀取磁盤文件的方法,后一個是表示封裝一些創(chuàng)建套接字連接的基 本格式。 4.54.5 讀取配置文件類讀取配置文件類 配置文件有以下兩個接口:studentdao 接口和 paperdao 接口。分別需要運(yùn) 用方法 getstudent()和 getpaper()。為了實(shí)現(xiàn)上述接口和方法,分別用 studentdaofromtextfil
45、e 類和 paperdaofromfile 類來實(shí)現(xiàn)上述接口和方法。最 終能夠讀取配置文件。 4.64.6 系統(tǒng)運(yùn)行的詳細(xì)描述系統(tǒng)運(yùn)行的詳細(xì)描述 在 4.1 至 4.5 已經(jīng)介紹了系統(tǒng)中各種類的屬性以及方法。然而各種類之間 存在著調(diào)用和依賴的關(guān)系,下邊就來分析一下這些關(guān)系。 4-14-1 系統(tǒng)運(yùn)行詳細(xì)圖系統(tǒng)運(yùn)行詳細(xì)圖 上圖是這個在線考試系統(tǒng)的整體框架圖。從上邊的例圖我們可以看出,該 系統(tǒng)最關(guān)鍵的就是服務(wù)器通過服務(wù)器線程與 client 直接的連接關(guān)系。該在線考 試系統(tǒng)是在整個連接才使得客戶機(jī)與服務(wù)器發(fā)生聯(lián)系并完成整個在線考試過程 的。服務(wù)器與客戶機(jī)之間的數(shù)據(jù)交換和通信都是以服務(wù)器與 clien
46、t 之間的連接 作為鋪墊的。系統(tǒng)在初始運(yùn)行時需要將配置文件中的數(shù)據(jù)讀取并傳送到到服務(wù) 器中,然后,客戶機(jī)才能收到服務(wù)器傳送來的數(shù)據(jù)。客戶機(jī)的每個窗口的數(shù)據(jù) 的傳輸都是以服務(wù)器與 client 的連接為前提的。 那么,接下來要介紹一下幾個重要類的具體的設(shè)計(jì)說明: 1服務(wù)器線程類 服務(wù)器線程類,它是服務(wù)器主類的一個內(nèi)部類。因?yàn)樗皇欠?wù)器的類, 只作為內(nèi)部類使用,因而它只被設(shè)計(jì)在服務(wù)器的內(nèi)部。當(dāng)服務(wù)器接收到來自客 戶端的請求時該連接繼續(xù)進(jìn)行。服務(wù)是程序創(chuàng)建的一個服務(wù)進(jìn)程與服務(wù)器連接 而成的,它適合運(yùn)行 run()方法。該方法用來判斷客戶端發(fā)送的請求類型,并且 paperdaofromfile 配置
47、文件 studentdaofromtex tfile questionreader socketutil 服 務(wù) 器 服 務(wù) 器 線 程 client selectsubjectframe lo gin fra me exammainframe 判斷調(diào)用何種方法。服務(wù)器然后發(fā)送相應(yīng)的數(shù)據(jù)。下面我們來詳細(xì)了解一下這 個過程: 首先,服務(wù)器在初始化 init()方法是個 while()死循環(huán),此時,服務(wù)器不斷 地監(jiān)聽客戶機(jī)套接字的請求,當(dāng)有請求到來時,系統(tǒng)繼續(xù)往下運(yùn)行;接著,服 務(wù)器構(gòu)建一個服務(wù)線程,這個服務(wù)線程源自線程類。它直接調(diào)用 start()方法, 讓服務(wù)器繼續(xù)往下運(yùn)行,建立于 clien
48、t 之間的連接。此時,客戶端與該服務(wù)器 的線程就建立起了連接。然后,服務(wù)線程創(chuàng)建一個輸出流,這個輸出流是用來 給客戶機(jī)發(fā)送信息的。緊接著又是一個 while()死循環(huán),不斷地從上述輸出流中 讀取數(shù)據(jù),直到有判斷請求道來。 下面我們要介紹一下判斷請求的類型。這個請求類型要使用到一個 request 請求類,這里涉及到四個靜態(tài)常量。這里要使用到一個 switch、case 語法,來 匹配所要調(diào)用的方法。如果調(diào)用的靜態(tài)常量是 1,這里用到 login_request,程序 就調(diào)用 login()方法。如果是靜態(tài)常量 2,就要調(diào)用 begin 方法。如果是靜態(tài)常 量 3,就會調(diào)用交卷信息的 send(
49、)方法。如果靜態(tài)常量 4,就表示學(xué)生要退出考 試的界面,這時候,客戶端關(guān)閉,服務(wù)器接收到退出請求之后,就要直接跳出 循環(huán),然后關(guān)閉與之連接的流和套接字連接。 綜上所述,這就是考試系統(tǒng)運(yùn)行的基本過程。 這里簡單描述一下上邊提到的幾個方法的作用。首先,login()就是發(fā)送用 戶信息與考題給客戶端程序,然后進(jìn)入下一個進(jìn)程,繼續(xù)監(jiān)聽其他請求; begin()方法是根據(jù)用戶反映的信息對用戶進(jìn)行分發(fā)試題,然后繼續(xù)監(jiān)聽請求; send()是告訴服務(wù)器用戶考試結(jié)束。 2客戶端窗口類 客戶類的窗口類,是實(shí)現(xiàn)用戶由對這個系統(tǒng)進(jìn)行第一步操作開始,到操作 結(jié)束為止所有的過程。從用戶登錄該系統(tǒng)開始,輸入用戶名密碼進(jìn)入
50、考試界面, 對考試規(guī)則等進(jìn)行閱覽,進(jìn)入考試一直到考試結(jié)束,提交考卷并得到考試分?jǐn)?shù), 離開考試系統(tǒng)結(jié)束。下面就來詳細(xì)了解一下這個過程: 首先,用戶啟動該考試系統(tǒng)程序,進(jìn)入登陸界面??忌仨氃诘顷懡缑孑?入正確的用戶名和賬號方能進(jìn)入該考試系統(tǒng),否則,系統(tǒng)會自動報(bào)錯并提醒用 戶輸入正確的用戶名和密碼。 然后,當(dāng)用戶輸入正確的用戶名和密碼,用戶就成功登陸了該考試系統(tǒng)。 接著就會出現(xiàn)幾個選擇項(xiàng):開始,分?jǐn)?shù),考試規(guī)則,離開??忌鷳?yīng)該首先閱覽 以下考試規(guī)則,接著點(diǎn)擊開始進(jìn)入考試,當(dāng)考試結(jié)束后,選擇提交試卷。然后 點(diǎn)擊分?jǐn)?shù)就可以得到自己的考試分?jǐn)?shù)了。然后就可以離開該考試系統(tǒng)了。 之后,當(dāng)用戶進(jìn)入考試,考試框的
51、上邊依次是考生姓名、編號、考試時間 等。中間是考試題目,先邊有考試時間倒計(jì)時。還有幾個選擇鈕,依次是上一 題,下一題以及提交試卷??忌筛鶕?jù)自己需求進(jìn)行操作,最終提交試卷。如 果考生在倒計(jì)時時間之內(nèi)未完成作答的,系統(tǒng)會自動提交試卷。 考生在提交試卷后,系統(tǒng)會對用戶的作答給出分?jǐn)?shù)。用戶提交試卷的同時 系統(tǒng)會將用戶的分?jǐn)?shù)呈現(xiàn)在該用戶面前??荚囃瓿?。 最后,考生點(diǎn)擊離開,離開考試系統(tǒng)。 以下是一流程圖的形式進(jìn)一步說明以上過程。 4-24-2 服務(wù)器流程圖服務(wù)器流程圖 4-34-3 客戶端流程圖客戶端流程圖 4.74.7 系統(tǒng)運(yùn)行圖以及主要的實(shí)現(xiàn)代碼系統(tǒng)運(yùn)行圖以及主要的實(shí)現(xiàn)代碼 4-44-4 登陸界面
52、登陸界面 4-54-5 進(jìn)入考試系統(tǒng)進(jìn)入考試系統(tǒng) 4-64-6 考試界面考試界面 4-74-7 點(diǎn)擊交卷之后,成績自動生成點(diǎn)擊交卷之后,成績自動生成 主要的實(shí)現(xiàn)代碼如下: 1. 登錄流程 public void login() try /獲取用戶編號 int id=this.loginframe.getuserid(); /獲取用戶密碼 string pwd=this.loginframe.getuserpwd(); /返回登錄用戶 user user=this.examservice.login(id,pwd); /更新用戶信息 this.menuframe.updateview(user)
53、; /顯示菜單按鈕,將登錄按鈕設(shè)置為不可見 this.loginframe.setvisible(false); this.menuframe.setvisible(true); /編號和密碼異常 catch(idorpwdexception e) e.printstacktrace(); /顯示登錄異常信息 this.loginframe.showmessage(e.getmessage(); /數(shù)值類型異常 catch(numberformatexception e) e.printstacktrace(); /確保用戶編號是數(shù)字,將信息反饋給用戶 this.loginframe.show
54、message(編號必須是數(shù)字!); 2.考試流程 public void start() try /調(diào)用業(yè)務(wù)層的start()方法開始考試 examinfo examinfo=this.examservice.start(); /調(diào)用業(yè)務(wù)層的getquestioninfo()方法來獲得考題 questioninfo questioninfo=this.examservice.getquestioninfo(0); /調(diào)用examframe類的updateview()更新考試面板信息 this.examframe.updateview(examinfo,questioninfo); /隱藏菜單
55、面板,進(jìn)入考試面板 this.menuframe.setvisible(false); this.examframe.setvisible(true); /重要:給屬性賦值 /獲得當(dāng)前考題內(nèi)容和考試信息 this.currentquestioninfo=questioninfo; this.examinfo=examinfo; /調(diào)用本類中的starttimer()方法,開始考試計(jì)時 this.starttimer(); catch (exception e) e.printstacktrace(); /在menuframe面板前顯示錯誤信息 joptionpane.showmessagedi
56、alog(this.menuframe, e.getmessage(); 3.開始考試倒計(jì)時 private void starttimer() /通過調(diào)用examinfo類中的gettimelimit()方法, /獲得當(dāng)前考試總時間 final long end=system.currenttimemillis()+examinfo.gettimelimit()*60l*1000; /添加定時器,開始考試倒計(jì)時,每隔一秒執(zhí)行一次 timer.schedule(new timertask() public void run() /獲取當(dāng)前時間 long now=system.currentti
57、memillis(); /計(jì)算剩余時間 long show=end-now; long s=(show-show%1000)/1000/60; long m=(s-s%60)/60; long h=(m-m%60)/60; s=s%60 /調(diào)用考試面板中的方法是是showtime()方法,當(dāng)時間剩余5 分鐘時以 /時分秒的形式顯示剩余時間 examframe.showtime(h,m,s); ,0,1000); /添加定時器,當(dāng)考試到點(diǎn)時結(jié)束考試 timer.schedule(new timertask() public void run() /調(diào)用gameover()結(jié)束考試 clientc
58、ontext.this.gameover(); ,new date(end); 4.查詢考分流程 public void result() try /獲得最終考試成績,在菜單面板前顯示 int lastscore=this.examservice.getscores(); joptionpane.showmessagedialog(this.menuframe,考試分?jǐn)?shù) +lastscore); catch (exception e) e.printstacktrace(); /若有異常,則顯示錯誤信息 joptionpane.showconfirmdialog(this.menuframe,
59、e.getmessage(); 5.退出流程 public void exit(jframe parent) /在當(dāng)前面板中執(zhí)行并退出 int val=joptionpane.showconfirmdialog(parent, 要離開嗎?); if(val=joptionpane.yes_option) system.exit(0); 6.點(diǎn)擊下一步按鈕所執(zhí)行的方法 public void next() try /取出當(dāng)前題號 int index=this.currentquestioninfo.getquestionindex(); /獲取當(dāng)前用戶答案 list useranswers=th
60、is.examframe.getuseranswers(); /保存該題號下的用戶答案 this.examservice.saveuseranswers(index, useranswers); /獲得下一個問題的題號 index+; /獲得下一個考題內(nèi)容 this.currentquestioninfo=this.examservice.getquestioninfo(index); /更新考試面板,顯示下一考題 this.examframe.updateview(this.examinfo,this.currentquestioninfo); catch(exception e) e.pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房屋中介服務(wù)合同有效性審查及法律風(fēng)險(xiǎn)提示
- 展會銷售工作總結(jié)
- 二零二五年度科研機(jī)構(gòu)解聘協(xié)議范本(研究員崗位)
- 二零二五年度生態(tài)農(nóng)業(yè)土地租賃與環(huán)保型廠房建設(shè)合同
- 2025年中國燃性環(huán)氧灌封膠市場調(diào)查研究報(bào)告
- 二零二五年度企業(yè)核心競爭力提升績效責(zé)任書范本
- 教育小學(xué)生友愛課件
- 2025年中國氣缸蓋螺栓市場調(diào)查研究報(bào)告
- 二零二五年度海底管道施工中途退場及海洋環(huán)境保護(hù)協(xié)議
- 二零二五年度火鍋連鎖餐飲特許經(jīng)營合同
- 2023年山東鋁業(yè)職業(yè)學(xué)院單招綜合素質(zhì)題庫及答案解析
- 【人教版二年級下冊數(shù)學(xué)】全冊課時鞏固提升練習(xí)和單元鞏固提升練習(xí)
- GB/T 2007.1-1987散裝礦產(chǎn)品取樣、制樣通則手工取樣方法
- 交流課:資本主義世界市場的形成
- 城市社會學(xué)(2015)課件
- 年產(chǎn)2萬噸馬來酸二乙酯技改建設(shè)項(xiàng)目環(huán)評報(bào)告書
- 中國古代文論教程完整版課件
- 中班美工區(qū)角活動教案10篇
- SJG 103-2021 無障礙設(shè)計(jì)標(biāo)準(zhǔn)-高清現(xiàn)行
- 皇冠假日酒店智能化系統(tǒng)安裝工程施工合同范本
- 路面工程重點(diǎn)、關(guān)鍵、和難點(diǎn)工程的施工方案(技術(shù)標(biāo))
評論
0/150
提交評論