畢業(yè)論文--基于bs架構(gòu)的網(wǎng)上考試系統(tǒng)_第1頁
已閱讀1頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科畢業(yè)設(shè)計(jì)論文</b></p><p>  題目:基于B/S的網(wǎng)上考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  院、 系: 計(jì)算機(jī)科學(xué)與工程學(xué)院 </p><p>  學(xué)科專業(yè): 軟件工程 </p><p><b>  2012年 6月</b>&

2、lt;/p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p>  1.畢業(yè)設(shè)計(jì)(論文)題目: 基于B/S架構(gòu)的網(wǎng)上考試系統(tǒng) </p><p>  2.題目背景和意義:隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)迅速發(fā)展和高校校園網(wǎng)功能的日益完善,很多高校建立了基于校園網(wǎng)的網(wǎng)絡(luò)信息管理平臺(tái),為提高教學(xué)管理水平提供了先進(jìn)的管理手段。目

3、前,基于網(wǎng)絡(luò)的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補(bǔ)充和發(fā)展。相對(duì)于傳統(tǒng)的筆試,網(wǎng)絡(luò)在線考試不僅減輕了在組織考試、評(píng)卷、成績(jī)統(tǒng)計(jì)等方面所花費(fèi)的人力和物力,并且突破了時(shí)間與空間的限制,不僅節(jié)省了資源,而且提高了評(píng)分的客觀性、公正性和準(zhǔn)確度,大大改善了考試工作的效率。</p><p>  3.設(shè)計(jì)(論文)的主要內(nèi)容(理工科含技術(shù)指標(biāo)): <

4、;/p><p>  (1)數(shù)據(jù)庫表的設(shè)計(jì)、類的設(shè)計(jì)、UML圖、ER圖; </p><p>  (2)JSP技術(shù)、數(shù)據(jù)庫技術(shù)、系統(tǒng)分析、系統(tǒng)設(shè)計(jì); </p><p>  (3)功能模塊的關(guān)系;

5、 </p><p>  (4)實(shí)現(xiàn)效果截圖; </p><p>  4.設(shè)計(jì)的基本要求及進(jìn)度安排(含起始時(shí)間、設(shè)計(jì)地點(diǎn)): 地點(diǎn):西安工業(yè)大學(xué) </p><p>  1) 基于Window平臺(tái)Jav

6、a技術(shù)開發(fā); </p><p>  2) 開發(fā)環(huán)境: MyEclipse </p><p>  3) 數(shù) 據(jù) 庫: Oracle10g

7、 </p><p>  4) 時(shí)間:進(jìn)度按照學(xué)校統(tǒng)一要求,完成開題報(bào)告,中期檢查(相關(guān)英文翻譯一篇,漢字3000字),程序開發(fā)和論文撰寫,參加畢業(yè)答辯。 </p><p>  5.畢業(yè)設(shè)計(jì)(論文)的工作量要求 畢業(yè)論文字?jǐn)?shù)1.5萬以上 </p>

8、<p> ?、?實(shí)驗(yàn)(時(shí)數(shù))*或?qū)嵙?xí)(天數(shù)): 上機(jī)實(shí)驗(yàn)600學(xué)時(shí)以上 </p><p> ?、?圖紙(幅面和張數(shù))*: </p><p> ?、?其他要求: 參考文獻(xiàn)篇數(shù):15篇以上

9、 </p><p>  指導(dǎo)教師簽名: 年 月 日</p><p>  學(xué)生簽名: 年 月 日</p><p>  系(教研室)主任審批: 年 月 日</p>

10、<p>  說明:1本表一式二份,一份由學(xué)生裝訂入附件冊(cè),一份教師自留。</p><p>  2 帶*項(xiàng)可根據(jù)學(xué)科特點(diǎn)選填。</p><p>  基于B/S的網(wǎng)上考試系統(tǒng)</p><p><b>  摘 要</b></p><p>  隨著信息技術(shù)的廣泛使用,網(wǎng)絡(luò)技術(shù)逐漸滲入社會(huì)生活各個(gè)層面,互聯(lián)網(wǎng)在國(guó)際

11、上得到了迅猛的發(fā)展,基于互聯(lián)網(wǎng)的各種應(yīng)用也日益受到人們的重視。B/S結(jié)構(gòu)的考試系統(tǒng)正是在這種形勢(shì)下應(yīng)運(yùn)而生的。B/S結(jié)構(gòu)的在線考試系統(tǒng)與傳統(tǒng)的考試方式相比,網(wǎng)上考試對(duì)教學(xué)質(zhì)量有很大的提高,實(shí)現(xiàn)教考分離,大范圍地實(shí)現(xiàn)教學(xué)資源共享,對(duì)教學(xué)有極大的促進(jìn)作用。B/S結(jié)構(gòu)的在線考試系統(tǒng)可以動(dòng)態(tài)地管理各種考試信息,自動(dòng)組卷,考試結(jié)束后計(jì)算機(jī)在一定程度上自動(dòng)閱卷與判分,幾乎屏蔽了所有人工直接干預(yù)考試活動(dòng)的可能性,不但能夠節(jié)約大量的時(shí)間、人力、物力與財(cái)

12、力,而且還可以大幅度提高考試成績(jī)的客觀性和公正性。</p><p>  本論文采用軟件工程、網(wǎng)絡(luò)編程、網(wǎng)頁制作、數(shù)據(jù)庫等原理技術(shù),設(shè)計(jì)了一個(gè)在線考試的網(wǎng)上考試系統(tǒng)。系統(tǒng)使用方便、操作簡(jiǎn)單,具有試卷添加、題目添加、成績(jī)查詢、在線考試等重要功能,該系統(tǒng)考試時(shí)考生進(jìn)入考試界面,選擇相應(yīng)的科目和試卷進(jìn)行考試。在考試過程中,考生不能刷新,且必須做完全部的考試題才可以交卷??纪旰髮?duì)客觀題的自動(dòng)評(píng)分、存檔。教師登錄后進(jìn)入教師管

13、理界面,添加和修改題目和試卷進(jìn)行成績(jī)查詢。管理員進(jìn)入管理員界面,管理員可以添加試卷,添加題目,成績(jī)查詢,添加學(xué)生,老師,科目等功能。本文提出了在線考試系統(tǒng)的設(shè)計(jì)方案,重點(diǎn)討論了系統(tǒng)的功能結(jié)構(gòu)、系統(tǒng)的設(shè)計(jì)方法和系統(tǒng)的實(shí)現(xiàn)等關(guān)鍵技術(shù)。</p><p>  關(guān)鍵詞:在線考試;用戶管理,B/S</p><p>  BASED ON B/S ONLINE EXAMINRALN SYSTEM</

