系統(tǒng)管理需求分析_第1頁
系統(tǒng)管理需求分析_第2頁
系統(tǒng)管理需求分析_第3頁
系統(tǒng)管理需求分析_第4頁
系統(tǒng)管理需求分析_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、蘭州城市學(xué)院本科畢業(yè)論文在線考試系統(tǒng) 管理員模塊設(shè)計(jì)學(xué) 院 名 稱:信息工程學(xué)院專 業(yè) 名 稱:計(jì)算機(jī)科學(xué)與技術(shù)(網(wǎng)絡(luò))學(xué) 生 姓 名:謝斌 指 導(dǎo) 教 師:文靜 講師 二一四年五月摘 要本系統(tǒng)是一個(gè)基于Java面向?qū)ο蟪绦蛘Z言的在線考試系統(tǒng),用戶角色由學(xué)生、教師和系統(tǒng)管理員組成。本系統(tǒng)主要實(shí)現(xiàn)了自動組卷、學(xué)生在線考試、教師在線批閱和考試設(shè)置、試題維護(hù)、分?jǐn)?shù)統(tǒng)計(jì)等功能。在這個(gè)系統(tǒng)中主要設(shè)計(jì)了管理員模塊,負(fù)責(zé)修改/查閱、分析成績、用戶信息維護(hù)等功能的實(shí)現(xiàn)。本系統(tǒng)采用B/S模式設(shè)計(jì)。系統(tǒng)所用到的技術(shù)有HTML、CSS、Javascript、JSP、Servlet等。數(shù)據(jù)庫選用SQLServer20

2、05,Web服務(wù)器選用TomCat7.x。前臺設(shè)計(jì)主要在DreamWeaver上設(shè)計(jì)完成,后臺開發(fā)主要在Myeclipse上完成。關(guān)鍵詞:Java;在線考試;隨機(jī)抽題;自動組卷目 錄摘 要I第1章 緒論11.1 問題的提出11.2 系統(tǒng)開發(fā)目標(biāo)11.3 開發(fā)工具的選擇11.4 開發(fā)本系統(tǒng)的意義2第2章 系統(tǒng)分析32.1 背景分析32.2 可行性分析32.2.1 技術(shù)可行性分析32.2.2 經(jīng)濟(jì)可行性3 方案可行性4第3章 系統(tǒng)設(shè)計(jì)53.1 需求分析53.2 總體設(shè)計(jì)63.2.1 系統(tǒng)數(shù)據(jù)流圖63.2.2 系統(tǒng)的功能模塊圖7系統(tǒng)功能模塊83.3 數(shù)據(jù)庫設(shè)計(jì)10 數(shù)據(jù)字典103.3.2 實(shí)體關(guān)系圖

3、133.3.3 數(shù)據(jù)庫的連接153.4 詳細(xì)設(shè)計(jì)17公共類設(shè)計(jì)173.4.2 在線考試模塊設(shè)計(jì)203.4.3 成績查詢模塊設(shè)計(jì)223.4.4 查看/修改考生試卷模塊設(shè)計(jì)223.4.5 分?jǐn)?shù)段統(tǒng)計(jì)模塊設(shè)計(jì)25 個(gè)人信息維護(hù)模塊設(shè)計(jì)253.4.7 試題維護(hù)模塊設(shè)計(jì)293.4.8 考試設(shè)置信息維護(hù)模塊設(shè)計(jì)293.4.9 用戶管理模塊設(shè)計(jì)30第4章 系統(tǒng)測試334.1 系統(tǒng)運(yùn)行環(huán)境334.2 測試目的334.3 各功能模塊測試33 查看/修改試卷測試34 分?jǐn)?shù)段統(tǒng)計(jì)測試34 用戶管理測試354.4系統(tǒng)壓力測試364.5用戶體驗(yàn)37結(jié)論38參考文獻(xiàn)39致 謝40第1章 緒論1.1 問題的提出計(jì)算機(jī)技術(shù)的

4、發(fā)展及計(jì)算機(jī)的日益普及,很多國內(nèi)外的大學(xué)和社會其他部門都已經(jīng)開設(shè)了遠(yuǎn)程教育,通過計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)異地教育和培訓(xùn),從而為在線考試系統(tǒng)發(fā)展提供了堅(jiān)實(shí)的基礎(chǔ)。如今計(jì)算機(jī)硬件技術(shù)的發(fā)展已經(jīng)達(dá)到了相當(dāng)高的水平。但是,我國遠(yuǎn)程教育軟件的開發(fā)目前還處于起步階段,隨著這項(xiàng)技術(shù)不斷深入發(fā)展,就要求有更好、更完善的軟件系統(tǒng)應(yīng)用到遠(yuǎn)程教育當(dāng)中去,這就給軟件設(shè)計(jì)人員提出了更高的設(shè)計(jì)要求。   在二十一世紀(jì)的新時(shí)代,隨著計(jì)算機(jī)技術(shù)的發(fā)展及計(jì)算機(jī)的日益普及,基于在線考試與無紙化辦公一樣已成為大勢所趨。在線考試系統(tǒng)也越來越成為學(xué)校的好幫手,它的優(yōu)勢不但體現(xiàn)在人力上也體現(xiàn)在物力上,在線考試系統(tǒng)的采用自動評閱

