操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)論文(設(shè)計)</p><p><b>  (2014屆) </b></p><p>  操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)設(shè)計與實現(xiàn) </p><p>  院 系 計算機科學(xué)與技術(shù)系 </p><p>  專 業(yè) 計算機軟件 </p><p>  

2、姓 名 </p><p>  指導(dǎo)教師 </p><p>  職 稱 講 師 </p><p>  操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)設(shè)計與實現(xiàn)</p><p><b>  摘 要</b></p><p>  隨著網(wǎng)絡(luò)的

3、發(fā)展,高校也已進(jìn)入信息化時代,基于網(wǎng)絡(luò)的考試系統(tǒng)也是在這種形勢下應(yīng)運而生。遠(yuǎn)程考試系統(tǒng)不僅增加了考試成績的客觀性和公正性,而且極大地提高了學(xué)校的工作效率。</p><p>  本次設(shè)計與實現(xiàn)的操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)是基于JSP技術(shù),采用Java語言,以MyEclipse為開發(fā)工具。本系統(tǒng)分為前臺設(shè)計與后臺設(shè)計兩部分,前臺設(shè)計主要是面對用戶而言,不同權(quán)限的用戶可以實現(xiàn)不同的功能。后臺設(shè)計主要是對系統(tǒng)內(nèi)部信息進(jìn)行管理,

4、其中最重要是數(shù)據(jù)庫的設(shè)計,本系統(tǒng)采用MySQL數(shù)據(jù)庫,為系統(tǒng)信息的使用及存儲提供技術(shù)支持。經(jīng)過測試,該操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)運行穩(wěn)定,操作方便、快捷。</p><p>  關(guān)鍵字:JSP MySQL 在線考試 操作系統(tǒng)</p><p><b>  ABSTRACT</b></p><p>  With the development of

5、the network, the university also has entered the information age, network-based test system also came into being in this situation. Remote examination system not only increases the test scores of objectivity and impartia

6、lity, but also greatly improve the efficiency of the school.</p><p>  The design and operation of the system remote test system implementation is based on JSP technology, Java language and MyEclipse. The sys

7、tem is divided into front and back design designed in two parts, the front desk is designed primarily to face the user, different users can achieve different functions. Backstage designed primarily for internal informati

8、on management system, the most important thing is the design of the database, the system uses the MySQL database to provide technical support f</p><p>  Keywords: JSP MySQL Online Examination Operating S

9、ystem目 錄</p><p><b>  第1章 緒論1</b></p><p><b>  1.1開發(fā)背景1</b></p><p>  1.2相關(guān)技術(shù)的介紹1</p><p>  1.3系統(tǒng)開發(fā)環(huán)境2</p><p>  1.4 論文組織結(jié)構(gòu).......

10、................................... 2</p><p>  第2章 需求分析與可行性分析2</p><p><b>  2.1需求分析2</b></p><p>  2.2可行性分析3</p><p>  第3章 系統(tǒng)設(shè)計4</p><p>  3.

11、1系統(tǒng)概要設(shè)計.................4</p><p>  3.2 系統(tǒng)結(jié)構(gòu)設(shè)計.......................................... 4</p><p>  3.3系統(tǒng)詳細(xì)設(shè)計.......................................... .5</p><p>  3.4系統(tǒng)設(shè)計目標(biāo)........

12、...................................6</p><p>  3.5系統(tǒng)設(shè)計用例示意圖.....................................7</p><p>  第4章 數(shù)據(jù)庫設(shè)計.8</p><p>  4.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計8</p><p>  4.2數(shù)據(jù)庫實體關(guān)系圖9<

13、/p><p>  4.3數(shù)據(jù)庫實體屬性圖10</p><p>  4.4數(shù)據(jù)庫表結(jié)構(gòu)11</p><p>  第5章 系統(tǒng)實現(xiàn)14</p><p>  5.1界面設(shè)計14</p><p>  5.2題庫管理15</p><p>  5.3試卷管理16</p><p&

14、gt;  5.4閱卷管理17</p><p>  5.5考生考試管理17</p><p>  5.6修改密碼18</p><p>  第6章 結(jié)束語19</p><p><b>  致 謝20</b></p><p><b>  參考文獻(xiàn)21</b></

15、p><p><b>  附 錄22</b></p><p><b>  第1章 緒論</b></p><p><b>  1.1 開發(fā)背景</b></p><p>  隨著網(wǎng)絡(luò)科技的不斷發(fā)展和現(xiàn)代教學(xué)改革的進(jìn)一步推進(jìn),將傳統(tǒng)考試模式轉(zhuǎn)化為利用現(xiàn)代網(wǎng)絡(luò)技術(shù)進(jìn)行考試操作和管理的遠(yuǎn)

16、程考試系統(tǒng)已成為現(xiàn)代教學(xué)改革的一項重要措施,并已成為進(jìn)行高校教學(xué)改革和學(xué)分制改革順利實施的關(guān)鍵。</p><p>  目前,我們國家的各種考試大多采用傳統(tǒng)的考試方式,在此方式下,每次組織考試都至少需要七個步驟,包括人工出卷、試卷審核、印刷試卷、考生考試、人工閱卷、成績評估和試卷分析,并且在考試過程中還需要大量的監(jiān)考老師進(jìn)行現(xiàn)場監(jiān)考。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師在考試中的工作量也會越來越大