14、p><p><b>  ABSTRACT</b></p><p>  As information technology is widely used, network technology gradually infiltrated all aspects of social life, Internet gains rapid development in the i

15、nternational arena. Various applications based on internet are increasingly attracting people’s attention. The examination system in form of B/S structure emerged under such a situation. Compared with the traditional met

16、hods of examination, the quality of online examination system with B/S structure is greatly improved. The system realizes the se</p><p>  Keywords: On-line test; user management; B/S</p><p><

17、b>  目錄</b></p><p><b>  摘 要I</b></p><p>  ABSTRACTII</p><p><b>  1緒 論1</b></p><p>  1.1系統(tǒng)開發(fā)背景1</p><p>  1.2系統(tǒng)開發(fā)意義1<

18、;/p><p><b>  1.3本文結(jié)構(gòu)2</b></p><p>  2系統(tǒng)的開發(fā)環(huán)境和關(guān)鍵技術(shù)3</p><p>  2.1系統(tǒng)開發(fā)環(huán)境配置3</p><p>  2.2系統(tǒng)涉及的關(guān)鍵技術(shù)3</p><p>  2.2.1 JSP 技術(shù)介紹3</p><p> 

19、 2.2.2 JavaScript 技術(shù)介紹4</p><p>  2.2.3 Struts(MVC) 技術(shù)介紹4</p><p>  2.2.4 tamcat 服務(wù)器介紹6</p><p>  2.2.5 Oracle10g技術(shù)介紹7</p><p>  2.2.6 B/S介紹7</p><p>  2.2

20、.7 JDBC技術(shù)介紹8</p><p>  3網(wǎng)上考試系統(tǒng)需求分析9</p><p><b>  3.1現(xiàn)狀分析9</b></p><p>  3.2可行性分析10</p><p>  3.2.1經(jīng)濟(jì)可行性10</p><p>  3.2.2技術(shù)可行性10</p>&l

21、t;p>  3.3功能需求概括10</p><p>  3.4 總體設(shè)計(jì)思想概述11</p><p>  4網(wǎng)上考試系統(tǒng)設(shè)計(jì)12</p><p>  4.1數(shù)據(jù)庫設(shè)計(jì)12</p><p>  4.1.1數(shù)據(jù)庫分析12</p><p>  4.1.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)13</p><

22、p>  4.1.3數(shù)據(jù)庫數(shù)據(jù)字典14</p><p>  4.1.4關(guān)系模型圖17</p><p>  4.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)18</p><p>  4.2.1頁面模塊化設(shè)計(jì)18</p><p>  5網(wǎng)上考試系統(tǒng)實(shí)現(xiàn)20</p><p>  5.1系統(tǒng)功能模塊的實(shí)現(xiàn)20</p><

23、p>  5.1.1 項(xiàng)目程序的具體結(jié)構(gòu)20</p><p>  5.2系統(tǒng)主要功能界面實(shí)現(xiàn)25</p><p>  5.2.1 登陸界面25</p><p>  5.2.2 學(xué)生考試界面27</p><p>  5.2.3學(xué)生成績(jī)查詢界面29</p><p>  5.2.4老師功能界面29</p

24、><p>  5.2.5管理員功能界面34</p><p>  5.2.6修改密碼界面36</p><p><b>  6總結(jié)37</b></p><p>  6.1遇到問題及收獲37</p><p><b>  6.2 結(jié)論37</b></p><

25、p><b>  參考文獻(xiàn)38</b></p><p><b>  致 謝39</b></p><p>  畢業(yè)設(shè)計(jì)(論文)知識(shí)產(chǎn)權(quán)聲明40</p><p>  畢業(yè)設(shè)計(jì)(論文)獨(dú)創(chuàng)性聲明41</p><p><b>  附 錄42</b></p>

26、<p><b>  1緒 論</b></p><p><b>  1.1系統(tǒng)開發(fā)背景</b></p><p>  考試是檢驗(yàn)教學(xué)效果的重要手段,也是促進(jìn)學(xué)生學(xué)習(xí)的重要手段,是教學(xué)過程中的一個(gè)重要環(huán)節(jié)。學(xué)生考試成績(jī)的優(yōu)劣,不但反映其對(duì)教學(xué)內(nèi)容和應(yīng)掌握知識(shí)的分析、理解、吸收、運(yùn)用的能力,更反映教師對(duì)教學(xué)內(nèi)容的把握和熟練程度。</p&g

27、t;<p>  傳統(tǒng)的學(xué)校教學(xué)中,進(jìn)行一場(chǎng)考試,要求老師編寫試卷、印試卷、安排考試、監(jiān)考、收集試卷、評(píng)改試卷、講評(píng)試卷和分析試卷,這是一個(gè)繁雜的過程,需要大量人力、物力與時(shí)間的投入,已經(jīng)越來越不適應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。尤其在遠(yuǎn)程網(wǎng)絡(luò)教學(xué)中,學(xué)生分布廣,不易統(tǒng)一集中安排考試,給校方和學(xué)生帶來了眾多的不便。</p><p>  而網(wǎng)上考試系統(tǒng)不僅減輕了在組織考試、評(píng)卷、成績(jī)統(tǒng)計(jì)等方面所花費(fèi)的

28、人力和物力,并且突破了時(shí)間與空間的限制,不僅節(jié)省了資源,而且提高了評(píng)分的客觀性和準(zhǔn)確度,大大改善了考試工作的效率。加上數(shù)據(jù)庫技術(shù)的利用,大大簡(jiǎn)化了傳統(tǒng)考試的過程,因此在線考試是電子化教學(xué)的不可缺少的輔助手段。在當(dāng)今信息時(shí)代,計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)越來越廣地應(yīng)用于各個(gè)領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變革。將計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教

29、學(xué)效率、提高科研和管理水平的必要手段。</p><p>  隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)迅速發(fā)展和高校校園網(wǎng)功能的日益完善,很多高校建立了基于校園網(wǎng)的網(wǎng)絡(luò)信息管理平臺(tái),為提高教學(xué)管理水平提供了先進(jìn)的管理手段。目前,基于網(wǎng)絡(luò)的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補(bǔ)充和發(fā)展。相對(duì)于傳統(tǒng)的筆試,網(wǎng)絡(luò)在線考試不僅減輕了在組織考試、評(píng)卷、成績(jī)統(tǒng)計(jì)等方面所花費(fèi)的人力和物力,并且突破了時(shí)間與空間的限制,不僅節(jié)省了資源,而且提高了

30、評(píng)分的客觀性、公正性和準(zhǔn)確度,大大改善了考試工作的效率。</p><p><b>  1.2系統(tǒng)開發(fā)意義</b></p><p>  在當(dāng)今信息時(shí)代,計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)越來越廣地應(yīng)用于各個(gè)領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變革。將計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教

