- 相關(guān)推薦
JAVA的動態(tài)考試系統(tǒng)的設(shè)計
基于JAVA的動態(tài)考試系統(tǒng)的設(shè)計與實(shí)現(xiàn)
摘 要:隨著計算機(jī)技術(shù)的飛速發(fā)展,能否利用現(xiàn)代化的技術(shù)使得繁重的工作由復(fù)雜變簡單,是衡量工作效率的一個重要方面。一個完備的考試系統(tǒng)可以使學(xué)生及時檢測自己的學(xué)習(xí)效果,從而發(fā)現(xiàn)自己的不足之處從而查漏補(bǔ)缺,更好的提高自己的學(xué)習(xí)效率。動態(tài)考題系統(tǒng)中的題目的抽取,試卷提交,成績的批改均是自動完成的。只要有比較成熟的試題庫便可以實(shí)現(xiàn)考試的全自動化。動態(tài)考題系統(tǒng)的開發(fā)適應(yīng)了新形勢的發(fā)展要求,是學(xué)?荚嚕o助教學(xué)管理、管理考試以及學(xué)生的上機(jī)實(shí)踐等一系列活動的最佳選擇。
關(guān)鍵詞:動態(tài);考題;窗體
1.系統(tǒng)功能簡介
動態(tài)考試系統(tǒng)由多個窗體組成,在系統(tǒng)的登錄界面可以選擇不同類型的用戶進(jìn)行登錄,考生身份登錄后可進(jìn)行考試、查分、修改密碼等操作。系統(tǒng)管理員登錄后有進(jìn)行添加、編輯、刪除用戶信息和相關(guān)考題等權(quán)限。
2.技術(shù)簡介
2.1 Swing是Java中用戶界面開發(fā)工具包,主要用于開發(fā)Java應(yīng)用程序的用戶界面。其工具包里面有很多以swing來命名的,如:javax.swing;就avax.swing.event.等等。在程序設(shè)計時首先導(dǎo)入swing工具包組件,選擇相應(yīng)的界面風(fēng)格,同時設(shè)置頂層容器,在容器中添加相應(yīng)組件,如:文本框,按鈕等等。Swing主要應(yīng)用于各種界面中的時間處理,如:動作事件監(jiān)聽,鍵盤和鼠標(biāo)事件監(jiān)聽等等。
2.2 mySQL是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可搭配Apache和PHP組成良好的開發(fā)環(huán)境,一般的網(wǎng)站開發(fā)均選擇這種數(shù)據(jù)庫,因?yàn)槠潢P(guān)聯(lián)數(shù)據(jù)保存在不同的表中,并沒有將所有的數(shù)據(jù)放置在同一個表中,大大提高了速度和靈活性。
3.預(yù)設(shè)問題及處理方法
3.1 窗體背景處理
設(shè)置背景的方法可實(shí)現(xiàn)將指定的圖片繪制到窗體面板的容器中,從而設(shè)置整個窗體的背景。其主要使用了Graphic類將所需圖片放至JPanel面板中,通過設(shè)置相應(yīng)布局調(diào)整各組件的位置。
3.2 字符處理類
字符處理類的編寫主要是防止對數(shù)據(jù)庫進(jìn)行讀寫或查詢操作是出現(xiàn)的亂碼現(xiàn)象,該類可對亂碼字符進(jìn)行轉(zhuǎn)碼。
3.3 時間處理
考試系統(tǒng)需要在主窗口顯示倒計時來提醒考生剩余的時間,系統(tǒng)在設(shè)計這個方法時采用的是單獨(dú)線程處理,當(dāng)?shù)褂嫊r為0是強(qiáng)制交卷。該方法的實(shí)現(xiàn)主要是獲取系統(tǒng)時間與管理員設(shè)置的考試時間之間的差,將其作為標(biāo)簽的顯示值添加到窗體中。
4.登錄窗體
主要有兩種身份登錄考試系統(tǒng),一種是學(xué)生身份,登錄之后直接考試。另一種是管理員身份登錄之后進(jìn)行用戶,試題,管理等操作。
4.1 登錄身份驗(yàn)證
登錄窗體需要編寫按照用戶名和密碼檢索的方法,同時為了保護(hù)用戶信息安全,在數(shù)據(jù)庫中存放的用戶密碼均采用了MD5加密技術(shù)。當(dāng)用戶輸入時將其密碼加密之后再與數(shù)據(jù)庫中的密碼相驗(yàn)證。匹配正確則通過登錄,否則提示錯誤。同時設(shè)置字段值0代表未登錄過的用戶,1代表已登錄過的用戶,以此來判斷考生考試與否。若用戶名已經(jīng)使用過,意味著該考生已完成考試,不允許再次考試。
5.考試主窗體
5.1 顯示考生姓名
系統(tǒng)將已經(jīng)完成登錄的用戶的ID號保存在文本文件中。在窗體中通過考生的ID號檢索出考生姓名并且顯示在考試窗體中。
5.2 顯示考題
動態(tài)考題系統(tǒng)中的每套試題都是隨機(jī)抽取的,然后將抽取到的試題顯示在考試的主窗體中。首先數(shù)據(jù)表中保存所有的考試題目,編寫好檢索某一類型試題集合的方法之后,從指定的試題集合中隨機(jī)抽取一定數(shù)目的試題即可?荚嚧绑w中使用了多個選項(xiàng)卡面板功能,實(shí)現(xiàn)同一個窗體中有不同的考試題目類型,如考生選擇“多選題”選項(xiàng)卡則顯示“多選題”的相關(guān)試題。
5.3 自動閱卷
當(dāng)考生考試結(jié)束單擊“提交試卷”按鈕后將實(shí)現(xiàn)自動閱卷,并及時將考試成績顯示給考生。在考生解答試題時,系統(tǒng)會將考生的答案保存到相應(yīng)的集合中,考試結(jié)束后程序?qū)⑼ㄟ^隨即抽取試題數(shù)組中的元素匹配考生選擇的答案,看是否與答案一致,并通過考試參數(shù)表中設(shè)置的各題分?jǐn)?shù)來決定考生的分?jǐn)?shù)。
5.4 題目切換
考生解答完成當(dāng)前題目時,可點(diǎn)擊“下一題”按鈕來解答下一題。若要完成顯示“下一題”的考試題目,需要從保存隨即抽取試題編號的數(shù)組中獲取下一個元素,獲取信息將作為窗口組件內(nèi)容顯示出來。當(dāng)考生單擊“上一題”將會顯示上一題內(nèi)容,要想實(shí)現(xiàn)上一題功能,需要從書籍抽取試題的數(shù)組中獲取當(dāng)前顯示試題的前一個元素的值,并用它來查詢問題表中的信息,最終將其顯示在窗體的組件中。
6.管理員查分功能
6.1 按考生號查詢成績
當(dāng)用戶選擇按考生號查詢時,需要查詢值文本框中輸入正確的查詢條件,程序此時將調(diào)用相應(yīng)查詢分?jǐn)?shù)的方法,并將查詢結(jié)果顯示在窗體中。該方法是通過SQL語句循環(huán)遍歷查詢結(jié)果集來實(shí)現(xiàn)的。
6.2 按考生姓名查詢成績
按姓名查詢成績和按考生號查詢方法類似,遍歷時對應(yīng)字段不同,一個是對考生ID,另一個是對考生姓名來進(jìn)行遍歷。用戶將需要查詢的姓名輸入相應(yīng)的文本框中,程序調(diào)用不同的查詢方法將結(jié)果顯示在窗體中。
7.添加考題
7.1 存儲考題
主要采用List集合來存儲所有考題,在添加考題窗口中不允許用戶更改考題編號。所以采用了只讀形式顯示。
7.2 自動計算考題號
該方法實(shí)現(xiàn)主要調(diào)用檢索數(shù)據(jù)表中全部數(shù)據(jù)的方法,獲取數(shù)據(jù)表中最后一條記錄的ID編號,將次ID加1即可實(shí)現(xiàn)自動計算考題號。
8.修改和刪除考題
8.1 修改考題
當(dāng)用戶想修改考題時,單擊修改按鈕后程序會自動將用戶選擇的試題ID寫入相應(yīng)的文本文件中,再從數(shù)據(jù)庫中提取相應(yīng)的數(shù)據(jù)條即檢索出相應(yīng)數(shù)據(jù),再將其設(shè)置為窗體顯示,用戶可在窗體界面中修改試題內(nèi)容,也可以修改答案和備注。
8.2 刪除試題
若有需要刪除的試題,用戶可直接單擊刪除按鈕,產(chǎn)生相應(yīng)事件,程序會提示用戶是否刪除試題。確認(rèn)之后便可刪除。
9 總結(jié)
絕大多數(shù)學(xué)校組織一次考試至少要經(jīng)過五步:出題,考試,人工閱卷,成績評估和試卷分析,這些工作非常繁瑣和極容易出錯,同時教師的工作量非常大。因此傳統(tǒng)的考試模式注定被新型的計算機(jī)技術(shù)動態(tài)考試程序來替代。動態(tài)考題系統(tǒng)的出現(xiàn)正是修正了傳統(tǒng)考試的弊端,提高了考試工作效率。
動態(tài)考題系統(tǒng)中設(shè)計了題目的生成、試卷提交、成績評估等功能。只要有比較成熟的試題庫便可實(shí)現(xiàn)考試的全自動化,這樣教師只需要精心設(shè)計題目并維護(hù)好題庫,大大減少了教師的工作量。
【JAVA的動態(tài)考試系統(tǒng)的設(shè)計】相關(guān)文章:
什么是Java10-28
java語言程序設(shè)計實(shí)驗(yàn)報告10篇12-08
執(zhí)業(yè)醫(yī)師考試循環(huán)系統(tǒng)速記口訣08-22
生態(tài)系統(tǒng)信息傳遞教學(xué)設(shè)計07-24
java類的構(gòu)成04-28
周圍神經(jīng)系統(tǒng)教學(xué)設(shè)計07-27
江西省百萬網(wǎng)民學(xué)法律考試系統(tǒng)04-30
Java語言的內(nèi)部類12-13
java線程的幾種狀態(tài)12-14
Java基礎(chǔ)知識精選02-20