17、,并且該工作也是一件十分煩瑣和非常容易出錯的事情。因此,傳統(tǒng)的考試方式已經(jīng)不能很好的適應(yīng)現(xiàn)代考試的需要,遠(yuǎn)程考試系統(tǒng)應(yīng)運而生。</p><p>  1.2相關(guān)技術(shù)的介紹</p><p>  本次操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)采用B/S模式結(jié)構(gòu),用戶可以通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器會對瀏覽器的請求進(jìn)行處理,將用戶所需信息返回到瀏覽器??蛻魴C/服務(wù)器結(jié)構(gòu)簡化了會員機的工作,用戶機

18、上只需配置少量的會員端軟件。服務(wù)器將會擔(dān)負(fù)更多的工作,包括對數(shù)據(jù)庫的訪問和對應(yīng)用程序的執(zhí)行。瀏覽器發(fā)出請求,而其余工作,包括數(shù)據(jù)請求、數(shù)據(jù)加工、結(jié)果返回以及動態(tài)網(wǎng)頁生成等工作全部由Web Server完成。系統(tǒng)同時采用面向?qū)ο蟮能浖_發(fā)方法,以MyEclipse作為前臺開發(fā)工具,以 Tomcat為服務(wù)器,以MySQL作為后臺數(shù)據(jù)庫開發(fā)平臺,實現(xiàn)了操作系統(tǒng)在線考試的功能需求。</p><p>  MySQL數(shù)據(jù)庫是

19、一個分布式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有客戶機/服務(wù)器體系結(jié)構(gòu),且具有圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單;同時具有豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計提供了更廣闊地選擇空間。</p><p>  Apache Tomcat作為該系統(tǒng)的服務(wù)器,它是一個開放源代碼的Web 應(yīng)用服務(wù)器且是免費的,屬于輕量級應(yīng)用服務(wù)器,在許多中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合中被普遍使用,是開發(fā)和調(diào)試JSP 程序的

20、首選。實際上,Tomcat 部分是Apache 服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)系統(tǒng)在運行Tomcat 時,它實際上作為一個與Apache 獨立的進(jìn)程單獨運行的。當(dāng)在一臺機器上配置好Apache服務(wù)器后就可以利用它響應(yīng)HTML 頁面的訪問請求。</p><p>  結(jié)合系統(tǒng)的特點和功能,系統(tǒng)的編程語言選擇的是Java和Jsp,Java是完全面向?qū)ο蟮恼Z言,是主流的編程開發(fā)語言之一。而JSP是由Sun Mic

21、rosystems公司倡導(dǎo)、多家公司共同參與建立的一種動態(tài)技術(shù)標(biāo)準(zhǔn),現(xiàn)在的JSP網(wǎng)頁就是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)簽,Java程序片段可以發(fā)送E-mail、重新定向網(wǎng)頁、操縱數(shù)據(jù)庫等,能夠?qū)崿F(xiàn)建立動態(tài)網(wǎng)站所需要的功能,并且所有程序操作都將在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上僅僅將結(jié)果傳送給客戶端,因此,大大降低了對客戶瀏覽器的要求。</p><p>

22、;  1.3 系統(tǒng)開發(fā)環(huán)境</p><p>  (1)操作系統(tǒng):Windows 7;</p><p>  (2)開發(fā)工具:MyEclipse 6.5</p><p>  (3)服務(wù)器軟件:Apache Tomcat 6.0</p><p>  (4)數(shù)據(jù)庫:MySQL</p><p>  (5)開發(fā)語言:Java<

23、;/p><p>  1.4 論文組織結(jié)構(gòu)</p><p>  本論文在第一章介紹了本系統(tǒng)的開發(fā)背景、意義以及使用到的開發(fā)工具和技術(shù),第二章敘述了需求分析和可行性分析,第三章主要介紹了系統(tǒng)的概要設(shè)計和詳細(xì)設(shè)計,第四章主要描述的是本系統(tǒng)后臺數(shù)據(jù)庫的設(shè)計,第五章是系統(tǒng)的實現(xiàn),在論文的最后是本次論文的結(jié)束語、致謝以及參考文獻(xiàn),附錄部分是本次系統(tǒng)設(shè)計中具有代表性的代碼。</p><p

24、>  第2章 需求分析與可行性分析</p><p><b>  2.1 需求分析</b></p><p>  建立操作系統(tǒng)課程遠(yuǎn)程考試系統(tǒng),主要就是為了充分利用計算機技術(shù)和數(shù)據(jù)庫技術(shù),改變操作系統(tǒng)課程傳統(tǒng)的紙質(zhì)考試模式,實現(xiàn)無紙化和自動化相結(jié)合的現(xiàn)代考試模式。采用以計算機為主的現(xiàn)代化設(shè)備實現(xiàn)對遠(yuǎn)程考試過程中信息的管理和維護(hù),從而大大的提高考試工作中的效率。&l

25、t;/p><p>  對于操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)而言,系統(tǒng)的需求分析工作非常重要,它規(guī)定了系統(tǒng)的基本要求,為系統(tǒng)的最終目標(biāo)制定了完整、清晰和具體的規(guī)劃,是系統(tǒng)設(shè)計與實現(xiàn)的依據(jù)。其具體任務(wù)是:首先確定用戶對系統(tǒng)的整體要求,分析系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),其次導(dǎo)出系統(tǒng)的數(shù)據(jù)字典以及系統(tǒng)流程,最后確定和評價系統(tǒng)的方案,初步制定系統(tǒng)的開發(fā)計劃。</p><p>  在需求分析階段,我們的關(guān)注點不是“怎么做”,而是“