31、學(xué)效率、提高科研和管理水平的必要手段。目前的一個(gè)發(fā)展趨勢(shì)是采用大規(guī)模試題庫的計(jì)算機(jī)網(wǎng)絡(luò)考試模式。隨著計(jì)算機(jī)網(wǎng)</p><p>  絡(luò)在生產(chǎn)生活、科技教育中的普及,傳統(tǒng)考試的考試出卷、答卷方式以及學(xué)績(jī)管理正發(fā)生著巨大的變革,因此,如何使考試過程變得方便、高效、快捷、公正,是現(xiàn)代教育的一個(gè)重要課題。</p><p>  無紙化的考試形式有著其科學(xué)、及時(shí)、準(zhǔn)確、公平等優(yōu)點(diǎn),具有傳統(tǒng)考試形式無法替

32、代和比擬的優(yōu)勢(shì)。  (1) 實(shí)現(xiàn)無紙化考試??荚嚱Y(jié)果均直接提交并存儲(chǔ)在服務(wù)器上,無需上任何紙張。考卷也是實(shí)時(shí)下載顯示在考生機(jī)器的屏幕上,當(dāng)考試結(jié)束后自動(dòng)批閱試卷,顯示成績(jī)。 (2)通用性和可擴(kuò)展性佳:題庫導(dǎo)入系統(tǒng)可以將第三方試題庫轉(zhuǎn)換成系統(tǒng)識(shí)別的試題庫格式,有效地增強(qiáng)了試題庫的擴(kuò)充能力。較為嚴(yán)格地按模塊劃分,為擴(kuò)展和完善留下了余地。軟件的通用性設(shè)計(jì)方式使得本系統(tǒng)能夠比較方便的為其它學(xué)科所使用。</p>

33、<p>  (3)界面設(shè)計(jì)合理,使用方便:體貼的考試界面設(shè)計(jì)將使考生作起來更方便。讓考試的過程更流暢。所有的一切完全從考生的角度出發(fā),力爭(zhēng)提供最優(yōu)化的考試環(huán)境。</p><p>  (4)快速、透明的自動(dòng)閱卷??忌梢噪S時(shí)合分,給出自己的考試分?jǐn)?shù)。</p><p>  (5)考試終端采用鼠標(biāo)輸入方式進(jìn)行答題,加快了考生的答題速度。 所以說,網(wǎng)上考試系統(tǒng),無論對(duì)學(xué)生還是老師

34、都提供了方便,并且資源得到合理利用,能更好的服務(wù)于用戶。</p><p><b>  1.3本文結(jié)構(gòu)</b></p><p>  本文共分五個(gè)章節(jié),系統(tǒng)地闡述了系統(tǒng)開發(fā)的全過程。</p><p>  第一章,主要介紹了開發(fā)的背景、目的和意義。</p><p>  第二章,主要介紹了本系統(tǒng)所用到的關(guān)鍵技術(shù)和工具,為下一步的

35、設(shè)計(jì)奠定基礎(chǔ)。</p><p>  第三章,主要對(duì)系統(tǒng)進(jìn)行需求分析并進(jìn)行總體設(shè)計(jì)。需求分析階段通過分析系統(tǒng)的功能模塊的劃分以及角色的劃分,為系統(tǒng)的總體設(shè)計(jì)提供依據(jù)??傮w設(shè)計(jì)階段通過對(duì)數(shù)據(jù)庫、過濾器、監(jiān)聽器、和實(shí)體類的設(shè)計(jì),以及各個(gè)模塊流程圖的描述,形成了開發(fā)的整體思路。</p><p>  第四章,主要介紹了主要模塊的設(shè)計(jì)與實(shí)現(xiàn),并給出關(guān)鍵源代碼和最終的效果圖。</p>&l

36、t;p>  第五章,主要是對(duì)這次畢業(yè)設(shè)計(jì)的總結(jié)和對(duì)后續(xù)工作的展望和遇到的問題。</p><p>  2系統(tǒng)的開發(fā)環(huán)境和關(guān)鍵技術(shù)</p><p>  2.1系統(tǒng)開發(fā)環(huán)境配置</p><p><b>  具體如下:</b></p><p>  開發(fā)工具:MyEclipse 8.5</p><p>

37、;  輔助開發(fā)工具: PowerDesigner(創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu))</p><p>  數(shù)據(jù)庫:ORACLE10g</p><p>  服務(wù)器 :Apache Tomcat6.0</p><p>  運(yùn)行環(huán)境 :安裝JDK1.6支持Java運(yùn)行。</p><p>  技術(shù):前臺(tái)網(wǎng)頁的設(shè)計(jì)采用JSP技術(shù)制作。負(fù)責(zé)響應(yīng)用戶對(duì)業(yè)務(wù)邏輯的請(qǐng)求并根據(jù)

38、用戶的請(qǐng)求行為,決定將哪個(gè)JSP頁面發(fā)送給客戶由servlet處理,JavaBean則負(fù)責(zé)數(shù)據(jù)的處理。</p><p>  框架:Sturts+JDBC</p><p>  2.2系統(tǒng)涉及的關(guān)鍵技術(shù)</p><p>  本系統(tǒng)用的是MVC結(jié)構(gòu),Struts框架,JSP動(dòng)態(tài)頁面技術(shù),JDBC連接數(shù)據(jù)庫,Javascript技術(shù),tamcat服務(wù)器及Oracle10g數(shù)

39、據(jù)庫,整個(gè)系統(tǒng)完全基于B/S (Browser/Server)模式進(jìn)行設(shè)計(jì)?,F(xiàn)對(duì)Struts,tamcat,MVC,Javasctipt,JSP,JDBC技術(shù)和ORACLE數(shù)據(jù)庫作簡(jiǎn)要的介紹。</p><p>  2.2.1 JSP 技術(shù)介紹</p><p>  JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和

40、scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 </p><p>  Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。 </p>

41、;<p>  JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 </p><p>  JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶</p><p>  端的瀏覽器。Java Servlet是JSP

42、的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 </p><p>  自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。 </p><p>  JSP可用一種簡(jiǎn)

43、單易懂的等式表示為:HTML+Java=JSP。</p><p><b>  Jsp的優(yōu)勢(shì):</b></p><p>  a.一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。 </p><p>  b.系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/.net的局限性是顯而易

44、見的。 </p><p>  c.強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 </p><p>  d.多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到

45、,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。 </p><p>  e.支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來實(shí)現(xiàn)復(fù)雜商務(wù)功能。</p><p>  2.2.2 JavaScript 技術(shù)介紹</p><p>  J