5、、計(jì)分、成績存檔功能將有效地避免資源的浪費(fèi),有利于環(huán)保,減少人員操作,節(jié)約成本,提高效率。1.2 系統(tǒng)開發(fā)目標(biāo)該系統(tǒng)是一個(gè)基于B/S模式的Web在線考試系統(tǒng)。它能夠從題庫中隨機(jī)抽取試題生成考試試卷,從而有效地提升考試效率與公平性,使考試不受時(shí)間和地點(diǎn)的限制。使學(xué)生可以更加靈活的檢測自己的不足,提高學(xué)習(xí)效率。 當(dāng)考試完成后系統(tǒng)能自動地為客觀題評分。教師登陸時(shí)系統(tǒng)可以還原學(xué)生考試試卷,待教師對主觀題評完分后系統(tǒng)可以計(jì)算出學(xué)生總分,并生成各分?jǐn)?shù)段情況信息,供給老師參考,便于了解學(xué)生的考試情況。同時(shí)充分利用計(jì)算機(jī)優(yōu)勢對數(shù)據(jù)進(jìn)行有效的管理,達(dá)到減輕管理者和老師的工作量。1.3 開發(fā)工具的選擇本

6、系統(tǒng)開發(fā)語言為JAVA,從各IDE的性能和價(jià)格考慮所使用的開發(fā)工具主要是Eclipse+MyEclipse,前臺頁面主要用DreamWeaver來設(shè)計(jì)。由于本系統(tǒng)數(shù)據(jù)量和負(fù)載量都比較大,從經(jīng)濟(jì)和效率上考慮本系統(tǒng)選用SQLServer2005數(shù)據(jù)庫。 Web服務(wù)器選Apache開源組織提供的TomCat,因?yàn)門omCat是一個(gè)免費(fèi)的開源軟件是SUN公司推薦的Web服務(wù)器。系統(tǒng)自帶的IE瀏覽器。1.4 開發(fā)本系統(tǒng)的意義從電子文檔、多媒體的應(yīng)用,到利用Internet做嘗試,網(wǎng)絡(luò)已經(jīng)滲入到教育體系的各個(gè)環(huán)節(jié)。在線考試系統(tǒng)作為這場變革中必不可少的環(huán)節(jié)之一,受到越來越多的關(guān)注。在線考試系統(tǒng)不僅和傳統(tǒng)考試

7、方式一樣要權(quán)衡公平性,應(yīng)該有方便、節(jié)約成本等特性。從管理的角度看,在線考試系統(tǒng)可以幫助教師完成從題目設(shè)計(jì),考試安排考試實(shí)施,考卷批改到分?jǐn)?shù)統(tǒng)計(jì)總結(jié)的所有工作,系統(tǒng)實(shí)現(xiàn)了無紙化管理,提高了管理的效率。從規(guī)范化管理上,在線考試系統(tǒng)很好的實(shí)現(xiàn)了考試和教育相分離,任課老師以不參與所任課程的考試,包括出題、監(jiān)考、評卷、登分和質(zhì)量分析。強(qiáng)調(diào)嚴(yán)格按教學(xué)大綱教學(xué),根據(jù)培養(yǎng)目標(biāo)、教學(xué)目的、教學(xué)大綱,制定考核大綱,建立一套包括試題庫、自動命題、閱卷、評分、考試分析、成績管理等各種規(guī)章制度完備的考核管理系統(tǒng)。不受空間限制,只要有考試客戶端可以連接到考試應(yīng)用服務(wù)器,任何考生在任何地方進(jìn)行身份確認(rèn),都能完成考試題目有一

8、定的穩(wěn)定性和隨機(jī)性。 考試結(jié)果反饋的及時(shí)準(zhǔn)確性考試的結(jié)果在教師修改考完之后就可以知道,同時(shí)提供一個(gè)機(jī)會讓考生知道自己哪里做錯(cuò)了,并給出反饋信息說明理由,考生的考試結(jié)果可以被保存下來,供教師進(jìn)行長期的分析和統(tǒng)計(jì),有益于教學(xué)水平的提高。第2章 系統(tǒng)分析2.1 背景分析網(wǎng)絡(luò)化教育代表了教育改革的一個(gè)發(fā)展方向,已經(jīng)成為現(xiàn)代教育的一個(gè)特征。隨著Internet/Intranet的迅速發(fā)展和廣泛普及,建立在其上的遠(yuǎn)程教育成為現(xiàn)代教育技術(shù)未來發(fā)展方向之一,考試測試作為遠(yuǎn)程教育的一個(gè)子系統(tǒng)也成為一個(gè)重要的研究領(lǐng)域。現(xiàn)代遠(yuǎn)程教育作為一種新的教學(xué)手段已經(jīng)開始進(jìn)入我們的生活,正在給傳統(tǒng)教育模式帶來新的變革,并對教育

9、的發(fā)展形成新的推動力。相比傳統(tǒng)的考試方式,在線考試系統(tǒng)的主要好處是一方面可以動態(tài)地管理各種考試信息,只要準(zhǔn)備好足夠大的題庫,從該題庫中抽取一定數(shù)量的考題生成考試試卷,從而有效地避免了考試作弊,相互抄襲的弊端;另一方面,考試時(shí)間靈活,可以在規(guī)定的時(shí)間段內(nèi)的任意時(shí)間參加考試;另外計(jì)算機(jī)化的考試的最大特點(diǎn)是閱卷快,系統(tǒng)可以在考試結(jié)束時(shí)當(dāng)場給考生成績,計(jì)算機(jī)閱卷給了考生最大的公平感。2.2 可行性分析2.2.1 技術(shù)可行性分析系統(tǒng)開發(fā)將要用到JSP/Servlet、JavaBean、SQLServer數(shù)據(jù)庫技術(shù)。另外,硬件只需要一臺pc機(jī),裝上軟件Eclipse,DreamWeaver等開發(fā)工具即可