26、做什么”。不是具體的解決問題,而是能夠準(zhǔn)確地確定“為了滿足客戶需求,目標(biāo)系統(tǒng)必須實現(xiàn)什么”。即確定目標(biāo)系統(tǒng)必須具備的功能。</p><p>  但是,在實際的過程中,用戶通常對他們所面對的問題和所需要的功能很了解,但往往不能準(zhǔn)確、完整地表達(dá)出來,更不知道怎樣利用計算機技術(shù)來解決他們的問題,于此同時,軟件開發(fā)人員知道怎樣從計算機技術(shù)方面滿足客戶的需求,但對特定用戶的具體要求并不清楚。因此為了解決這個問題,就需要在需

27、求分析階段實現(xiàn)軟件開發(fā)人員和用戶之間進(jìn)行充分的信息交流,得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型,以保證在目前的技術(shù)和人員條件下,用戶的需求是可實現(xiàn)的,系統(tǒng)邏輯模型也是合理可行的。</p><p>  需求分析各過程如下:</p><p>  (1)問題識別:確定目標(biāo)系統(tǒng)做什么,包括:系統(tǒng)功能、性能、安全性、穩(wěn)定性、用戶操作界面、系統(tǒng)開發(fā)成本和進(jìn)度等,同時建立需求分析所需的通信渠道。</p&g

28、t;<p>  (2)問題分析:從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的模塊功能,分析每個元素之間的聯(lián)系和接口特性,確定它們是否滿足系統(tǒng)功能需求,對于不滿足的給予剔除并整理成綜合解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。</p><p>  (3)編制需求分析文檔。</p><p><b>  (4)需求評審。</b></p><p>

29、  在本系統(tǒng)中,主要的需求模塊為:</p><p>  (1)用戶管理:管理員擁有對用戶的最高管理權(quán)限,可以對所有的教師和考生用戶進(jìn)行管理,包括用戶信息的查詢,修改,刪除,添加等。教師及考生只擁有修改自己信息的權(quán)限,對于他人的信息不能進(jìn)行任何操作。</p><p>  (2)題庫管理:系統(tǒng)管理員不僅對系統(tǒng)用戶進(jìn)行管理,同時也需要對試題庫哭進(jìn)行管理,通過在試題庫進(jìn)行增刪查改操作,從而可以調(diào)出

30、適合的題目組成試卷,試卷使用權(quán)得到批準(zhǔn)后,既可以用于考生考試。</p><p><b>  2.2 可行性分析</b></p><p>  2.2.1經(jīng)濟可行性</p><p>  目前高校普遍擁有信息化的處理設(shè)施和支持遠(yuǎn)程考試系統(tǒng)的應(yīng)用平臺。因此無需再投入資金購買其他設(shè)施,只需在軟件開發(fā)方面投入少許經(jīng)費即可,并且本系統(tǒng)在實施之后能夠顯著地提高

31、考試系統(tǒng)的工作效率,降低管理費用和勞動費用,提高人員利用率,實現(xiàn)人力資源合理分配,從而達(dá)到資源優(yōu)化,保證了工作質(zhì)量,避免出現(xiàn)人為因素造成的差錯,降低了考試過程中的預(yù)算,因此,操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)在經(jīng)濟上是可行的。</p><p>  2.2.2 技術(shù)可行性</p><p>  技術(shù)可行性分析主要是分析當(dāng)前的開發(fā)條件是否能夠滿足系統(tǒng)開發(fā)需求。</p><p>  硬件

32、方面:隨著網(wǎng)絡(luò)科技的不斷發(fā)展,硬件的可靠性越來越高,能夠充分滿足當(dāng)前軟件開發(fā)的硬件需求。</p><p>  軟件方面:編程軟件以及系統(tǒng)設(shè)計的技術(shù)日趨完善,如java,JSP等技術(shù),并且網(wǎng)絡(luò)上可以搜集到許多系統(tǒng)設(shè)計的模板,可以為本系統(tǒng)的開發(fā)和實現(xiàn)提供很好的參考。利用JSP技術(shù)可以建立先進(jìn)、安全和跨平臺的動態(tài)網(wǎng)站,且目前包括MySQL在內(nèi)的數(shù)據(jù)庫技術(shù)也相當(dāng)完善,這些技術(shù)都為本系統(tǒng)的設(shè)計與實現(xiàn)提供了堅實的技術(shù)保障,就

33、其目前的發(fā)展水平來說,完全能夠滿足本次系統(tǒng)的開發(fā)與運用。</p><p><b>  第3章 系統(tǒng)設(shè)計</b></p><p>  3.1 系統(tǒng)概要設(shè)計</p><p>  在需求分析階段,明確了“系統(tǒng)需要做什么”,現(xiàn)在在概要設(shè)計階段就是回答“應(yīng)該怎樣做”。因此,概要設(shè)計就是將系統(tǒng)中多種物理元素進(jìn)行劃分,包括:程序、文件、數(shù)據(jù)庫、文檔等,但是

34、每個物理元素依然處于黑盒子階段,黑盒子里面的具體內(nèi)容仍需在后續(xù)的詳細(xì)設(shè)計中進(jìn)行具體地設(shè)計。概要設(shè)計中確定的功能主要有:用戶登錄功能、用戶信息管理功能、考生在線考試功能、成績查詢功能、試卷選擇功能、試題庫管理功能等。</p><p><b>  3.2 系統(tǒng)結(jié)構(gòu)圖</b></p><p>  操作系統(tǒng)在線考試系統(tǒng)主要包括兩個子系統(tǒng):用戶前臺系統(tǒng)和后臺管理系統(tǒng)。</