46、avascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的面向?qū)ο蟮膭?dòng)態(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當(dāng)時(shí)服務(wù)端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,由于網(wǎng)絡(luò)速度相當(dāng)緩慢,只有28.8kbps,驗(yàn)證步驟浪費(fèi)的時(shí)間太多。于是Netscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗(yàn)證的基本功能。本程序中JS主要實(shí)

47、現(xiàn)頁面特效。</p><p>  2.2.3 Struts(MVC) 技術(shù)介紹</p><p>  struts是開源軟件。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。如果我們想混合使用Servlets和JSP的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用,struts是一個(gè)不錯(cuò)的選擇。</p><p>  Struts最早是作為Apache Ja

48、karta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過對(duì)該項(xiàng)目的研究,改進(jìn)和提高JavaServer Pages 、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。</p><p>  早期Smalltalk 程序語言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程序代碼彈性,MVC模式將程序代碼整理切割為三部分,</p><p>  Model

49、 部分是業(yè)務(wù)與應(yīng)用領(lǐng)域( Business domain) 相關(guān)邏輯、管理狀態(tài)之對(duì)象,Controller 部分接收來自View 所輸入的資料并與Model 部分互動(dòng),是業(yè)務(wù)流程控制( Flow Control) 之處,View 部分則負(fù)責(zé)展現(xiàn)資料、接收使用者輸入資料。在Java 應(yīng)用中,JFC/Swing、AWT、JSP 皆是可用作View 的技術(shù)規(guī)格,而JavaBean 與Enterprise JavaBean 規(guī)格則可用于Mode

50、l 程序代碼,一旦應(yīng)用程序以MVC 模式加以適當(dāng)?shù)姆指?,Model 部分程序代碼可在不同使用者接口外觀的應(yīng)用程序中重復(fù)使用。 </p><p>  隨著JSP 與Servlet 技術(shù)大量應(yīng)用于以Web 為基礎(chǔ)的應(yīng)用程序,Java 開發(fā)人員群體認(rèn)為應(yīng)以較佳的模式以提升Web 應(yīng)用程序的可維護(hù)性與重復(fù)使用性。早期JSP 規(guī)格書中曾列舉兩種可行之JSP 應(yīng)用架構(gòu),分別為Model1 與Model </p>

51、<p>  在Model 1 架構(gòu)中,JSP 直接處理Web 瀏覽器送來的請(qǐng)求( Request ),并輔以JavaBean 處理應(yīng)用相關(guān)邏輯。Model 1 架構(gòu)單純編寫比較容易,但在Model 1 中JSP 可能同時(shí)肩負(fù)View 與Controller 角色,兩類程序代碼有可能混雜而不易維護(hù)。而Model 2 中將Servlet 納入架構(gòu)中扮演前端Controller 角色,將Web 瀏覽器送出的請(qǐng)求集中送至Servle

52、t ,Servlet 可集中管理使用者登入、權(quán)限控制、多國(guó)語言轉(zhuǎn)換等前置處理,再視需求轉(zhuǎn)向給對(duì)應(yīng)的JSP 處理。Model 2 中采用了較佳的MVC 模式,但增加了編寫復(fù)雜度。 </p><p>  MVC即Model-View-Controller的縮寫,是一種常用的設(shè)計(jì)模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP

53、 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。MVC結(jié)構(gòu)如圖2.1所示:</p><p>  圖2.1 MVC結(jié)構(gòu)圖</p><p>  Struts對(duì)Model,View和Controller都提供了對(duì)應(yīng)的組件。 </p><p>  在上圖中,ActionServlet,這個(gè)類是

54、Struts的核心控制器,負(fù)責(zé)攔截來自用戶的請(qǐng)求。Action,這個(gè)類通常由用戶提供,該控制器負(fù)責(zé)接收來自ActionServlet的請(qǐng)求,并根據(jù)該請(qǐng)求調(diào)用模型的業(yè)務(wù)邏輯方法處理請(qǐng)求,并將處理結(jié)果返回給JSP頁面顯示。</p><p>  MVC(Model View Controller)是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各

55、自處理自己的任務(wù)。</p><p>  視圖是用戶看到并與之交互的界面。如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。JSP頁面處于表現(xiàn)層,也就是視力(View即V)的角色。</p><p>  模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的

56、重復(fù)性。JavaBean則負(fù)責(zé)數(shù)據(jù)的處理,也就是模型(Model即M)的角色。</p><p>  控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。Servlet用來處理請(qǐng)求的事務(wù),充當(dāng)控制器(Controller即C)的角色

57、,Servlet負(fù)責(zé)響應(yīng)用戶對(duì)業(yè)務(wù)邏輯的請(qǐng)求并根據(jù)用戶的請(qǐng)求行為,決定將哪個(gè)JSP頁面發(fā)送給客戶。</p><p>  初始的請(qǐng)求由Servlet來處理,Servlet調(diào)用商業(yè)邏輯和數(shù)據(jù)處理代碼,并創(chuàng)建Bean來表示相應(yīng)的結(jié)果(模型)。然后Servlet確定哪個(gè)頁面適合于表達(dá)這些特定的結(jié)果,并將請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的頁面(JSP頁面即為視圖),由Servle確定哪個(gè)業(yè)務(wù)邏輯適用,應(yīng)該用哪個(gè)JSP頁面相應(yīng)結(jié)果(Servl

58、et就是控制器)。</p><p>  2.2.4 tamcat 服務(wù)器介紹</p><p>  Tomcat是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn)。為T

59、omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。</p><p>  Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。 </p><p>

60、  Tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML頁面的訪問請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。</p><p>

61、  2.2.5 Oracle10g技術(shù)介紹</p><p>  Oracle 是以高級(jí)結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,通俗地講它是用方便邏輯管理的語言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一。其特點(diǎn):</p><p>  a、CLE7.X以來引入了共享SQL和多線索服務(wù)器體系結(jié)構(gòu)。這減少了ORACLE的資源占用,

62、并增強(qiáng)了ORACLE的能力,使之在低檔軟硬件平臺(tái)上用較少的資源就可以支持更多的用戶,而在高檔平臺(tái)上可以支持成百上千用戶?! 、提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)?! 、支持大量多媒體數(shù)據(jù),如二進(jìn)制圖形、聲音、動(dòng)畫以及多維數(shù)據(jù)結(jié)構(gòu)等?! 、提供了與第三代高級(jí)語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對(duì)

63、數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操縱。加上它有許多優(yōu)秀的前臺(tái)開發(fā)工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速開發(fā)生成基于客戶端PC 平臺(tái)的應(yīng)用程序,并具有良好的移植性?! 、提供了新的分布式數(shù)據(jù)庫能力??赏ㄟ^網(wǎng)絡(luò)較方便地讀寫遠(yuǎn)端數(shù)據(jù)庫里的數(shù)據(jù),并有對(duì)稱復(fù)制的技術(shù)。</p><p>  2.2.6 B/S介紹</p><p>  伴隨著Internet的迅速