10、,利用SQLserver作為后臺的數(shù)據(jù)庫,利用Tomcat作為Web服務(wù)器,所以在這方面來說是可行的。已經(jīng)掌握了開發(fā)考試系統(tǒng)方法和開發(fā)工具,并且在調(diào)查過程中,已經(jīng)了解和熟悉了在線考試系統(tǒng)的業(yè)務(wù)流程。綜上所述本系統(tǒng)開發(fā)從技術(shù)上是可行的。2.2.2 經(jīng)濟(jì)可行性從經(jīng)濟(jì)效益來分析,軟件的開發(fā)成本不大,而其它的投入也只是電腦。電腦的普及也帶來了低成本投入。由于系統(tǒng)運(yùn)行的基礎(chǔ)環(huán)境均已具備,無需重新開發(fā)建設(shè),所以系統(tǒng)開發(fā)、運(yùn)行所需的費(fèi)用是比較低的。而系統(tǒng)的效益很高可以提高管理效率實(shí)現(xiàn)計(jì)算機(jī)化、系統(tǒng)化、規(guī)范化操作,效率大于投入,可行性很高。方案可行性根據(jù)系統(tǒng)的分析,本系統(tǒng)充分從適用性出發(fā),全面為不同的使用用戶

11、考慮。使系統(tǒng)的許多功能與規(guī)則都可根據(jù)用戶的習(xí)慣進(jìn)行定制,包括軟件界面、操作方式、錄入方式等。本系統(tǒng)的設(shè)計(jì)充分從使用用戶和教務(wù)教學(xué)任務(wù)考慮。第3章 系統(tǒng)設(shè)計(jì)3.1 需求分析本考試系統(tǒng)用戶主要分為三類:學(xué)生,教師,管理員。1.學(xué)生需求學(xué)生登陸系統(tǒng)主要進(jìn)行兩類操作:在線考試,成績查詢與個(gè)人信息管理.(1)在線考試系統(tǒng)能自動根據(jù)所選科目給考生選題,考題必須是隨機(jī)分配的,以保證考試的公平性。學(xué)生在考試過程中頁面將提供考試時(shí)間倒計(jì)時(shí)功能,使考生隨時(shí)了解考試剩余時(shí)間。考試時(shí)間到時(shí),系統(tǒng)將自動地將學(xué)生考試試卷提交,將提醒考生離開考場。當(dāng)考試試卷提交時(shí),系統(tǒng)自動為選擇題、判斷題等客觀題評分,主觀題由教師評分。(

12、2)成績查詢與個(gè)人信息維護(hù)學(xué)生可以登陸系統(tǒng)查詢各科成績,其中成績信息包括每種題型的得分,如單選題,簡答題等。別外學(xué)生還可以查詢自己的考卷,了解自己的考試情況。除此之外,學(xué)生登陸系統(tǒng)可以查看和修改個(gè)人的基本信息,如修改密碼等。2.教師需求教師登陸系統(tǒng)主要有三類操作:查看和修改學(xué)生試卷,查看各分?jǐn)?shù)段統(tǒng)計(jì),個(gè)人信息的維護(hù)(1)查看/修改學(xué)生試卷系統(tǒng)會將學(xué)生試卷從數(shù)據(jù)庫中讀出供給老師查看和修改,系統(tǒng)已經(jīng)對選擇題和判斷題評了分,所以這些信息對于教師是只讀的。而對于主觀題,系統(tǒng)將參考答案讀出供給老師參考,再將考生答案讀出供給教師評分。(2)查看分?jǐn)?shù)統(tǒng)計(jì)教師修改好試卷之后,系統(tǒng)將成績匯總,生成各分?jǐn)?shù)段統(tǒng)計(jì)信