35、p><p><b>  前臺系統(tǒng)結(jié)構(gòu)圖:</b></p><p>  圖 3-1前臺系統(tǒng)結(jié)構(gòu)圖</p><p>  (2)后臺系統(tǒng)結(jié)構(gòu)圖:</p><p>  圖 3-2后臺系統(tǒng)結(jié)構(gòu)圖</p><p><b>  3.3系統(tǒng)詳細(xì)設(shè)計</b></p><p>

36、;  操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)的詳細(xì)設(shè)計階段的目標(biāo)是要確定怎樣具體的實現(xiàn)系統(tǒng),換句話說,就是對目標(biāo)系統(tǒng)進(jìn)行精確地描述,從而在編碼階段把用戶的描述翻譯成程序語言。但是,需要明確的是,詳細(xì)設(shè)計階段的任務(wù)并不是具體的編寫程序,而是要設(shè)計出程序的“藍(lán)圖”,這個“藍(lán)圖”既是程序員在編寫程序代碼時的依據(jù)。因此,詳細(xì)設(shè)計階段的工作是極其重要的,它將直接決定最后程序編寫的質(zhì)量。</p><p>  在本次的系統(tǒng)詳細(xì)設(shè)計中,主要是分為

37、若干模塊經(jīng)行設(shè)計,先要保證每個模塊功能的正確實現(xiàn),才能保證最終整個系統(tǒng)的功能的實現(xiàn)。</p><p><b>  具體如圖所示:</b></p><p>  圖 3-3 在線考試系統(tǒng)模塊圖</p><p>  在本次的操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)中,用戶必須輸入正確的用戶名和密碼才能進(jìn)入系統(tǒng),并且采用了權(quán)限登錄,把用戶分為管理員、教師和考生。在系統(tǒng)中的

38、管理員管理模塊,主要實現(xiàn)的是功能有添加、刪除、查詢試題和用戶信息等功能。在系統(tǒng)中的老師模塊,主要實現(xiàn)在系統(tǒng)中閱卷,改卷以及對自己的信息經(jīng)行修改。在系統(tǒng)中的考生模塊,主要實現(xiàn)的是功能有考生考試、查詢成績及對自己信息經(jīng)行修改等功能。</p><p><b>  3.4系統(tǒng)設(shè)計目標(biāo)</b></p><p>  本系統(tǒng)應(yīng)達(dá)到以下目標(biāo):</p><p>

39、 ?。?)系統(tǒng)操作界面簡潔、美觀。</p><p> ?。?)用戶通過不同的身份進(jìn)入系統(tǒng)且不同身份的用戶權(quán)限不一,包括教師、考生和管理員。</p><p> ?。?)系統(tǒng)能實現(xiàn)組卷,每個題型抽取部分題目,包括:選擇題、填空題、判斷題、簡單題。</p><p> ?。?)在考生考試時需加入倒計時功能。</p><p> ?。?)每個用戶可以對自

40、己的信息經(jīng)行管理。</p><p>  3.5 系統(tǒng)用例示意圖</p><p>  操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)的面對對象的是考生、教師以及管理員。考生和教師主要的進(jìn)行前臺的操作,而管理員的任務(wù)主要是對系統(tǒng)進(jìn)行必要的管理和維護(hù),因此,在系統(tǒng)設(shè)計時要多從多種用戶的角度出發(fā),對系統(tǒng)的功能進(jìn)行設(shè)計和完善。</p><p>  以下是系統(tǒng)的功能用例圖:</p><

41、;p>  圖3-4 系統(tǒng)功能用例圖</p><p>  第4章 數(shù)據(jù)庫設(shè)計</p><p>  4.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p>  數(shù)據(jù)庫的設(shè)計分析就是對系統(tǒng)中的數(shù)據(jù)進(jìn)行具體分析,明確用戶需要查詢、更新、刪除和保存哪些數(shù)據(jù),然后分析數(shù)據(jù)結(jié)構(gòu)與聯(lián)系,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。數(shù)據(jù)庫名為:kaos,共包含7張表:kaoshi為存放

42、考試成績,試卷創(chuàng)作時間等整體性情況的表,kaoshjilu為存放考試過程中具體的每張試卷情況的表,kecheng為存放課程信息的表,shijuan為試卷信息表,shiti為試題信息表, user為用戶表,其數(shù)據(jù)庫結(jié)構(gòu)如下圖4-1:</p><p>  圖4-1 數(shù)據(jù)庫結(jié)構(gòu)</p><p>  4.2數(shù)據(jù)庫實體關(guān)系圖</p><p>  該系統(tǒng)數(shù)據(jù)庫中擁有6個實體,

43、分別為:管理員、考生、教師、試卷、成績、試題;其中管理員與用戶,試題及試卷之間的關(guān)系是管理;考生和教師與成績之間是查詢關(guān)系;考生與試卷之間是考試關(guān)系,而教師與試卷之間是批改關(guān)系;用戶與成績間均是查詢關(guān)系;試卷的組成是從題庫中抽取得到的,因此試卷與試題間是調(diào)取的關(guān)系,具體的實體關(guān)系如下圖所示:</p><p><b>  nm</b></p><p><b>

44、;  11</b></p><p><b>  nm</b></p><p>  nnmn1</p><p><b>  11n</b></p><p><b>  1m</b></p><p>  圖4-2 試題