64、發(fā)展,計(jì)算機(jī)技術(shù)正在由基于C/S(client/ Server)模式的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛贐/S模式的應(yīng)用系統(tǒng)。</p><p>  過去,網(wǎng)絡(luò)軟件的開發(fā)都采用C/S(client)模式,在這種模式下,主要的業(yè)務(wù)邏輯都集中于客戶端程序,因此,必然導(dǎo)致以下問題:</p><p>  系統(tǒng)安裝、調(diào)試、維護(hù)和升級(jí)困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時(shí),必須對(duì)每一個(gè)

65、客戶端分別進(jìn)行配置,同樣,在軟件升級(jí)時(shí)也要對(duì)客戶端分別處理。</p><p>  在整個(gè)系統(tǒng)中,業(yè)務(wù)邏輯和用戶界面都集中到了客戶端,必然會(huì)增加安全隱患。</p><p>  B/S模式帶來了巨大的好處:</p><p>  開發(fā)成本及維護(hù)成本降低。由于B/S架構(gòu)管理軟件只安裝在服務(wù)器端(Server)上,即應(yīng)用程序在部署、升級(jí)、維護(hù)時(shí),只需要在服務(wù)器端進(jìn)行配置就可以

66、了,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面主要事務(wù)邏輯在服務(wù)器(Server)端完全通過WWW瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。</p><p>  良好的安全性能,防火墻技術(shù)可以保證后臺(tái)數(shù)據(jù)庫的安全性。所有的配置工作都集中在服務(wù)器端且所有客戶端請(qǐng)求都是通過DBMS來訪問數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險(xiǎn)。</p>

67、;<p>  2.2.7 JDBC技術(shù)介紹</p><p>  JDBC(Java DataBase Connectivity):</p><p>  JDBC是為在Java Applet和應(yīng)用程序中訪問關(guān)系數(shù)據(jù)庫而設(shè)計(jì)的API類。</p><p>  面向應(yīng)用程序開發(fā)人員的API Java.sql.*,數(shù)據(jù)庫驅(qū)動(dòng)程序開發(fā)人員的API JDBC D

68、river API ,JDBC獨(dú)立于平臺(tái)和數(shù)據(jù)庫。在JDBC規(guī)范中,成功地提供了SQL數(shù)據(jù)庫訪問的Java方法。</p><p>  JDBC的主要的類:</p><p>  Java.sql.DriverManager ,加載不同的JDBC驅(qū)動(dòng)程序并且為創(chuàng)建的新的數(shù)據(jù)庫連接提供支持,Java.sql.Connection 完成對(duì)某一指定數(shù)據(jù)庫的連接,Java.sql.Statement

69、執(zhí)行SQL語句,Java.sql.Result SQL語句執(zhí)行后的數(shù)據(jù)庫結(jié)果集。通過JDBC實(shí)現(xiàn)數(shù)據(jù)庫查找,插入操作。確定JDBC驅(qū)動(dòng)方式,此處設(shè)為JDBC-ODBC。通過Connection類設(shè)置數(shù)據(jù)庫連接。數(shù)據(jù)庫連接上創(chuàng)建Statement對(duì)象。通過executeQuery函數(shù)執(zhí)行查詢語句,并返回結(jié)果集。通過結(jié)果集操作函數(shù)對(duì)結(jié)果集進(jìn)行操作。</p><p>  3網(wǎng)上考試系統(tǒng)需求分析</p>&

70、lt;p><b>  3.1現(xiàn)狀分析</b></p><p>  傳統(tǒng)的考試方法要求組織者提前命題試卷,然后約定一個(gè)統(tǒng)一時(shí)間,讓所有考生到考場(chǎng)里進(jìn)行考試。這種模式如圖3.1 所示:</p><p><b>  編輯考題</b></p><p><b>  印刷大量試卷</b></p>

71、<p>  安排考場(chǎng),時(shí)間,監(jiān)考人員</p><p><b>  學(xué)生集體考試</b></p><p><b>  閱卷,統(tǒng)計(jì)成績(jī)</b></p><p>  圖3.1 傳統(tǒng)考試模式</p><p>  這種模式存在有較多的問題:</p><p>  命題:由于

72、考試要求統(tǒng)一進(jìn)行,所有考生都考同樣的一份試卷,所以試卷的命題工作便一定得非常謹(jǐn)慎小心,試題太難或太容易,都達(dá)不到考試目的,尤其是對(duì)于一個(gè)大規(guī)模的考試,(比如計(jì)算機(jī)等級(jí)考試,英語四,六級(jí)考試等),如何正確把握試卷的難度,一直都是讓命題教師最為頭痛的問題之一。而如何不在考試之前使命好的試題泄漏出去,也是組織者費(fèi)盡心思。</p><p>  試卷印刷:對(duì)于大規(guī)模的考試,試卷印刷費(fèi)工費(fèi)時(shí),成本高,對(duì)紙張資源也是一種浪費(fèi)。

73、對(duì)于涉及地域范圍較廣的考試(如英語四,六級(jí)考試),還要考慮試卷大的長(zhǎng)途運(yùn)送費(fèi)用。在考試的印刷和運(yùn)輸過程中同樣有試題泄漏出去的問題,任何一個(gè)環(huán)節(jié)出了問題,都可能使前面有的工作付諸流水。</p><p>  考場(chǎng)的安排:監(jiān)考人員的培訓(xùn)與管理。對(duì)于大規(guī)模的考試,尤其是到了考試密集期(如期末,期中)。諸多學(xué)科的考試都要陸續(xù)開始的時(shí)候,對(duì)于教室資源和教師數(shù)量相對(duì)緊張的學(xué)校,如何安排考場(chǎng),調(diào)配監(jiān)考人員,是一件相對(duì)繁瑣而又復(fù)雜

74、的事情。</p><p><b>  3.2可行性分析</b></p><p>  可行性分析也稱為可行性研究,即是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、管理的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個(gè)

75、方面的內(nèi)容。</p><p>  3.2.1經(jīng)濟(jì)可行性</p><p>  主要是對(duì)項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià),利用計(jì)算機(jī)來實(shí)現(xiàn)網(wǎng)上考試以成為適應(yīng)當(dāng)今教學(xué)管理的方式。開發(fā)一套能滿足網(wǎng)上考試系統(tǒng)的軟件是十分必要的,實(shí)現(xiàn)試卷管理和試卷生成自動(dòng)化,在減少由于認(rèn)為失誤而早成損失的同時(shí),也可以使教師減少工作量。本系統(tǒng)在經(jīng)濟(jì)上是可以接受的,并且本系統(tǒng)實(shí)施后可以顯著提高考試效率,有助于學(xué)院完全實(shí)現(xiàn)網(wǎng)絡(luò)化管理