13、息,并提供給老師查看,以便教師能了解學(xué)生的學(xué)習(xí)情況。(3)個(gè)人信息維護(hù)教師登陸系統(tǒng)之后也可以對個(gè)人信息進(jìn)行查看和修改。3.管理員系統(tǒng)管理員登陸系統(tǒng)后主要進(jìn)行四類操作:考題維護(hù),考試信息的維護(hù),用戶維護(hù)和個(gè)人信息維護(hù)(1)考題的維護(hù)管理員可以往題中添加考題,修改錯(cuò)誤試題和刪除無用試題。為了方便試題的維護(hù),管理員也可以批量導(dǎo)入試題。(2)考試信息的維護(hù)考試信息的維護(hù)主要是對于考試設(shè)置信息進(jìn)行維護(hù),這些信息主要是考試總時(shí)間,試題數(shù)量,各試題分值的分布等。(3)用戶維護(hù)系統(tǒng)管理員可以對用戶信息(包括學(xué)生信息,教師信息等)進(jìn)行增,刪,改查操作。為了方便用戶(學(xué)生)的維護(hù),管理員也可以批量導(dǎo)入學(xué)生信息。(

14、4)個(gè)人信息維護(hù)管理員也可以對自己的基本信息的維護(hù)3.2 總體設(shè)計(jì)3.2.1 系統(tǒng)數(shù)據(jù)流圖根據(jù)分析系統(tǒng)可知數(shù)據(jù)流圖如圖3.1所示:圖3.1 系統(tǒng)數(shù)據(jù)流圖 系統(tǒng)的功能模塊圖根據(jù)圖3.1所述需求,設(shè)計(jì)出系統(tǒng)功能模塊如圖3.2所示:圖3.2 系統(tǒng)的功能模塊圖3.2.3 系統(tǒng)功能模塊1.在線考試在線考試的流程如下:首先系統(tǒng)按照隨機(jī)算法為登錄的考生隨機(jī)選取一定的試題生成考試試卷,考生在系統(tǒng)生成好試卷后進(jìn)行答題操作。答題必須在規(guī)定的時(shí)間內(nèi)進(jìn)行,此時(shí)間是由管理員事先設(shè)置好的,如在規(guī)定的時(shí)間內(nèi)沒有完成答題,系統(tǒng)將強(qiáng)制提交學(xué)生考試試卷??忌谠嚲硖峤缓笙到y(tǒng)自動地為客觀題進(jìn)行評分,本系統(tǒng)的客觀題主要是單選題,多選

15、題和判斷題。其數(shù)據(jù)流圖如3.3所示:圖3.3 在線考試數(shù)據(jù)流圖2.成績查詢考生根據(jù)用戶編號查詢考試成績信息。成績信息包括單選題得分,多選題得分等詳細(xì)信息。頁面提供相應(yīng)科目試卷的鏈接,使得學(xué)生可以查詢自己的考卷,了解自己的考試情況。3.查看/修改考生試卷 系統(tǒng)首先將考生的試卷讀出,再提醒老師對主觀題評分,等老師對主觀題進(jìn)行評分后系統(tǒng)生成考生的成績信息,其數(shù)據(jù)流圖如圖3.4所示:圖3.4 修改學(xué)生試卷數(shù)據(jù)流圖4.分?jǐn)?shù)段統(tǒng)計(jì) 當(dāng)教師對考卷的主觀題評定后,系統(tǒng)能自動生成分?jǐn)?shù)段統(tǒng)計(jì)信息供給老師查看。此功能有助于老師了解學(xué)生的學(xué)習(xí)情況,以便更好的教學(xué)。5.試題維護(hù)試題維護(hù)是后臺管理員的重要功能,它包括對試

16、題的添加,修改,刪除操作。為了使界面更友好,管理員在試題維護(hù)時(shí)系統(tǒng)會先將考試試題讀出,再提供給管理員操作。其數(shù)據(jù)流圖如圖3.5所示: 圖3.5 考題維護(hù)數(shù)據(jù)流圖6.考試設(shè)置信息維護(hù)考試設(shè)置信息維護(hù)是管理員對考試設(shè)置信息維護(hù),它包括對考試設(shè)置信息的添加,修改,刪除。這些考試信息包括考試時(shí)間,考題的數(shù)量和分值等。其數(shù)據(jù)流圖如圖3.6所示:圖3.6 考試設(shè)置信息維護(hù)數(shù)據(jù)流圖7.用戶管理 用戶管理是管理員對系統(tǒng)用戶信息的管理。這些用戶包括學(xué)生和教師。用戶管理操作包括添加用戶,更新用戶和刪除用戶。管理用戶時(shí),系統(tǒng)會先將用戶信息讀出供給管理員參考,再提供給管理員操作。其數(shù)據(jù)流圖如圖3.7所示:圖3.7 用

17、戶管理數(shù)據(jù)流圖8.個(gè)人信息維護(hù)學(xué)生,教師,管理員都可以對個(gè)人信息進(jìn)行維護(hù)。維護(hù)操作包括對個(gè)人基本信息進(jìn)行修改,修改密碼等。系統(tǒng)能提供極為友好的界面方便用戶操作。3.3 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)字典通過對系統(tǒng)功能的分析可知,本系統(tǒng)主要包括如下的數(shù)據(jù)庫信息:用戶表,該表保存了系統(tǒng)用戶的基本信息,屬性有用戶編號、用戶名稱、用戶類型、用戶性別。其中用戶編號為主碼,它是用戶信息的唯一標(biāo)識。表結(jié)構(gòu)如表3.1所示??忌鷺?biāo)記表,該表用于保存考生是否已經(jīng)考試的標(biāo)識信息,屬性有用戶編號、課程名稱、標(biāo)識信息。其中用戶編號和課課程名稱共同作為主碼。表結(jié)構(gòu)如表3.2所示??碱}表,該表用于保存考題的基本信息,屬性有考題編號,課程名

18、稱,考題類型,題目級參考答案等。其中考題編號為主碼。表結(jié)構(gòu)如表3.3所示。試卷設(shè)置表,該表用于記錄相應(yīng)課程的考試設(shè)置的相關(guān)信息,屬性有課程名稱,單選題、多選題、判斷題、簡答題、編程題數(shù)量和分值,考試時(shí)間等。其中課程名稱為主碼。表結(jié)構(gòu)如表3.4所示。試卷表,該表用于保存考生的試卷信息,屬性有考生編號,課程名稱,考題類型,考生答案和得分等。其中考生編號和課程名稱共同作為主碼。表結(jié)構(gòu)如表3.5所示。成績表,該表用于保存考生的考試成績信息,屬性有考生編號,課程名稱,各考題得分,總得分。其中考生編號和課程名稱共同作為主碼。表結(jié)構(gòu)如表3.6所示。系統(tǒng)表結(jié)構(gòu)如下:表3.1 用戶表(UserInfo)字段類型