45、關(guān)系圖</p><p>  4.3數(shù)據(jù)庫實體屬性圖</p><p>  通過對系統(tǒng)進(jìn)行需求分析規(guī)劃出數(shù)據(jù)庫各表的實體關(guān)系,以下是實體屬性圖。</p><p>  圖4-3 用戶實體圖</p><p>  圖4-4 考試實體圖</p><p>  圖4-5試記錄實體圖</p><p>  圖4-

46、6 試卷實體圖</p><p>  圖4-7 試題實體圖</p><p><b>  4.4數(shù)據(jù)庫表結(jié)構(gòu)</b></p><p>  本系統(tǒng)數(shù)據(jù)庫名為kaos,共包含7張數(shù)據(jù)庫表:kaoshi、kaoshijilu、kecheng、shijuan、shijuanitem、shiti、user,以下是各表的結(jié)構(gòu):</p><

47、;p><b>  表4-1 考試表</b></p><p>  表4-2 考試記錄表</p><p><b>  表4-3 科目表</b></p><p><b>  表4-4 試卷表</b></p><p>  表4-5 試卷明細(xì)表</p><

48、;p><b>  表4-6 試題表</b></p><p><b>  表4-7 用戶表</b></p><p><b>  第5章 系統(tǒng)實現(xiàn)</b></p><p><b>  5.1 界面設(shè)計</b></p><p>  5.1.1 登錄界

49、面</p><p>  在瀏覽器中輸入http://localhost:8080/kaos后回車,即可進(jìn)入操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)的登錄界面。不同的用戶通過輸入用戶名和密碼并選擇登錄方式后點擊登錄即可進(jìn)入系統(tǒng)主界面。登錄界面如圖5-1所示。</p><p>  圖5-1 登錄界面</p><p>  用戶在登錄時,系統(tǒng)會對用戶的信息進(jìn)行驗證,通過查找數(shù)據(jù)庫中的user