76、。所以本系統(tǒng)在經(jīng)濟(jì)上是可行的。</p><p>  3.2.2技術(shù)可行性</p><p>  技術(shù)上的可行性分析主要分析技術(shù)條件是否能順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。</p><p>  軟件方面,網(wǎng)絡(luò)化考試需要的各種軟件環(huán)境都已具備,數(shù)據(jù)庫服務(wù)器方面則有ORACLE,均能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性并提供許多高級(jí)管理功能。其靈活性、安全性

77、和易用性為數(shù)據(jù)庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺(tái)已成熟可行。</p><p>  硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價(jià)格越來越低,其硬件平臺(tái)完全能滿足此系統(tǒng)的需要。</p><p><b>  3.3功能需求概括</b></p><p>  系統(tǒng)應(yīng)該具備的基本功能:</p&

78、gt;<p>  用戶類別:登錄系統(tǒng)的身份定為三種,一是管理員,二是普通老師,三是學(xué)生,只有被授權(quán)的用戶才可以使用本系統(tǒng)的資源。 </p><p>  權(quán)限管理:系統(tǒng)需要經(jīng)過有效的身份驗(yàn)證可以登錄。用戶的身份不同,使用的系統(tǒng)資源也不同。考生只可以參加在線考試;普通教師可以在線制作試卷,成績(jī)查詢、添加試題等。管理員可添加學(xué)生、教師、題目信息、題目難度、查詢修改管理員信息及查詢考生成績(jī)。 </p&

79、gt;<p>  在線考試功能:考生輸入學(xué)號(hào)密碼登陸系統(tǒng)后,選擇對(duì)應(yīng)的試卷可進(jìn)行考試。答題中,系統(tǒng)將自動(dòng)對(duì)客觀題進(jìn)行評(píng)分。 </p><p>  在線制作試卷:教師、管理員可在線制作試卷,可設(shè)定試題的類型、分值。</p><p>  考生管理功能:可注冊(cè)新增學(xué)生用戶,同時(shí)查看考生及班級(jí)考生的信息。 </p><p>  考生成績(jī)查詢功能:提供考生各科目

80、成績(jī)的詳細(xì)查詢。 </p><p>  除了實(shí)現(xiàn)上述功能以外,在線考試系統(tǒng)還應(yīng)該具有友好、簡(jiǎn)潔的界面,安全性要高,穩(wěn)定性要強(qiáng)。</p><p>  3.4 總體設(shè)計(jì)思想概述</p><p>  本系統(tǒng)是基于B/S架構(gòu)下的多層結(jié)構(gòu)應(yīng)用系統(tǒng)。B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)

81、的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了用戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。 </p><p>  在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為

82、:數(shù)據(jù)訪問(持久)層、業(yè)務(wù)邏輯層(或稱為領(lǐng)域?qū)樱?、表示層?lt;/p><p>  總的來說,采用分層結(jié)構(gòu)的設(shè)計(jì)思想,可以讓每個(gè)層由一組相關(guān)的類或組件構(gòu)成,共同完成特定的功能。層與層之間存在自上而下的依賴關(guān)系,上層組件會(huì)依賴下層組件的API,而下層組件則不依賴于上層組件。例如:表述層依賴于業(yè)務(wù)邏輯層,而業(yè)務(wù)邏輯層依賴于數(shù)據(jù)庫層。并且每個(gè)層對(duì)對(duì)上層公開API,但具體的實(shí)現(xiàn)細(xì)節(jié)對(duì)外透明。當(dāng)某一層發(fā)生變化,只要API不變,

83、不會(huì)影響其他層的實(shí)現(xiàn)。</p><p>  在本系統(tǒng)中,使用開源的oracle數(shù)據(jù)庫,持久層用到單例模式技術(shù),業(yè)務(wù)邏輯層用普通javabean實(shí)現(xiàn),表述層運(yùn)用基于struts的MVC設(shè)計(jì)模式。</p><p><b>  4網(wǎng)上考試系統(tǒng)設(shè)計(jì)</b></p><p><b>  4.1數(shù)據(jù)庫設(shè)計(jì)</b></p>

84、<p>  在對(duì)網(wǎng)上考試系統(tǒng)數(shù)據(jù)庫部分進(jìn)行設(shè)計(jì)的過程中,通過對(duì)系統(tǒng)功能進(jìn)行需求分析得到系統(tǒng)的基本信息表,繪制系統(tǒng)業(yè)務(wù)流程圖和系統(tǒng)數(shù)據(jù)流程圖,分析得到數(shù)據(jù)字典;在概率結(jié)構(gòu)設(shè)計(jì)階段通過對(duì)需求階段得到的用戶需求抽象得到數(shù)據(jù)庫關(guān)系模型的E-R圖;在邏輯結(jié)構(gòu)設(shè)計(jì)階段得到數(shù)據(jù)庫的關(guān)系模式并繪制信息表。詳細(xì)設(shè)計(jì)過程如下介紹。</p><p>  4.1.1數(shù)據(jù)庫分析</p><p>  需求

85、分析是設(shè)計(jì)數(shù)據(jù)庫的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,數(shù)據(jù)庫共要設(shè)計(jì)十多個(gè)表,它們分別是:題目范圍、班級(jí)表、題目難度表、答案、試卷信息表、學(xué)生表、學(xué)生成績(jī)表、用戶表、題庫表、用戶類型表等。</p><p>  根據(jù)所要實(shí)現(xiàn)的功能和用戶權(quán)限的設(shè)置。系統(tǒng)總體的層次圖如圖4.1:</p>

86、<p><b>  圖4.1系統(tǒng)層次圖</b></p><p>  4.1.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)</p><p>  概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,包括概念模型設(shè)計(jì)和新系統(tǒng)流程兩個(gè)階段。在需求分析階段所得到的應(yīng)用需求應(yīng)該首先抽象為信息世界的結(jié)構(gòu),才能更好地、更準(zhǔn)確地用某一DBMS實(shí)

87、現(xiàn)這些需求。</p><p>  概念數(shù)據(jù)模型獨(dú)立于具體的數(shù)據(jù)處理的細(xì)節(jié)和數(shù)據(jù)庫管理系統(tǒng)。這次設(shè)計(jì)仍采用傳統(tǒng)的實(shí)體聯(lián)系圖作為概念設(shè)計(jì)的工具。再進(jìn)行優(yōu)化后,盡量滿足結(jié)構(gòu)清晰、關(guān)聯(lián)簡(jiǎn)潔、實(shí)體個(gè)數(shù)適中、屬性分配合理、沒有低級(jí)冗余。系統(tǒng)E-R圖如下圖4.2所示:</p><p>  圖4.2系統(tǒng)E-R圖</p><p>  4.1.3數(shù)據(jù)庫數(shù)據(jù)字典</p>&