19、允許為空說明備注UidVarchar(10)否用戶編號pkNameVarchar(50)是用戶姓名UtypeInt是用戶類型1為學(xué)生,2為教師,3為管理員passwordVarchar(10)是密碼SexVarchar(2)是性別表3.2 用戶標(biāo)記表(userflag)字段類型允許為空說明備注UidVarchar(10)否用戶編號pkCourseVarchar(20)否課程名稱pkFlagInt否用戶標(biāo)記0試卷未提交 1試卷已提交表3.3 考題表(Question)字段類型允許為空說明備注QidInt否考題編號pk 自增長qtypeInt是考題類型1單選題 2多選題 3判斷題 4簡答題 5編程

20、題courseVarchar(20)是課程名稱QuesText是題目keyAVarchar(50)是選項(xiàng)AkeyBVarchar(50)是選項(xiàng)BkeyCVarchar(50)是選項(xiàng)CkeyDVarchar(50)是選項(xiàng)DanswerText是參考答案表3.4 考試設(shè)置表(test_set)字段類型允許為空說明備注CourseVarchar(20)否科目pkSincInt否單選題數(shù)persinInt否每個(gè)單選題的分值mulcInt否多選題數(shù)permulInt否每個(gè)多選題的分值judgeInt否判斷題數(shù)perjuInt否每個(gè)判斷題的分值JdInt否簡答題數(shù)perjdInt否每個(gè)簡答題的分值prog

21、ramInt否編程題數(shù)perproInt否每個(gè)編程題的分值totaltimeInt否考試時(shí)間表3.5 試卷表(test)字段類型允許為空說明備注UidVarchar(10)否用戶編號pkQidInt否考題編號pk 題庫中的題號CourseVarchar(20)否課程名稱QtypeInt否考題類型1單選題 2多選題 3判斷題 4簡答題 5編程題answerText是考生答案TnumberInt否題目編號試卷中的第幾題scoreFloat是得分表3.6 成績表(record)字段類型允許為空說明備注UidVarchar(10)否用戶編號pkCourseVarchar(20)否課程名稱pkscore

22、Float否總得分singleFloat否單選題得分multiplyFloat否多選題得分judgeFloat否判斷題得分JdFloat否簡答題得分programFloat否編程題得分3.3.2 實(shí)體關(guān)系圖 根據(jù)分析系統(tǒng)實(shí)體關(guān)系圖如圖3.8所示:圖3.8 系統(tǒng)E-R圖系統(tǒng)各實(shí)體關(guān)系如下:用戶:用戶標(biāo)記 1:N考試設(shè)置:用戶標(biāo)記 1:N考題:考試設(shè)置 N:1考題:試卷 1:N用戶:試卷 1:N試卷:成績 N:1用戶:成績 1:N3.3.3 數(shù)據(jù)庫的連接在本系統(tǒng)中我們使用JDBC連接,要進(jìn)行數(shù)據(jù)庫連接首先配置數(shù)據(jù)源。按照和的設(shè)計(jì),設(shè)計(jì)好數(shù)據(jù)庫Myexam,再建一個(gè)名為Myexam的數(shù)據(jù)源。系統(tǒng)連接

23、數(shù)據(jù)庫的流程圖如圖3.9所示:圖3.9系統(tǒng)連接數(shù)據(jù)庫流程圖建立數(shù)據(jù)庫連接和關(guān)閉數(shù)據(jù)庫連接操作方法代碼及說明如下,這些方法位于DBAccess類中,當(dāng)作工具類來用static/靜態(tài)代碼塊,在類被實(shí)例化時(shí)被調(diào)用,且只被調(diào)用一次 try lass.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");/注冊驅(qū)動 catch(ClassNotFoundException e) throw new ExceptionInInitializerError(e); /得到連接 public Connection getConnec