50、表,判斷用戶輸入的用戶名、密碼以及用戶身份是否是正確的,從而跳轉(zhuǎn)至相應(yīng)的用戶界面,具體代碼如下:</p><p>  User user = userDao.selectBean(" where username = '" + username+ "' and password= '" + password + "' and use

51、rlock=0");</p><p>  if (user != null && role.equals(user.getRole()+"")) {</p><p>  HttpSession session = request.getSession();</p><p>  session.setAttribute(&

52、quot;user", user);</p><p>  this.setUrl("index");</p><p>  return "redirect";</p><p><b>  } else {</b></p><p>  HttpServletResponse

53、 response = ServletActionContext.getResponse();</p><p>  response.setCharacterEncoding("gbk");</p><p>  response.getWriter().print(</p><p>  "<script language=java

54、script>alert('用戶名或者密碼錯誤');window.location.href='index';</script>");</p><p><b>  }</b></p><p>  return null;</p><p>  5.1.2 管理員主界面</p>

55、<p>  不同用戶登錄到的主界面不同,圖5-2是管理員的登錄界面。</p><p>  圖5-2 管理員主界面</p><p>  點擊界面上的用戶用戶管理、試卷管理等就可以跳轉(zhuǎn)只相應(yīng)的操作界面。例如點擊用戶管理—用戶添加按鈕時,通過this.setUrl("user/useradd.jsp")此語句可以實現(xiàn)跳轉(zhuǎn)至用戶添加的界面,如果返回值是SUCCE

56、SS,說明跳轉(zhuǎn)成功,否則,跳轉(zhuǎn)失敗。其他的界面也是通過這種方法實現(xiàn)。</p><p><b>  5.2 題庫管理</b></p><p>  題庫管理界面如圖5-3。</p><p>  圖5-3 題庫管理</p><p>  上圖是題庫管理對應(yīng)的顯示界面,該界面是針對管理員的操作界面,管理員通過此界面可以實現(xiàn)對題庫

57、的操作,例如:設(shè)置題目的類型及數(shù)量、分值等,其中包含選擇題、填空題、判斷題、簡答題。添加后可以實現(xiàn)查看、修改或者刪除試題。在代碼部分要對當(dāng)前頁面和頁面大小進(jìn)行復(fù)制,通過語句int currentpage = 1;int pagesize = 20;即可實現(xiàn)。</p><p><b>  5.3試卷管理</b></p><p>  圖5-4 試卷管理界面</p&

58、gt;<p>  上圖為試卷管理界面,通過對試題庫中的試題進(jìn)行選擇,在選擇的時候不僅可以選擇題目的類型,還可以標(biāo)注題注的分值以及題目考查的知識點及考試時間等。這樣不僅可以幫助老師在改試卷時有給分的標(biāo)準(zhǔn),而且也可以在考生考試的時候經(jīng)行時間提醒。完成組卷后,試卷組成后也可以對試卷進(jìn)行修改,刪除,從而實現(xiàn)試卷的多樣化。在使用試卷時,要首先對試卷的狀態(tài)進(jìn)行判斷,若試卷狀態(tài)為“未使用”,需先設(shè)置為“使用”后再使用試卷。通過以下代碼實

59、現(xiàn):</p><p>  Shijuan bean = new Shijuan();</p><p>  bean.setKaoshishijian(Integer.parseInt(kaoshishijian));</p><p>  bean.setCreatetime(new Date());</p><p>  bean.setJua

60、nming(juanming);</p><p>  bean.setKecheng(kechengDao.selectBean(" where id= "+kemu));</p><p>  bean.setShifoushiyong("未使用");</p><p>  HttpSession session = requ

61、est.getSession();</p><p>  User user = (User) session.getAttribute("user");</p><p>  bean.setUser(user);</p><p><b>  5.4 閱卷管理</b></p><p>  圖5-5 閱

62、卷模塊</p><p>  該模塊教師用戶實現(xiàn)的,教師根據(jù)考生的用戶名或者真實姓名進(jìn)行試卷的搜索并進(jìn)行閱卷,此過程要求考生的用戶名不能為空,需通過一個IF語句進(jìn)行判斷,判斷后才能實現(xiàn)閱卷界面的跳轉(zhuǎn)if(username!=null&&!””if(username!=null&&!””.equals(username))。閱卷后也可以實現(xiàn)對成績經(jīng)行導(dǎo)出操作。在閱卷過程中,每題都有考查

63、的知識點備注,這樣可以方便教師在批閱簡答題時考慮給予的分值。</p><p>  5.5 考生考試管理</p><p>  圖5-6 考生考試模塊</p><p>  考生在登錄系統(tǒng)后選擇所要考試的科目,點擊“確定開始考試”,考試過程中有考試時間的倒計時,超出考試時間系統(tǒng)會自動收卷,結(jié)束考試。對于已經(jīng)提交的試卷,教師登錄后就可以進(jìn)行閱卷,評分。</p>

64、<p><b>  5.6修改密碼</b></p><p>  圖5-7 修改密碼模塊</p><p>  用戶可以在此界面對自己的密碼進(jìn)行修改,這樣可以提高系統(tǒng)的安全性。</p><p><b>  第6章 結(jié)束語</b></p><p>  經(jīng)過為期幾個月的設(shè)計和開發(fā),終于實現(xiàn)了操

65、作系統(tǒng)遠(yuǎn)程考試系統(tǒng)的每一個模塊功能,在編譯,運行成功的瞬間,心中充滿了自豪感。在本次畢業(yè)設(shè)計的過程中,我充分的了解了軟件設(shè)計開發(fā)的工作流程,對Java編譯語言的運用更加靈活、熟練、精準(zhǔn),對數(shù)據(jù)庫MySQL 的操作也更為熟練。從需求分析,概要設(shè)計,詳細(xì)設(shè)計,模塊編碼,功能測試、集成測試到軟件設(shè)計的完成,通過實踐與理論相結(jié)合,進(jìn)一步加深了我對軟件開發(fā)的了解,從而提高了我對計算機軟件這個專業(yè)的興趣。軟件的開發(fā)最基本的任務(wù)是要滿足客戶的需求,此

66、外還要有良好的設(shè)計,完備的文檔資料,方便于日后的系統(tǒng)維護(hù)。因此,做好系統(tǒng)設(shè)計并保存完備的文檔是不可或缺的部分。</p><p>  在本次系統(tǒng)開發(fā)的整個過程中,我都力求系統(tǒng)和文檔的規(guī)范化,將自己以前學(xué)的知識充分的運用到本次系統(tǒng)的開發(fā)中,盡量保證整個系統(tǒng)的開發(fā)進(jìn)度和質(zhì)量,最終順利完成了這次的畢業(yè)設(shè)計,使自己的大學(xué)生涯得以完美落幕。不過,在系統(tǒng)開發(fā)過程中,還是感覺自己欠缺很多的知識,因此就要求我在系統(tǒng)開發(fā)的同時仍然要

67、不斷的學(xué)習(xí),就增長了系統(tǒng)開發(fā)的時間和難度,比如,平日學(xué)習(xí)中所采用的數(shù)據(jù)庫主要是SQL Server2000,但這次結(jié)合系統(tǒng)的開發(fā)特點,我選擇了自己不是很熟悉的MySQL。但在老師、同學(xué)的不斷幫助以及自己的不斷努力下,最終使自己的知識得以不斷地積累。完成了整個系統(tǒng)的開發(fā)與實現(xiàn)。當(dāng)然在本系統(tǒng)中肯定還存在很多不足之處,希望各位評委老師和同學(xué)給予指正與建議。</p><p>  我相信,只要肯鉆研與不斷進(jìn)取,就能實現(xiàn)完成

68、自己的任務(wù),實現(xiàn)自身的追求,讓我們的青春汗水在奮斗中閃光!</p><p><b>  致 謝</b></p><p>  經(jīng)過這段時間的努力,終于將操作系統(tǒng)遠(yuǎn)程考試系統(tǒng)這個畢業(yè)課題完成。在這里,我首先要感謝的是我的指導(dǎo)老師**。在這次畢業(yè)設(shè)計的過程中,我遇到了許許多多的問題,但是*老師仍然給了我大量的時間讓我完成設(shè)計,并且給予我耐心地指導(dǎo)。正是他的悉心教導(dǎo)和妥善安

69、排保證了我在系統(tǒng)設(shè)計中各項任務(wù)以及論文寫作的順利完成。特別是在論文的審查階段,**老師對我的論文寫作進(jìn)行嚴(yán)格督促,并耐心指導(dǎo)。在此,向我的導(dǎo)師**老師表示最誠摯的敬意和最衷心的感謝。</p><p>  同時還要感謝在畢業(yè)設(shè)計期間給予我指導(dǎo)和建議的其他專業(yè)課老師們,每當(dāng)我遇到問題時,他們耐心的講解使我能夠很好地解決難題,同時也積累了寶貴的經(jīng)驗。</p><p>  最后感謝和我一起討論和解

70、決問題的其他同學(xué),他們讓我體會到了團(tuán)隊精神的重要性,也正是我們之間的交流,相互的鼓勵和幫助才令整體的畢業(yè)設(shè)計的進(jìn)度得以保持,最終使大家的畢業(yè)設(shè)計都得以順利完成。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 李俊青.Java EE Web 開發(fā)與項目實戰(zhàn)[M].華中科技大學(xué)出版社,2011.</p><p>  [2

71、] 明日科技.Java 經(jīng)典編程300例[M].清華大學(xué)出版社,2012.</p><p>  [3] 張孝祥,張紅梅.JavaScript 網(wǎng)頁開發(fā)—體驗式學(xué)習(xí)教程[M].清華大學(xué)出版社,2004</p><p>  [4] 張孝祥.深入Java Web開發(fā)內(nèi)幕—核心基礎(chǔ)[M].電子工業(yè)出版社,2006.</p><p>  [5] 耿祥義.Java基礎(chǔ)教程[M]

72、.清華大學(xué)出版社,2004.</p><p>  [6] 苗雪蘭.數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用教程[M].機械工業(yè)出版社, 2007.</p><p>  [7] 張海藩.軟件工程(第二版)[M].人民郵電出版社,2006</p><p>  [8] 湯小丹,梁紅兵,哲鳳屏,湯子瀛.計算機操作系統(tǒng)(第三版)[M].西安電子科技大學(xué)出版社,2012</p>&l

73、t;p>  [9] Marty Hall.JavaScript高級程序設(shè)計[M].人民郵電出版社. 2006.</p><p>  [10] 龍馬工作室.典型網(wǎng)站建設(shè)[M].人民郵電出版社,2004.</p><p>  [11] 高寅.系統(tǒng)分析之路[M].電子工業(yè)出版社,2005.</p><p>  [12] 袁玫.網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用教程[M].人民郵電出版社

74、,2002</p><p>  [13] 范云之.基于Web數(shù)據(jù)庫在線考試系統(tǒng)的設(shè)計與實現(xiàn)研究[J].商丘師范學(xué)院學(xué)報, 2006,22(5):1-20.</p><p>  [14] Markus Aleksy,Axel Korthaus,Martin Schader.Use Java and the CORBA realization distribute type system[J]

75、.Journal of Pingxiang College,No.4,2005:104-105.</p><p>  [15] GOU Xue-rong, YU Bin. The Technical Strategy to Building Modem Distance Education System[J] Technology and Standardization of Telecommunication

76、Engineering,2000,(3): 4-6.</p><p>  [16] PENG Xu-fu. Discussion of Exchanged Distance Education[J]. Journal of Higher Correspondence Education(Natural Sciences)),2000, 13(2):4-7.</p><p><b>

77、;  附 錄</b></p><p>  本系統(tǒng)代碼較多,這里只附上具有代表意義的代碼文件。;</p><p><b>  //用戶登錄操作</b></p><p>  public String login() throws IOException {</p><p>  HttpServletReque

78、st request = ServletActionContext.getRequest();</p><p>  String username = request.getParameter("username");</p><p>  String password = request.getParameter("password");</

79、p><p>  String role = request.getParameter("role");</p><p>  User user = userDao.selectBean(" where username = '" + username+ "' and password= '" + passwor

80、d + "' and userlock=0");</p><p>  if (user != null && role.equals(user.getRole()+"")) {</p><p>  HttpSession session = request.getSession();</p><p> 

81、 session.setAttribute("user", user);</p><p>  this.setUrl("index");</p><p>  return "redirect";</p><p><b>  } else {</b></p><p&g

82、t;  HttpServletResponse response = ServletActionContext.getResponse();</p><p>  response.setCharacterEncoding("gbk");</p><p>  response.getWriter().print(</p><p>  "&

83、lt;script language=javascript>alert('用戶名或者密碼錯誤');window.location.href='index';</script>");</p><p><b>  }</b></p><p>  return null;</p><p>&

84、lt;b>  }</b></p><p><b>  //添加用戶操作</b></p><p>  public void useradd2() throws IOException {</p><p>  HttpServletRequest request = ServletActionContext.getRequest

85、();</p><p>  String truename = request.getParameter("truename");</p><p>  String username = request.getParameter("username");</p><p>  String role = request.getP

86、arameter("role");</p><p>  User bean = userDao.selectBean(" where username= '" + username</p><p>  + "' and userlock=0");</p><p>  if (bean ==

87、null) {</p><p>  bean = new User();</p><p>  bean.setCreatetime(new Date());</p><p>  bean.setPassword("111111");</p><p>  bean.setRole(0);</p><p&g

88、t;  bean.setTruename(truename);</p><p>  bean.setUsername(username);</p><p>  bean.setRole(Integer.parseInt(role));</p><p>  userDao.insertBean(bean);</p><p>  HttpServ

89、letResponse resp = ServletActionContext.getResponse();</p><p>  resp.setCharacterEncoding("utf-8");</p><p>  PrintWriter out = resp.getWriter();</p><p>  out.print(Util.ti

90、aozhuan("操作成功", "method!userlist", "userlist"));</p><p>  out.flush();</p><p>  out.close();</p><p><b>  } else {</b></p><p> 

91、 HttpServletResponse resp = ServletActionContext.getResponse();</p><p>  resp.setCharacterEncoding("utf-8");</p><p>  PrintWriter out = resp.getWriter();</p><p>  out.prin

92、t(Util.tiaozhuan("操作失敗,該用戶已存在", "method!userlist",</p><p>  "userlist"));</p><p>  out.flush();</p><p>  out.close();</p><p><b>  }&

93、lt;/b></p><p><b>  }</b></p><p><b>  //修改用戶操作</b></p><p>  public void userupdate2() throws IOException {</p><p>  HttpServletRequest request

94、 = ServletActionContext.getRequest();</p><p>  String truename = request.getParameter("truename");</p><p>  String role = request.getParameter("role");</p><p>  

95、User bean = userDao.selectBean(" where id= "</p><p>  + request.getParameter("id"));</p><p>  bean.setRole(Integer.parseInt(role));</p><p>  bean.setTruename(tru

96、ename);</p><p>  userDao.updateBean(bean);</p><p>  HttpServletResponse resp = ServletActionContext.getResponse();</p><p>  resp.setCharacterEncoding("utf-8");</p>

97、<p>  PrintWriter out = resp.getWriter();</p><p>  out.print(Util.tiaozhuan("操作成功", "method!userlist", "userlist"));</p><p>  out.flush();</p><p>

98、  out.close();</p><p><b>  }</b></p><p><b>  //試題庫管理</b></p><p>  public String kechenglist2() {</p><p>  HttpServletRequest request = ServletAc

99、tionContext.getRequest();</p><p>  int currentpage = 1;</p><p>  int pagesize = 20;</p><p>  if (request.getParameter("pageNum") != null) {</p><p>  currentpa

100、ge = Integer.parseInt(request.getParameter("pageNum"));</p><p>  pagesize = Integer.parseInt(request.getParameter("numPerPage"));</p><p><b>  }</b></p><

101、;p>  String where = " where kechenglock=0 order by id desc ";</p><p>  String where2 = " where kechenglock=0 ";</p><p>  int total = kechengDao.selectBeanCount(where2);&l

102、t;/p><p>  request.setAttribute("list", kechengDao.selectBeanList((currentpage - 1)</p><p>  * pagesize, pagesize, where));</p><p>  request.setAttribute("totalCount&quo

103、t;, total);</p><p>  request.setAttribute("ps", pagesize);</p><p>  request.setAttribute("pn", currentpage);</p><p>  request.setAttribute("url", "

104、;method!kechenglist2");</p><p>  this.setUrl("kecheng/kechenglist2.jsp");</p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  //試題管理

105、</b></p><p>  public String shitilist() {</p><p>  HttpServletRequest request = ServletActionContext.getRequest();</p><p>  String kecheng = request.getParameter("id"

106、;);</p><p>  request.setAttribute("kechengid", kecheng);</p><p>  int currentpage = 1;</p><p>  int pagesize = 20;</p><p>  if (request.getParameter("pag

107、eNum") != null) {</p><p>  currentpage = Integer.parseInt(request.getParameter("pageNum"));</p><p>  pagesize = Integer.parseInt(request.getParameter("numPerPage"));<

108、/p><p><b>  }</b></p><p>  String where = " where shitilock=0 and kecheng.id="+kecheng+" order by id desc ";</p><p>  String where2 = " where shit

109、ilock=0 and kecheng.id="+kecheng;</p><p>  int total = shitiDao.selectBeanCount(where2);</p><p>  request.setAttribute("list", shitiDao.selectBeanList((currentpage - 1)</p>

110、<p>  * pagesize, pagesize, where));</p><p>  request.setAttribute("totalCount", total);</p><p>  request.setAttribute("ps", pagesize);</p><p>  request.s

111、etAttribute("pn", currentpage);</p><p>  request.setAttribute("url", "method!shitilist?id="+kecheng);</p><p>  this.setUrl("shiti/shitilist.jsp");</p&g

112、t;<p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  //評分操作</b></p><p>  public void kaoshijiluupdate2() throws IOException {</p><p>  H

113、ttpServletRequest request = ServletActionContext.getRequest();</p><p>  String kaishiid = request.getParameter("kaoshiid");</p><p>  Kaoshi kaoshi = kaoshiDao.selectBean(" where i

114、d= "+kaishiid);</p><p>  String defen = request.getParameter("defen");</p><p>  String dianping = request.getParameter("dianping");</p><p>  Kaoshijilu bean

115、 = kaoshijiluDao.selectBean(" where id = "+request.getParameter("id"));</p><p>  kaoshi.setChengji2(kaoshi.getChengji2()+Double.parseDouble(defen)-bean.getDefen());</p><p>  

116、kaoshiDao.updateBean(kaoshi);</p><p>  bean.setDefen(Double.parseDouble(defen));</p><p>  bean.setDianping(dianping);</p><p>  bean.setShifougeifen("已給分");</p><

117、p>  kaoshijiluDao.updateBean(bean);</p><p>  HttpServletResponse resp = ServletActionContext.getResponse();</p><p>  resp.setCharacterEncoding("utf-8");</p><p>  PrintW

118、riter out = resp.getWriter();</p><p>  out.print(Util.tiaozhuan("操作成功", "method!kaoshijilulist?id="+kaishiid, "kaoshijilulist"));</p><p>  out.flush();</p>&

119、lt;p>  out.close();</p><p><b>  }</b></p><p>  //考試用戶成績查詢</p><p>  public String kaoshilist5() {</p><p>  HttpServletRequest request = ServletActionConte

120、xt.getRequest();</p><p>  String truename = request.getParameter("truename");</p><p>  String username = request.getParameter("username");</p><p>  StringBuffer

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論