88、lt;p>  根據(jù)業(yè)務(wù)關(guān)系理清思路得到E-R圖并得到各個(gè)表之間的關(guān)系和表的屬性得到數(shù)據(jù)字典。</p><p>  數(shù)據(jù)字典如下圖描述:字段描述描述學(xué)生的屬性,字段是表在數(shù)據(jù)庫中的表現(xiàn),類型長(zhǎng)度,是指字段的數(shù)據(jù)類型和字段長(zhǎng)度,主外鍵關(guān)系都在表中表現(xiàn)出來了,除了主鍵不能為空,其他均可以為空。 </p><p><b>  a.學(xué)生表 </b></p>

89、<p>  學(xué)生表用來存放學(xué)生的具體信息,包括8個(gè)字段,stuid為學(xué)生在數(shù)據(jù)庫中的唯一標(biāo)示區(qū)別其他字段的,其他字段全是他的屬性(有賬號(hào),性別等),classId和userid是它的兩個(gè)外鍵,表示他和這兩個(gè)表有外鍵關(guān)系,用來說明他是哪個(gè)班的及誰是他的班主任,這樣再添加學(xué)生時(shí)就可以將班級(jí)和用戶關(guān)聯(lián)上學(xué)生。具體內(nèi)容如下表4.1所示:</p><p><b>  表4.1 學(xué)生表</b>

90、;</p><p>  b.用戶表和用戶類型表</p><p>  用戶表用來存放用戶的具體信息而用戶類型表是表示此用戶的類型,用戶表也就是管理員表,用戶類型表是用戶表的外鍵,目前只有老師和系統(tǒng)管理員兩個(gè)數(shù)據(jù),在登陸的時(shí)候,就可以根據(jù)用戶類型id就可以知道此用戶是什么類型未進(jìn)入不同的頁面了,其他的字段是用戶表的基本信息。用戶表包括7個(gè)字段,具體內(nèi)容如下表4.2所示,用戶類型表如表4.3所示

91、:</p><p><b>  表4.2 用戶表</b></p><p><b>  表4.3用戶類型表</b></p><p>  c.題目表、題目難度表、及題目范圍表</p><p>  題目表存儲(chǔ)的是題目相關(guān)的所有信息,其中題目難度和題目范圍和錄入人是它的三個(gè)外鍵,是為了在制作試卷的時(shí)候就可以

92、根據(jù)科目找到相應(yīng)的題目并知道是誰制作的,因?yàn)樵谥谱黝}目是先要選擇題目范圍和難度,再進(jìn)行添加,所以必須有這兩個(gè)外鍵,其他字段是題目的基本信息(包括編號(hào)、選項(xiàng)、答案等)。題目表包括13個(gè)字段,具體內(nèi)容如下表4.4所示,表4.5是題目難度題目范圍的舉例表,管理員可以添加不同的范圍也就是科目,不同難度。</p><p><b>  表4.4 題目表</b></p><p> 

93、 題目難度數(shù)據(jù)如表4.5所示,可根據(jù)編號(hào)得到相應(yīng)的名稱。</p><p>  表4.5 題目范圍數(shù)據(jù)表</p><p>  d.試卷表,出題表 </p><p>  試卷表和出題表示本系統(tǒng)最重要的表。整個(gè)系統(tǒng)中試卷時(shí)最有難度的,我的設(shè)計(jì)就是:試卷表只是規(guī)定了試卷的基本信息(包括題目難度,題目范圍,題目題量,題目分?jǐn)?shù),考試時(shí)間等)出題表中才有試卷和題目的關(guān)聯(lián)。將題目

94、和試卷作為出題表的外鍵,這樣才能制作出試卷。在制作試卷時(shí)先根據(jù)選擇的難度和范圍找到所有的和要求的題目,然后選擇的時(shí)候?qū)⑦x中的題目id和這張?jiān)嚲韎d一條一條的存入出題表中,在取試卷的時(shí)候就根據(jù)出題表將題目取出即可。試卷表具體信息如表4.6所示,出題表如表4.7所示。</p><p><b>  表4.6 試卷表</b></p><p>  表4.7 出題表<

95、/p><p><b>  e.答案表</b></p><p>  答案表記載了學(xué)生在某個(gè)試卷的答案,是為了對(duì)比考生對(duì)這個(gè)試卷考試時(shí)進(jìn)行對(duì)比得到相應(yīng)的分?jǐn)?shù),所以必須有學(xué)生和試卷這兩個(gè)外鍵,試卷的答案就放在答案結(jié)果中。具體信息如表4.8所示:</p><p>  表4.8 答案表</p><p>  4.1.4關(guān)系模型圖&l

96、t;/p><p>  以概念結(jié)構(gòu)設(shè)計(jì)中的E-R圖為主要依據(jù)并根據(jù)數(shù)據(jù)字典得出該系統(tǒng)的關(guān)系模式如下圖4.3所示:(通過Powerdesigner建模工具得到的關(guān)系模型保存為myModel.pdm)由于功能較多,表也較多,所以表結(jié)構(gòu)及表之間的關(guān)系也比較復(fù)雜。設(shè)計(jì)時(shí),現(xiàn)將每個(gè)表根據(jù)上述的數(shù)據(jù)字典在工具中實(shí)現(xiàn)出來,主要是主鍵的屬性及類型長(zhǎng)度,表中的每一個(gè)方框就是一個(gè)表,而主外鍵關(guān)系,通過連接線就可以實(shí)現(xiàn),如題目難度和題目范圍

97、是題目的外鍵,將題目難度和題目范圍表連接到題目表,則主外鍵關(guān)系就好了,所有的主外鍵關(guān)系也和數(shù)據(jù)字典的關(guān)系符合。</p><p>  圖4.3 數(shù)據(jù)庫表建模圖</p><p><b>  4.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  4.2.1頁面模塊化設(shè)計(jì)</p><p>  模塊化設(shè)計(jì)的要求不僅是為了提高代碼的重用性

98、,更重要的是為了提高代碼的可維護(hù)性和穩(wěn)定性。一個(gè)模塊化程度高、結(jié)構(gòu)清晰的應(yīng)用程序,在程序維護(hù)時(shí)的便利性是可想而知的。最初設(shè)計(jì)方案時(shí),就要規(guī)劃好哪些模塊是可以提出來多次使用,哪些模塊雖只使用一次,但提出來之后能使代碼更清晰等。</p><p>  網(wǎng)上考試系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫開發(fā)應(yīng)用程序,本系統(tǒng)主要用管理員、教師和學(xué)生三大模塊組成,各模塊功能如下:</p><p><b>  1