24、tion() try String url = "jdbc:sqlserver:/localhost:1433;databaseName=ExamOnline"/ SQLServer 2005配置時(shí)的用戶名String user = "sa"/ SQLServer 2005配置時(shí)的密碼String password = "123456"/ 連接數(shù)據(jù)庫conn = DriverManager.getConnection(url, user, password); catch(Exception e) e.printStackTrace(

25、); out.print(e.toString(); return conn; /關(guān)閉數(shù)據(jù)庫連接public void CloseDB(Connection conn,Statement sm,ResultSet rs) try if(rs!=null) rs.close(); catch (Exception e) e.printStackTrace(); out.print("數(shù)據(jù)庫關(guān)閉失??!");finallytryif(sm!=null)sm.close();catch(Exception e)e.printStackTrace();out.print("

26、數(shù)據(jù)庫關(guān)閉失??!");finallytryif(conn!=null)conn.close();catch(Exception e)e.printStackTrace();out.print("數(shù)據(jù)庫關(guān)閉失??!");3.4 詳細(xì)設(shè)計(jì)公共類設(shè)計(jì)1Domain類設(shè)計(jì)由于數(shù)據(jù)庫使用的類系統(tǒng)模型,而Java數(shù)據(jù)為對象模型,使其模型不匹配。為了方便關(guān)系模型和對象模型間的轉(zhuǎn)換,建應(yīng)Domain類,即數(shù)據(jù)庫中每個(gè)表對應(yīng)一個(gè)類,表中類屬性對應(yīng)表的各屬性,再為各個(gè)屬性設(shè)計(jì)一個(gè)讀方法(get)和一個(gè)寫方法(set)如用戶類:public class User private Stri

27、ng id=""private String name=""private int type=1;private String password=""private String sex = ""public String getSex();public void setSex(String sex) ;public String getPassword();public void setPassword(String password);public String getId();public void setI

28、d(String id);public String getName();public void setName(String name);public int getType();public void setType(int type);表和類的對應(yīng)關(guān)系如下:用戶表(UserInfo)用戶類(User)用戶標(biāo)記表(userflag)用戶標(biāo)記類(UserFlag)考題表(Question)考題類(Question)試卷表(test)試卷類(Test)試卷設(shè)置表(test_set)試卷設(shè)置類(Test)成績表(record)成績類(Record)試卷考題類(TestQuestion)試卷表和考

29、題表聯(lián)合查詢視圖2.公具類設(shè)計(jì)根據(jù)系統(tǒng)設(shè)計(jì)需求,設(shè)計(jì)如下工具類:數(shù)據(jù)庫連接工具類,主要提供連接數(shù)據(jù)操作等相關(guān)方法數(shù)據(jù)庫連接類:public class DBAccess public Connection getConnection()/并閉數(shù)據(jù)庫連接public void CloseDB(Connection conn,Statement sm,ResultSet rs)用戶操作相關(guān)類,主要提供對用戶表操作的相關(guān)類public class UserUtil /根據(jù)用戶編號得到用戶信息public User getUser(String Uid) /驗(yàn)證登陸信息,根據(jù)用戶名、密碼和用戶類型pu

30、blic boolean checkUser(String userName,String password,int type)/修改用戶信息public boolean motifyUser(User user) /添加用戶信息public boolean insertUser(User user) /修改密碼public boolean motifyPassword(String Uid,String password) /得到指定頁的用戶public ArrayList getAllUser(int pageSize,int current) /得到用戶數(shù)量public int getC

31、ount() /刪除用戶信息public boolean deleteUser(String Uid) 用戶標(biāo)記工具類,主要提供對用戶標(biāo)記表的相關(guān)操作方法public class UserFlagUtil /得到交卷信息public int getFlag(String Uid,String course) /設(shè)置交卷信息public boolean setFlag(String Uid,String course) 考題工具類,主要提供對考題表的相關(guān)操作方法Public class QuestionUtil/得到選擇題的方法public ArrayList getQuestion(Strin

32、g course,int count,int type)/得到數(shù)據(jù)庫中題目數(shù)量public int getCount(int type,String course)/得到數(shù)據(jù)庫中題目數(shù)量public int getCount()/通過考題編號得到考題public Question getQuestionById(int Qid)/得到指定頁的試題目信息public ArrayList getAllQuestion(int pageSize,int current) /添加試題信息public boolean insertQuestioin(Question ques) /修改試題信息publi

33、c boolean updateQuestion(Question ques) /刪除試題信息public boolean deleteTest(int Qid)/獲取科目public ArrayList getCourse()試卷工具類,主要提供對試卷表的相關(guān)操作方法public class TestUtil /添加試卷信息public boolean insertTest(ArrayList al)/考生的名字和學(xué)號public ArrayList getStudent(String course)/獲得試卷庫中相應(yīng)題型的題public ArrayList getTest(String U

34、id,String course,int type)/修改試卷庫中相應(yīng)試題的分?jǐn)?shù)public boolean updateTest(String Uid,int Qid,float score)考試設(shè)置工具類,主要提供對考試設(shè)置表的相關(guān)操作方法public class TestSetUtil /根據(jù)課程名稱得到考試設(shè)置信息public TestSet getTestSet(String course) /計(jì)算考題總分public int getTotalScore(TestSet ts) /獲得總記錄public int getCount()/得到指定頁的考試信息public ArrayLis

35、t getAllTestSet(int pageSize,int current)/添加或修改考試設(shè)置,flag=0為添加,flag=1為修改public boolean insertOrUpdate(TestSet ts,int flag)/刪除考試設(shè)置信息public boolean deleteTest(String course) 成績工具類,主要提供對成績表的相關(guān)操作方法public class RecordUtil public DBAccess db = new DBAccess();/獲取考生指定課程的得分信息public Record getRecord(String Uid

36、,String course) /判斷學(xué)生成績是否存在public boolean getUser(String Uid,String course) /獲取及格人數(shù)public int getPass(String course) /獲取該課程總考試人數(shù)public int getCount(String course) /獲分?jǐn)?shù)段人數(shù)public int getCountByScore(String course,int score) /得到學(xué)生的全部成績public ArrayList getAll(String Uid) 試卷考題工具類,主要提供對試卷表考題表聯(lián)合查詢視圖的相關(guān)操作方法

37、public class TestQuestionUtil /獲得試卷庫中相應(yīng)題型的題public ArrayList getTest(String Uid,String course,int type)3.4.2 在線考試模塊設(shè)計(jì)在線考試流程為:首先系統(tǒng)將考試信息和考生個(gè)人信息提供給考生,并要求考生核對個(gè)人信息。在考試開始時(shí)系統(tǒng)按照一定的算法為登陸的考生隨機(jī)選取一定的試題生成考試試卷,考生在系統(tǒng)生成好試卷后進(jìn)行答題操作。答題必須在規(guī)定的時(shí)間內(nèi)進(jìn)行,此時(shí)間是由管理員事先設(shè)置好的,如在規(guī)定的時(shí)間內(nèi)沒有完成答題,系統(tǒng)將強(qiáng)制提交學(xué)生考試試卷進(jìn)??忌谠嚲硖峤缓笙到y(tǒng)自動地為客觀題進(jìn)行評分,并將試卷保存

38、,供給老師查看或修改。在線考試流程圖如圖3.10所示。隨機(jī)抽題算法:產(chǎn)生一個(gè)隨機(jī)整數(shù),這個(gè)數(shù)在0和相應(yīng)題型總考題數(shù)之間。從這個(gè)隨機(jī)數(shù)開始抽取取試題,抽取數(shù)量為試卷設(shè)置中相應(yīng)題型的個(gè)數(shù)(此數(shù)小于總題數(shù)),若取到最后一道還不滿足取題數(shù)量,再從第一題開始選取,其抽題流程如圖3.11如示。圖3.10 在線考試流程圖3.11 選題流程3.4.3 成績查詢模塊設(shè)計(jì)考生根據(jù)用戶編號查詢考試成績信息,查詢到的成績是考生的所有課程的成績。成績信息包括單選題得分,多選題得分等詳細(xì)信息。3.4.4 查看/修改考生試卷模塊設(shè)計(jì)教師登陸后,可以對考生試卷進(jìn)行查看和修改。系統(tǒng)首先將考生的試卷讀出,教師可能看到系統(tǒng)對試卷主

39、觀題的評定。系統(tǒng)會提提醒老師對主觀題進(jìn)評分,等老師對主觀題進(jìn)行評分,系統(tǒng)會將保存對學(xué)生試卷的評定,而后生成考生的成績信息。查看/修改考生試卷的流程圖如圖3.12所示圖3.12 查看/修改學(xué)生試卷流程教師提交評定的關(guān)鍵代碼設(shè)計(jì)及說明如下: /獲取學(xué)生學(xué)號 String Uid = request.getParameter("Uid"); /獲取session中的課程名稱String course = (String)session.getAttribute("course");TestUtil tu = new TestUtil();TestSetUtil

40、 tsu = new TestSetUtil();Record record = new Record();RecordUtil ru = new RecordUtil(); /獲取試卷設(shè)置信息TestSet ts = tsu.getTestSet(course); float singleTotal = 0;/單選題總分float multiplyTotal = 0;/多選題總分float judgeTotal = 0;/判斷題總分float jdTotal = 0;/簡答題總分float programTotal=0;/編程題總分float total=0;for(int i=0;i<

41、;ts.getSinChCount();i+)/獲取單選題分?jǐn)?shù)float score = Float.parseFloat(request.getParameter("choice"+i);singleTotal+=score;for(int i=0;i<ts.getMulChCount();i+)/獲取多選題分?jǐn)?shù)float score = Float.parseFloat(request.getParameter("mulChoice"+i);multiplyTotal+=score;for(int i=0;i<ts.getJudgeCou

42、nt();i+)/獲取判斷題分?jǐn)?shù)float score = Float.parseFloat(request.getParameter("judge"+i);judgeTotal+=score;for(int i=0;i<ts.getJdCount();i+)/獲取簡答題分?jǐn)?shù)float score = Float.parseFloat(request.getParameter("jd"+i);jdTotal+=score;int Qid = Integer.parseInt(request.getParameter("jdId"

43、+i);tu.updateTest(Uid, Qid, score);/修改試卷庫中相應(yīng)簡答題的分?jǐn)?shù)for(int i=0;i<ts.getProgramCount();i+)/獲取編程題分?jǐn)?shù)float score = Float.parseFloat(request.getParameter("pro"+i);programTotal+=score;int Qid = Integer.parseInt(request.getParameter("proId"+i);tu.updateTest(Uid, Qid, score);total = si

44、ngleTotal+multiplyTotal+judgeTotal+jdTotal+programTotal;record.setUid(Uid);record.setCourse(course);record.setScore(total);record.setSingle(singleTotal);record.setMultiply(multiplyTotal);record.setJudge(judgeTotal);record.setJd(jdTotal);record.setProgram(programTotal);/System.out.print(record.getUid

45、()+record.getCourse();if(ru.updateRecord(record)response.sendRedirect(request.getContextPath()+"/teacher/success.html");elseresponse.sendRedirect(request.getContextPath()+"/teacher/fail.html");3.4.5 分?jǐn)?shù)段統(tǒng)計(jì)模塊設(shè)計(jì)當(dāng)教師對考卷的主觀題評定后,系統(tǒng)能自動生成分?jǐn)?shù)段統(tǒng)計(jì)信息供給老師查看。統(tǒng)計(jì)分?jǐn)?shù)段包括及格率、60-69分、70-79、80-89和90分以上,在