99、)管理員模塊:</b></p><p>  該模塊主要是對(duì)學(xué)生、老師、班級(jí)、考試范圍、難度進(jìn)行管理,添加修改學(xué)生、教師、信息,添加試題、試卷和審核教師制作的試卷等。</p><p><b>  2)教師模塊:</b></p><p>  該模塊主要是教師通過登錄該系統(tǒng)能夠修改密碼(只能修改密碼),添加試題,在線制作試卷,查詢成績(jī)等。

100、</p><p>  流程過程,用戶登陸,系統(tǒng)根據(jù)用戶類型判斷是老師還是管理員,老師就進(jìn)入老師頁面,主要有題目管理,試卷管理,成績(jī)查詢,和修改密碼的權(quán)限,管理員就進(jìn)入管理員界面,除了老師的權(quán)限外,還有班級(jí)管理和學(xué)生用戶管理及系統(tǒng)管理等權(quán)限。</p><p>  具體流程圖如圖4.4所示:</p><p>  圖4.4管理員流程(包括老師)</p>&l

101、t;p>  3)學(xué)生模塊:該模塊主要是學(xué)生通過登錄該系統(tǒng)能夠修改個(gè)人信息(只能修改密碼),進(jìn)行考試等。</p><p>  學(xué)生在線考試程序流程圖,學(xué)生登陸后,主要功能就是進(jìn)入選擇考試界面后,可選擇考試范圍及考試難度在選擇試卷進(jìn)行考試,還有成績(jī)查詢及修改密碼的功能。</p><p>  其具體流程圖如圖4.5所示:</p><p><b>  圖4.

102、5學(xué)生流程圖</b></p><p><b>  5網(wǎng)上考試系統(tǒng)實(shí)現(xiàn)</b></p><p>  5.1系統(tǒng)功能模塊的實(shí)現(xiàn)</p><p>  從系統(tǒng)功能模塊劃分中可以看出,系統(tǒng)總體上有兩個(gè)功能模塊組成,一個(gè)是學(xué)生模塊也就是前臺(tái),一個(gè)是管理員界面包括老師。各模塊雖然是獨(dú)立的,但又統(tǒng)一于同一數(shù)據(jù)庫中,便于管理員管理維護(hù)數(shù)據(jù)庫,同時(shí)也便

103、于教師和學(xué)生的操作。</p><p>  5.1.1 項(xiàng)目程序的具體結(jié)構(gòu)</p><p>  網(wǎng)上考試系統(tǒng)代碼主要分為3個(gè)部分,如下圖所示,SRC包主要放的是java類,封裝了Action和數(shù)據(jù)庫操作、業(yè)務(wù)邏輯、數(shù)據(jù)庫連接及實(shí)體類等重要代碼,JRE System library下面四個(gè)包全是架包,java,struts及數(shù)據(jù)庫連接等重要的封裝類都在這些jar包中。Webroot包中則主要是

104、JSP頁面,還有就是圖片,和javascript代碼,全都是處理JSP頁面及特效。完全遵循了MVC結(jié)構(gòu)的思想,每個(gè)模塊處理不同的需求。</p><p>  項(xiàng)目結(jié)構(gòu)如圖5.1所示:</p><p><b>  圖5.1項(xiàng)目結(jié)構(gòu)圖</b></p><p>  a.WebRoot包</p><p>  WebRoot包中寫的

105、都是JSP頁面也就是MVC結(jié)構(gòu)中的View。</p><p>  在本系統(tǒng)中主要有題目管理,試卷管理,用戶管理,班級(jí)管理和登陸等功能。為了使邏輯更加清晰,理解簡(jiǎn)單,我把每個(gè)功能頁面都細(xì)分為不同的包,每個(gè)包中就放不同的功能的JSP頁面。</p><p>  如Class中為班級(jí)和學(xué)生添加及查詢?nèi)鐖D5.2所示:</p><p>  圖5.2 Class包</p&

106、gt;<p>  其他功能的JSP頁面類似,都放在此包中。</p><p><b>  b.SRC包</b></p><p>  Src包為代碼包,所有的功能實(shí)現(xiàn),和頁面跳轉(zhuǎn),實(shí)體類等都在此包中。</p><p> ?。?)com.cissst.Action包中就是MVC結(jié)構(gòu)中的C,調(diào)用業(yè)務(wù)邏輯層中的方法,獲得頁面數(shù)據(jù),跳轉(zhuǎn)頁面。

107、IndexMangerAction.java為首頁(登陸)Action。ExampaperManagerAction.jav為題目管理Action。AchievementMangerAction.java為成績(jī)查詢的Action。ClassMangerAction.java為班級(jí)管理和學(xué)生管理頁面的Action。ExamSchemeMangerAction.java為試卷管理頁面的Action。SysMangerAction為系統(tǒng)管理頁

108、面的Action。它們分別是處理相應(yīng)頁面的跳轉(zhuǎn)。</p><p>  如圖5.3所示: </p><p>  圖5.3 Action包</p><p> ?。?)com.cissst.dao包中放的是數(shù)據(jù)訪問層的接口(其中只有方法,但是沒有實(shí)現(xiàn)類),com.cissst.idao為此接口的實(shí)現(xiàn)類。這個(gè)包的主要作用是操作數(shù)據(jù)庫,通過調(diào)用util包中的BaseC

109、onnection方法,其中寫有連接數(shù)據(jù)庫和操作數(shù)據(jù)庫的增刪改查等重要功能,如果有其他功能只需在包中添加方法即可。此包和Action包相同,每個(gè)包都管理著不同的功能管理(其他包都是一樣。)</p><p> ?。?)com.cissst.entity包中放的都是實(shí)體類,簡(jiǎn)單的說了就是將數(shù)據(jù)庫中的表實(shí)體化,表中的每個(gè)屬性都是這個(gè)實(shí)體類中的一個(gè)變量,而主外鍵關(guān)系則就將外鍵的實(shí)體類當(dāng)成這個(gè)類的一個(gè)變量,每個(gè)變量都有g(shù)e

110、t()和set()方法。每一個(gè)表就有一個(gè)實(shí)體類。以便將數(shù)據(jù)庫中的數(shù)據(jù)取出。</p><p><b>  如圖5.4所示:</b></p><p><b>  圖5.4 實(shí)體類</b></p><p>  具體代碼拿User.java(用戶表myuser表),下面可以看出,表myuser的每條屬性都是user實(shí)體類中的一個(gè)

111、變量。這樣在數(shù)據(jù)庫取數(shù)據(jù)時(shí)就可以將數(shù)據(jù)的每條數(shù)據(jù)存到這個(gè)實(shí)例中,以便使用。</p><p><b>  /**用戶ID*/</b></p><p>  private int userId;</p><p><b>  /**用戶姓名*/</b></p><p>  private String u

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論