46、統(tǒng)計(jì)數(shù)量的同時(shí)并計(jì)算出占數(shù)考人數(shù)量的比例。其統(tǒng)計(jì)功能的關(guān)鍵代碼及說明如下: /獲取要統(tǒng)計(jì)的分?jǐn)?shù)段 String scoreString = request.getParameter("score").trim(); /獲取要統(tǒng)計(jì)的課程名稱String course = (String)session.getAttribute("course"); RecordUtil ru = new RecordUtil(); /得到考生總數(shù) int count = ru.getCount(course); int pass = 0;/要統(tǒng)計(jì)的分?jǐn)?shù)段人數(shù) if(&qu

47、ot;pass".equals(scoreString)/如果統(tǒng)計(jì)的是及格率 pass = ru.getPass(course); else int score = Integer.parseInt(scoreString); pass = ru.getCountByScore(course,score); /計(jì)算比例,由于要用count作為除數(shù),所以必須排出count為0的情況 String percent = count=0?"0.0%":(float)pass)/(float)count)*100+"%"個(gè)人信息維護(hù)模塊設(shè)計(jì)系統(tǒng)用戶包括學(xué)

48、生,教師,管理員都可以對個(gè)人信息進(jìn)行維護(hù)。維護(hù)操作包括對個(gè)人基本信息進(jìn)行修改,修改密碼等。系統(tǒng)能提供極為友好的界面方便用戶操作。對其本信息進(jìn)行時(shí),用戶不能修改自己的編號。對密碼進(jìn)行修改時(shí)按昭一般系統(tǒng)的要求先確認(rèn)舊密碼,再輸入新密碼和確認(rèn)新密碼。個(gè)人基本信息信息維護(hù)的關(guān)鍵代碼如下所示:UserUtil userUtil = new UserUtil();/得到sessionHttpSession session = request.getSession(true);/獲取session中的用戶編號String Uid = (String)session.getAttribute("Ui

49、d");/得到用戶名,用gbk對其進(jìn)行編碼String name = new String(request.getParameter("name").trim().getBytes("iso8859-1"),"gbk");/得到用戶類型String typeString=new String(request.getParameter("type").getBytes("iso8859-1"),"gbk");int type=1;if("教師".e

50、quals(typeString)type=2;else if("管理員".equals(typeString)type=3;String sex = new String(request.getParameter("sex").getBytes("iso8859-1"),"gbk").trim();User user = new User();user.setId(Uid);user.setName(name.trim();user.setType(type);user.setSex(sex);if(userUt

51、il.motifyUser(user) response.sendRedirect(request.getContextPath()+"/success.html" else response.sendRedirect(request.getContextPath()+"/Fail.html");教師在管理員生成用戶后登錄教師系統(tǒng),該業(yè)務(wù)的頁面腳本驗(yàn)證如下:(1)教師登陸界面,如圖3.14 圖3.15流程圖如圖3.13所示:圖3.13 考生登錄流程圖圖3.14 密碼、用戶名、科目為空登錄圖3.15 科目為空登錄(2)用戶默認(rèn)密碼為123456,教師可在個(gè)

52、人信息維護(hù)模塊中對已考該科目的學(xué)生人數(shù)、分?jǐn)?shù)段統(tǒng)計(jì),修改自己的個(gè)人信息,如修改個(gè)人密碼,如圖3.16所示圖3.16 密碼修改3.4.7 試題維護(hù)模塊設(shè)計(jì)試題維護(hù)是后臺管理員的重要功能,它包括對試題的添加,修改,刪除操作。在進(jìn)行此操作時(shí)系統(tǒng)會先將考試試題讀出,再提供給管理中員操作。試題維護(hù)流程圖如圖3.17所示。圖3.17 考題維護(hù)流程3.4.8 考試設(shè)置信息維護(hù)模塊設(shè)計(jì)考試設(shè)置信息維護(hù)是管理員對考試設(shè)置信息維護(hù),它包括對考試設(shè)置信息的添加,修改,刪除。這些考試信息包括考試時(shí)間,各題的數(shù)量和分值等。設(shè)置時(shí),系統(tǒng)先讀取已存在的考試設(shè)置信息供給管理員查詢,再提供給管理員操作。考試設(shè)置信息流程圖如圖3

53、.18所示。圖3.18 考試設(shè)置信息維護(hù)流程3.4.9 用戶管理模塊設(shè)計(jì)用戶管理是管理員對系統(tǒng)用戶信息的管理。這些用戶包括學(xué)生和教師。用戶管理操作包括添加用戶,更新用戶和刪除用戶。添加用戶時(shí),刪除管理用戶時(shí),系統(tǒng)會先將用戶信息讀出供給管理員參考,再提供給管理員操作。用戶密碼不用設(shè)置,系統(tǒng)默認(rèn)為“123456”;修改用戶時(shí)用戶編號和用戶密碼不能被修改其它均能被修改;用戶時(shí),系統(tǒng)會先提醒管理員是否刪除,若果確認(rèn)刪除才能刪除用戶。用戶管理流程圖如圖3.19所示:圖3.19 用戶管理流程添加/更新用戶的關(guān)鍵代碼及說明如下:/獲取用戶名,這里也用gbk對其進(jìn)行編碼String name=new Stri

54、ng(request.getParameter("name").getBytes("iso8859-1"),"gbk").trim();/獲取用戶類型,1為學(xué)生,2為教師,3為管理員 int type=Integer.parseInt(request.getParameter("type");/獲取性別,用gbk對其進(jìn)行編著碼 String sex=new String sex=new String(request.getParameter("sex").getBytes("iso8859-1"),"gb

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論