2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課 程 設(shè) 計</b></p><p>  設(shè)計題目: WEB程序設(shè)計課程設(shè)計 </p><p>  -----在線考試系統(tǒng)的開發(fā) </p><p>  系 別 信息工程系 班級 </p><p>  學(xué)生姓名

2、 </p><p>  學(xué)號 </p><p>  指導(dǎo)教師 職稱 </p><p>  起止日期:2011年8月29日起——至2011年9月2日止</p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  課程設(shè)計

3、題目: WEB程序設(shè)計課程設(shè)計 </p><p>  -----在線考試系統(tǒng)的開發(fā) </p><p>  系 別 信息工程系 班級 </p><p>  學(xué)生姓名 </p><p>  學(xué)號 </p>

4、<p>  指導(dǎo)教師 職稱授</p><p>  課程設(shè)計進行地點: </p><p>  任 務(wù) 下 達 時 間: 2011 年 8 月 29 日</p><p>  起止日期: 2011年8月29日起——至2011年9月2日止</p><p>  教研室主任

5、 2011年 8月 29 日批準(zhǔn) </p><p>  設(shè)計的原始資料及依據(jù)</p><p>  查閱有關(guān)數(shù)據(jù)庫設(shè)計、JSP程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計等資料,進一步加深對課程內(nèi)容的理解,利用程序設(shè)計的基本思想進行程序的開發(fā),進一步掌握編程方法和技巧,提高學(xué)生用程序的思想來解決實際問題的能力。本課程設(shè)計主要涉及到需求分析、總體設(shè)計、詳細(xì)設(shè)計以及底層數(shù)據(jù)庫設(shè)計幾個主要環(huán)節(jié)。&l

6、t;/p><p>  2.設(shè)計的主要內(nèi)容及要求</p><p>  (1)寫出系統(tǒng)的需求分析。</p><p>  (2)寫出數(shù)據(jù)庫設(shè)計。</p><p>  (3)寫出系統(tǒng)的詳細(xì)設(shè)計及各模塊的功能。</p><p>  (4)編寫代碼,開發(fā)系統(tǒng)。</p><p>  3.對設(shè)計說明書撰寫內(nèi)容、格式

7、、字?jǐn)?shù)的要求</p><p>  (1)學(xué)生應(yīng)撰寫的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻等。課程設(shè)計說明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求參照《沈陽工程學(xué)院畢業(yè)設(shè)計(論文)撰寫規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。</p><p><b>  (2)裝訂格式:</b></p><p>  封面、任務(wù)書、成績評審意

8、見表、中文摘要和關(guān)鍵詞、目錄、正文、結(jié)論、致謝、參考文獻。</p><p>  (3)課程設(shè)計說明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計成果的載體,一般不應(yīng)少于3000字。</p><p>  4. 設(shè)計完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求</p><p>  (1)每組提交一份課程設(shè)計報告。</p><p>  (2)每組提交一份課程設(shè)計

9、成品。</p><p><b>  5.時間進度安排</b></p><p>  6.主要參考資料(文獻)</p><p>  [1]王珊.數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社,2000</p><p> ?、评畲?軟件工程(第2版).清華大學(xué)出版社.2008</p><p> ?、窍?qū)W哲.JSP程序

10、設(shè)計教程.人民郵電出版社,2006</p><p> ?、汝愋駯|.JSP2.0應(yīng)用教程.清華大學(xué)出版社,2006 </p><p>  ⑸孫鑫.Java Web開發(fā)詳解.電子工業(yè)出版社,2006</p><p><b>  摘 要</b></p><p>  隨著高等學(xué)校的快速發(fā)展,高校規(guī)模越來越大,電子技術(shù)的高速發(fā)

11、展決定了以后考生在面臨考試時更加規(guī)范化。計算機技術(shù)網(wǎng)絡(luò)的普及也促使考試慢慢的發(fā)生變化,由傳統(tǒng)的筆試到越來越多的上機考試,因此在線考試系統(tǒng)應(yīng)運而生。此系統(tǒng)出現(xiàn)以后很大程度上提高了考試的效率;也避免教師在批改時出現(xiàn)一些不必要的錯誤,使用起來也很方便、將會被越來越多的人接受和使用。</p><p>  我們這次做的是JSP課程設(shè)計,我們組做的題目就是在線考試系統(tǒng)。此系統(tǒng)在我們組成員共同努力下功能已基本完善,主要包括考生

12、注冊與登陸、考試、成績查詢、管理員注冊與登陸、試題的錄入以及成績統(tǒng)計等功能。本次開發(fā)此系統(tǒng)我們用的是JSP網(wǎng)頁以及網(wǎng)頁間的跳轉(zhuǎn),使用的數(shù)據(jù)庫為Access數(shù)據(jù)庫,用時一周圓滿完成此次課程設(shè)計的任務(wù)。經(jīng)過我們的調(diào)試能夠正常運行,此系統(tǒng)可以投入使用,管理員即教師登入系統(tǒng)輸入試題,考生即可進入系統(tǒng)答題,答完就能查到成績,很方便快捷。</p><p>  一周的時間很快就過去了,雖然我們也先后查資料反復(fù)調(diào)試,但是最終完成

13、了此系統(tǒng)。中途也遇到了很多問題,通過請教老師和同學(xué)順利的解決了。雖然累但很充實,我們通過課設(shè)也學(xué)到了很多東西。</p><p>  關(guān)鍵詞 在線考試系統(tǒng),考生注冊,考生登錄,管理員注冊,管理員登錄</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p

14、>  第1章 系統(tǒng)總體介紹及組內(nèi)分工1</p><p>  1.1系統(tǒng)功能總框圖1</p><p>  1.2 組內(nèi)任務(wù)分工2</p><p>  第2章 系統(tǒng)需求分析3</p><p>  第3章 數(shù)據(jù)庫設(shè)計4</p><p>  3.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計4</p><p>

15、;  3.2 數(shù)據(jù)庫表的設(shè)計5</p><p>  3.2.1 實體數(shù)據(jù)庫表的設(shè)計5</p><p>  3.2.2 關(guān)系數(shù)據(jù)庫表的設(shè)計6</p><p>  第4章 系統(tǒng)實現(xiàn)7</p><p>  4.1 總體設(shè)計7</p><p>  4.2 詳細(xì)設(shè)計7</p><p>  4.

16、2.1 考生登陸功能設(shè)計7</p><p>  4.2.2 考生注冊功能設(shè)計7</p><p>  4.2.3 在線考試功能設(shè)計8</p><p>  4.2.4 成績查詢功能設(shè)計8</p><p>  4.2.5 管理員登錄功能設(shè)計8</p><p>  4.2.6 管理員注冊功能設(shè)計8</p>

17、;<p>  4.2.7 題庫管理功能設(shè)計8</p><p>  4.2.8 成績統(tǒng)計功能設(shè)計8</p><p>  4.3 編程實現(xiàn)8</p><p>  4.3.1學(xué)生登錄功能實現(xiàn)8</p><p>  4.3.2學(xué)生注冊功能實現(xiàn)11</p><p>  4.3.3在線考試功能實現(xiàn)14&l

18、t;/p><p>  4.3.4管理員登錄功能實現(xiàn)19</p><p>  4.3.5管理員注冊功能實現(xiàn)20</p><p>  4.3.6管理員添加試題功能實現(xiàn)22</p><p>  4.3.7成績的查詢與統(tǒng)計功能實現(xiàn)26</p><p><b>  結(jié) 論28</b></p>

19、;<p><b>  致 謝29</b></p><p><b>  參考文獻30</b></p><p>  第1章 系統(tǒng)總體介紹及組內(nèi)分工</p><p>  1.1系統(tǒng)功能總框圖</p><p>  在線考試系統(tǒng)面向?qū)W校和企業(yè),主要包括考試子系統(tǒng)和考試管理子系統(tǒng)??忌梢酝ㄟ^

20、考試子系統(tǒng)進行登錄、新考生注冊、在線考試及查詢成績等操作。系統(tǒng)管理員可以通過考試管理子系統(tǒng)進行題庫管理、考試評分及成績統(tǒng)計等操作。</p><p>  系統(tǒng)的總體結(jié)構(gòu)包括:在線考試子系統(tǒng)和考試管理子系統(tǒng),分別由四個主要模塊構(gòu)成。</p><p>  在線考試子系統(tǒng)的四個模塊如下:</p><p> ?、倏忌卿浵到y(tǒng):負(fù)責(zé)對考生登錄的信息進行驗證處理,輸入的信息驗證正

21、確后可以允許考生進入考場準(zhǔn)備參加考試。</p><p> ?、谛驴忌韵到y(tǒng):對新參加考試的考生進行信息注冊,并將考生信息記錄到數(shù)據(jù)庫。</p><p> ?、劭荚囅到y(tǒng):列出考生的待考項目列表,選擇某個項目后就可以參加該項目的考試了。</p><p> ?、艹煽儾樵兿到y(tǒng):登錄以后可以對已經(jīng)結(jié)束的考試進行成績查詢,并且可以查詢到標(biāo)準(zhǔn)答案及自己的答案。</p>

22、;<p>  考試管理子系統(tǒng)的四個模塊如下:</p><p> ?、俟芾韱T登錄系統(tǒng):負(fù)責(zé)對管理員登錄的信息進行驗證處理,輸入的信息驗證正確后可以進行管理員權(quán)限下的各種操作。</p><p> ?、诠芾韱T注冊系統(tǒng):新的管理員進行注冊,并將基本信息記錄到數(shù)據(jù)庫。</p><p> ?、垲}庫管理系統(tǒng):管理員可以進行試題的添加、刪除和修改等操作,題目的類型包括

23、單選題、多選題和判斷題。</p><p> ?、艹煽兘y(tǒng)計系統(tǒng):對各個科目參加考試的考生進行成績統(tǒng)計,方便考生查詢。</p><p>  系統(tǒng)功能總框圖如下:</p><p>  圖1.1 系統(tǒng)功能總框圖</p><p>  1.2 組內(nèi)任務(wù)分工</p><p>  本次WEB程序設(shè)計課程設(shè)計我們小組的任務(wù)分配情況如下表

24、1.1所示。</p><p>  表1.1 任務(wù)分配情況</p><p>  第2章 系統(tǒng)需求分析</p><p>  本系統(tǒng)是在線考試管理系統(tǒng),作為使用系統(tǒng)的實體包括參加考試的學(xué)生、負(fù)責(zé)管理考試成績的管理員以及需要完成的試卷。數(shù)據(jù)庫需求分析是數(shù)據(jù)庫設(shè)計幾個階段中最基礎(chǔ),也是最重要的一個階段,一旦需求完成的不理想,直接影響后續(xù)工作的順利進行,最壞的情況是還要進行反工

25、設(shè)計。</p><p>  學(xué)生在參加考試前要通過學(xué)號和密碼登錄考試系統(tǒng),若數(shù)據(jù)庫中不存在自己的學(xué)號還要先注冊考號,才能參加考試。因此本系統(tǒng)要有考生登錄功能、考生注冊功能以及在線考試功能。與此同時同學(xué)還可以查詢自己的成績,故還需要有一個成績查詢功能。能夠進入本系統(tǒng)的另一個重要的實體是管理員,若數(shù)據(jù)庫中不存在登錄者的信息,管理員還要進行信息注冊,故本系統(tǒng)還要有管理員登錄功能和管理員注冊功能。管理員的職責(zé)是對試卷進行

26、出題操作、學(xué)生成績的統(tǒng)計,故本系統(tǒng)還要完成的功能是題庫管理和成績統(tǒng)計。</p><p>  綜上所述,本系統(tǒng)要完成的功能如下:</p><p><b>  考生登錄功能</b></p><p><b>  考生注冊功能</b></p><p><b>  在線考試功能</b>&

27、lt;/p><p><b>  成績查詢功能</b></p><p><b>  管理員登錄功能</b></p><p><b>  管理員注冊功能</b></p><p><b>  題庫管理功能</b></p><p><b&

28、gt;  成績統(tǒng)計功能</b></p><p><b>  第3章 數(shù)據(jù)庫設(shè)計</b></p><p>  數(shù)據(jù)庫設(shè)計是軟件開發(fā)中必不可少的一個部分,隨著信息時代的到來和網(wǎng)絡(luò)發(fā)展的不斷進步,大量數(shù)據(jù)的使用成為必然趨勢,軟件開發(fā)對于數(shù)據(jù)庫功能的要求也越來越高。本系統(tǒng)是在線考試管理系統(tǒng),其中需要用到數(shù)據(jù)庫方面的知識,在進行數(shù)據(jù)庫設(shè)計中,需要進行數(shù)據(jù)庫需求分析、

29、概要設(shè)計、詳細(xì)設(shè)計三個階段。</p><p>  3.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p>  作為一個在線考試管理系統(tǒng),本系統(tǒng)應(yīng)用到的實體包括參加考試的學(xué)生、負(fù)責(zé)管理考試成績的管理員以及需要完成的試卷。</p><p>  作為學(xué)生實體,其功能是登錄系統(tǒng)并參加在線考試,其包括的屬性為學(xué)號、姓名和登錄密碼,其中學(xué)號作為主鍵;管理員要對學(xué)生成績和試卷進行管理,也要登

30、錄系統(tǒng),故其屬性應(yīng)包含賬號和密碼,其中賬號作為主鍵;本系統(tǒng)的另一個重要的實體是試卷,其主要屬性應(yīng)當(dāng)包含試卷編號、題目、答案和科目,其中試卷編號作為主鍵。</p><p>  學(xué)生與試卷之間是參加考試的關(guān)系,且對應(yīng)關(guān)系為多對多關(guān)系(m對n),管理員與學(xué)生是管理關(guān)系,對應(yīng)關(guān)系也是多對多,因為管理員可以由多個人。管理員與試卷是出題關(guān)系,對應(yīng)關(guān)系也是多對多。</p><p>  綜上所述,本系統(tǒng)在

31、概念結(jié)構(gòu)設(shè)計階段設(shè)計出的E-R圖如圖3.1所示。</p><p>  圖3.1 系統(tǒng)E-R圖</p><p>  3.2 數(shù)據(jù)庫表的設(shè)計</p><p>  3.2.1 實體數(shù)據(jù)庫表的設(shè)計</p><p>  正如前面的需求分析中已經(jīng)介紹過的,在線考試系統(tǒng)涉及到了三個主要的目標(biāo)實體:學(xué)生、管理員和試卷。因此在數(shù)據(jù)庫表的設(shè)計中,至少用到了三個主

32、要實體的基本信息表:學(xué)生信息表、管理員信息表和試卷信息表。其中學(xué)生和管理員的基本信息表如表3.1和3.2所示。</p><p>  表3.1 學(xué)生基本信息表</p><p>  表3.2 管理員基本信息表</p><p>  對于另一個實體試卷而言,又分成了三個試卷信息表:是非題試卷表、單項選擇題試卷表以及多項選擇題試卷表,分別如表3.3-3.5所示。</p&

33、gt;<p>  表3.3 多選題信息表</p><p>  表3.4 是非題信息表</p><p>  表3.5 單選題信息表</p><p>  3.2.2 關(guān)系數(shù)據(jù)庫表的設(shè)計</p><p>  除了實體的基本信息表之外,還應(yīng)該有一個關(guān)系表,用于連接兩個表的關(guān)系,本系統(tǒng)中使用的關(guān)系表為成績統(tǒng)計表(grade)。成績統(tǒng)計表用

34、于顯示參加考試的學(xué)生各科目成績,其屬性包含學(xué)號、科目和成績,并且用學(xué)號和科目聯(lián)合作為主鍵,如表3.6所示。</p><p>  表3.6 學(xué)生基本信息表</p><p><b>  第4章 系統(tǒng)實現(xiàn)</b></p><p><b>  4.1 總體設(shè)計</b></p><p>  在線考試系統(tǒng)是一個

35、能夠同時實現(xiàn)學(xué)生在線考試、管理員錄入試題以及成績管理功能的綜合系統(tǒng),本系統(tǒng)的主界面如圖4.1所示,在本系統(tǒng)的主界面左側(cè)羅列了本系統(tǒng)的功能選項按鈕,分別對應(yīng)本系統(tǒng)的各個功能。</p><p>  圖4.1 系統(tǒng)主界面</p><p><b>  4.2 詳細(xì)設(shè)計</b></p><p>  4.2.1 考生登陸功能設(shè)計</p>&l

36、t;p>  負(fù)責(zé)對考生登錄的信息進行驗證處理,輸入的信息驗證正確后可以允許考生進入考場準(zhǔn)備參加考試。如果登錄信息沒有填寫完整或者出現(xiàn)密碼錯誤,則系統(tǒng)提示出現(xiàn)錯誤,需重新填寫。</p><p>  4.2.2 考生注冊功能設(shè)計</p><p>  對新參加考試的考生進行信息注冊,需要填入賬號和密碼,點擊提交信息按鈕完成信息錄入并將考生信息記錄到數(shù)據(jù)庫保存,考生信息存儲在student表

37、中。</p><p>  4.2.3 在線考試功能設(shè)計</p><p>  考生登錄后,系統(tǒng)將列出考生的待考項目列表,考生選擇某個項目后就可以參加該項目的考試了,考試題目是隨機選取的。</p><p>  4.2.4 成績查詢功能設(shè)計</p><p>  登錄以后可以對已經(jīng)結(jié)束的考試進行成績查詢,并且可以查詢到標(biāo)準(zhǔn)答案及自己的答案,幫助考生學(xué)

38、習(xí)和進步。</p><p>  4.2.5 管理員登錄功能設(shè)計</p><p>  負(fù)責(zé)對管理員登錄的信息進行驗證處理,輸入的信息驗證正確后可以進行管理員權(quán)限下的各種操作,若輸入錯誤則會做出相應(yīng)的提示。</p><p>  4.2.6 管理員注冊功能設(shè)計</p><p>  新的管理員進行注冊,需要填寫賬號和密碼,完成信息填寫后點擊提交按鈕,

39、則將基本信息記錄到數(shù)據(jù)庫,用于下次登錄時進行信息核對,管理員信息存儲在admin表中。</p><p>  4.2.7 題庫管理功能設(shè)計</p><p>  只有管理員可以進行試題的添加、刪除和修改等操作。試題是考試的基礎(chǔ),因此確??碱}的正確添加、刪除和修改是至關(guān)重要的。題目的類型包括單選題、多選題和判斷題,分別保存在test2表、test3表、test1表中。</p>&l

40、t;p>  4.2.8 成績統(tǒng)計功能設(shè)計</p><p>  對各個科目參加考試的考生進行成績統(tǒng)計并顯示出來,方便考生查詢。</p><p><b>  4.3 編程實現(xiàn) </b></p><p>  4.3.1學(xué)生登錄功能實現(xiàn)</p><p>  在主界面上單擊“學(xué)生登錄”,即可進入如圖4.2所示的登錄界面ent

41、er.jsp,并在對應(yīng)點輸入框中輸入考號和密碼并點擊“進入考場”即完成了學(xué)生登錄功能。</p><p>  圖4.2 學(xué)生登錄界面enter.jsp</p><p>  若信息填寫不完全或輸入的考號或密碼有誤,再點擊“進入考場”后,會在頁面上給出錯誤提示信息。學(xué)生登錄界面enter.jsp具體代碼如下:</p><p>  <%@page contentTyp

42、e = "text/html;charset=GB2312" import = "java.sql.*"%></p><p>  <center><h3>歡迎進入在線考試系統(tǒng)</h3><hr></p><p>  <form action="check.jsp" meth

43、od="post"></p><p>  考號<input type="text" size="18" name="number"><br><br> </p><p>  密碼<input type="password" size="

44、18" name="password"><br><br></p><p>  <input type="reset" value="清空信息" ></p><p>  <input name="submit" type="submit"

45、; value="進入考場"></p><p><b>  </form> </b></p><p>  <a href="zhuce.jsp">注冊考試信息</a></p><p>  <a href="welcome.jsp">

46、返回首頁</a><br><br></p><p><b>  <%</b></p><p>  String error=request.getParameter("errortype");</p><p>  if(error!=null)</p><p>

47、<b>  {</b></p><p>  int errortype;</p><p>  errortype = Integer.parseInt(error);</p><p>  switch(errortype) { //依錯誤類型顯示信息</p><p><b>

48、  case 1: </b></p><p>  out.println("請輸入考號!!");break;</p><p><b>  case 2: </b></p><p>  out.println("請輸入密碼!!");break;</p><p><b

49、>  case 3:</b></p><p>  out.println("考號錯誤!!");break;</p><p><b>  case 4: </b></p><p>  out.println("密碼錯誤!!");break;</p><p><

50、b>  case 5: </b></p><p>  out.println("你已經(jīng)考過了!!");break;</p><p><b>  default:</b></p><p><b>  }</b></p><p><b>  }</b

51、></p><p><b>  %> </b></p><p><b>  </center></b></p><p>  頁面上的form表單內(nèi)容提交到的頁面是check.jsp,該頁面是通過數(shù)據(jù)庫連接確定提交的登錄信息是否正確,并進行相應(yīng)處理,其代碼如下:</p><p>

52、;  <%@page contentType = "text/html;charset=GB2312" import = "java.sql.*"%></p><p><b>  <%</b></p><p>  String number = request.getParameter("number

53、");</p><p>  String password = request.getParameter("password");</p><p>  int errortype=0; //聲明錯誤代碼變量</p><p>  if(number.equals(""))

54、 //未輸入學(xué)號</p><p><b>  {</b></p><p>  errortype=1;</p><p>  response.sendRedirect("enter.jsp?errortype="+errortype);</p><p><b>  } </b>

55、</p><p>  else if(password.equals("")) //未輸入密碼</p><p><b>  {</b></p><p>  errortype=2;</p><p>  response.sendRedirect("enter.jsp?errortype=

56、"+errortype);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDrive

57、r");</p><p>  Connection con = DriverManager.getConnection("jdbc:odbc:test");</p><p>  Statement smt = con.createStatement();</p><p>  String sql="select * from

58、 student where 學(xué)號='"+number+"'";</p><p>  ResultSet rs = smt.executeQuery(sql);</p><p>  if(!rs.next()) //學(xué)號錯誤</p><p><b>  

59、{</b></p><p>  errortype=3;</p><p>  response.sendRedirect("enter.jsp?errortype="+errortype);</p><p><b>  }</b></p><p>  else if(!rs.getStri

60、ng(3).equals(password)) //密碼錯誤</p><p><b>  {</b></p><p>  errortype=4;</p><p>  response.sendRedirect("enter.jsp?errortype="+errortype);</p><p>&

61、lt;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  String name=rs.getString(1);</p><p>  sql="select * from grade where

62、學(xué)號='"+number+"'";</p><p>  rs= smt.executeQuery(sql);</p><p>  session.putValue("number",number);</p><p>  response.sendRedirect("kemu.jsp"

63、;); //進入考場</p><p><b>  }</b></p><p>  con.close();</p><p><b>  }</b></p><p><b>  %></b></p><p>  若數(shù)據(jù)庫中不存在學(xué)生的

64、信息,即無法完成登錄,此時可以單擊“注冊考試信息”來完成考生的注冊操作,若注冊成功也可以直接進行在線考試。</p><p>  4.3.2學(xué)生注冊功能實現(xiàn)</p><p>  作為一個在線考試系統(tǒng),學(xué)生是一個重要的實體,在進行考試之前要登錄考試系統(tǒng),若數(shù)據(jù)庫中不存在學(xué)生的注冊信息,學(xué)生無法參加考試,只能先注冊個人信息,因此一個學(xué)生注冊功能必不可少。在學(xué)生登錄頁面上單擊“注冊考試信息”后,就

65、進入了如圖4.3所示的學(xué)生注冊界面(zhuce.jsp)了。</p><p>  圖4.3 學(xué)生注冊界面</p><p>  在注冊界面上的輸入框中輸入注冊信息(姓名、學(xué)號、密碼)后,單擊“提交信息”按鈕,即可將信息提交至數(shù)據(jù)庫中,可以在登錄頁面上通過輸入學(xué)號和密碼進入系統(tǒng)。若輸入的學(xué)號與數(shù)據(jù)庫中已存在的學(xué)號重復(fù),會在頁面中提示“學(xué)號已存在”,任何一個輸入框未填寫都會有相應(yīng)的提示。學(xué)生注冊

66、頁面zhuce.jsp的代碼如下:</p><p>  <%@page contentType = "text/html;charset=GBK" import = "java.sql.*"%></p><p>  <center><h3>這里是考試系統(tǒng)注冊頁面 </h3></center>

67、<hr></p><p>  <center><form action="tijiao.jsp" method="post"></p><p>  姓名:<input type="text" size="18" name="name" />&l

68、t;br /><br /></p><p>  學(xué)號:<input type="text" size="18" name="number" /><br /><br /></p><p>  密碼:<input type="password" size=

69、"18" name="password" /><br /><br /></p><p>  <input type="reset" value="清空信息" > </p><p>  <input name="submit" type=&q

70、uot;submit" value="提交信息"> </p><p><b>  </form></b></p><p><b>  <%</b></p><p>  String error=request.getParameter("errortype&q

71、uot;);</p><p>  if(error!=null)</p><p><b>  {</b></p><p>  int errortype;</p><p>  errortype = Integer.parseInt(error);</p><p>  switch(errorty

72、pe) //依錯誤類型顯示信息</p><p><b>  {</b></p><p><b>  case 1: </b></p><p>  out.println("請輸入考號!!");break;</p><p><b>  

73、case 2: </b></p><p>  out.println("請輸入密碼!!");break;</p><p><b>  case 3: </b></p><p>  out.println("請輸入姓名!!");break;</p><p><b&g

74、t;  case 4: </b></p><p>  out.println("學(xué)號已存在!!");break;</p><p><b>  default:</b></p><p><b>  }</b></p><p><b>  }</b>

75、</p><p><b>  %> </b></p><p><b>  </center></b></p><p>  在填寫完注冊信息后,系統(tǒng)會將提交信息交友tijiao.jsp頁面進行處理。,若提交結(jié)果符合要求(學(xué)號不能重復(fù)),則系統(tǒng)會將提交信息插入到后臺數(shù)據(jù)庫中,即注冊成功。若不符合要求,tiji

76、ao.jsp頁面會返回錯誤信息,顯示在zhuce.jsp頁面上,讓用戶重新輸入注冊信息。tijiao.jsp頁面的代碼如下:</p><p>  <%@page contentType = "text/html;charset=GB2312" import = "java.sql.*"%></p><p><b>  <%

77、</b></p><p>  request.setCharacterEncoding("GBK");</p><p>  String name=request.getParameter("name");</p><p>  String number = request.getParameter("n

78、umber");</p><p>  String password = request.getParameter("password");</p><p>  int errortype=0; </p><p>  if(name.equals(""))</p><p>

79、<b>  {</b></p><p>  errortype=3;</p><p>  response.sendRedirect("zhuce.jsp?errortype="+errortype);</p><p><b>  }</b></p><p>  else if(

80、number.equals("")) </p><p><b>  {</b></p><p>  errortype=1;</p><p>  response.sendRedirect("zhuce.jsp?errortype="+errortype);</p>&

81、lt;p><b>  } </b></p><p>  else if(password.equals("")) </p><p><b>  {</b></p><p>  errortype=2;</p><p>  response.sendRedirect(&qu

82、ot;zhuce.jsp?errortype="+errortype);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  int flag=0;</p&g

83、t;<p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  Connection con = DriverManager.getConnection("jdbc:odbc:test");</p><p>  Statement smt = con.createSta

84、tement();</p><p>  String sql="select * from student";</p><p>  ResultSet rs = smt.executeQuery(sql);</p><p>  while(rs.next()) //學(xué)號錯誤</p&g

85、t;<p><b>  {</b></p><p>  if(rs.getString(2).equals(number)) </p><p><b>  {</b></p><p>  errortype=4;</p><p>  response.sendRedir

86、ect("zhuce.jsp?errortype="+errortype);</p><p><b>  flag=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  

87、}</b></p><p>  if(flag==0)//若不存在學(xué)生信息</p><p><b>  { </b></p><p>  sql="insert into student values ('"+name+"','"+number+"

88、9;,'"+ password+"')";</p><p>  int rs1 = smt.executeUpdate(sql);</p><p>  if(rs1==1) </p><p><b>  {</b></p>&l

89、t;p>  session.putValue("number",number);</p><p>  response.sendRedirect("kemu.jsp");</p><p><b>  } </b></p><p><b>  }</b></p&

90、gt;<p>  con.close();</p><p><b>  }</b></p><p><b>  %></b></p><p>  則會直接跳轉(zhuǎn)至科目選擇頁面(kemu.jsp),在下拉列表框中選好科目后就可以參加考試了。</p><p>  4.3.3在線考試功能

91、實現(xiàn)</p><p>  考生登錄成功后,考試系統(tǒng)將列出考生的待考項目列表,考生在下拉菜單中選擇某個科目后就可以參加該項目的考試了,考試題目是隨機選取的。選擇考試科目頁面kemu.jsp如圖4.4所示。</p><p>  圖4.4 選擇考試科目</p><p>  選擇考試科目頁面kemu.jsp的程序代碼如下:</p><p>  <

92、;%@page contentType = "text/html;charset=GBK" import = "java.sql.*"%></p><p>  <title>科目選擇</title></p><p>  <center><h3>選擇你參加考試的科目</h3></p

93、><p>  <form name="myform" action="kumuyanzheng.jsp" method=post></p><p>  <select name="subject"></p><p><b>  <%</b></p>

94、<p>  int len=0;</p><p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  Connection con = DriverManager.getConnection("jdbc:odbc:test");</p><p> 

95、 Statement smt = con.createStatement();</p><p>  String sql="select distinct 科目 from test2";</p><p>  ResultSet rs = smt.executeQuery(sql); </p><p>  while(rs.next()) <

96、;/p><p>  errortype=1;</p><p>  response.sendRedirect("kemu.jsp?errortype="+errortype);</p><p><b>  }</b></p><p><b>  else{ </b></p>

97、;<p>  session.putValue("kemu",result); response.sendRedirect("exam.jsp");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }

98、</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  sql="insert into grade values ('"+number+"',0,'"+result+"

99、9;)";</p><p>  int aa= smt.executeUpdate(sql);</p><p><b>  if(aa==1)</b></p><p><b>  {</b></p><p>  session.putValue("kemu",resul

100、t);</p><p>  response.sendRedirect("exam.jsp");</p><p><b>  }</b></p><p><b>  }</b></p><p>  con.close();</p><p><b>

101、;  %></b></p><p>  kumuyanzheng.jsp文件的作用是查看該考生是否已參加過本門課程的考試,并且已通過了考試,若是的話就返回提示信息,告知已參加完考試,建議參加其他課程的考試。若未參加鍋蓋門課程考試,則跳轉(zhuǎn)至考試頁面exam.jsp,開始考試??荚図撁鎒xam.jsp如圖4.5所示。</p><p>  圖4.5 考試頁面exma.jsp&l

102、t;/p><p>  考試頁面exam.jsp的代碼如下:</p><p>  <%@page contentType = "text/html;charset=GBK" import = "java.sql.*"%></p><p>  <%@page import= "java.util.*&quo

103、t;%></p><p>  作答者:<%=session.getValue("number")%><hr></p><p>  <form action="grades.jsp" action="post"></p><p><b>  <%<

104、;/b></p><p>  request.setCharacterEncoding("GBK");</p><p>  String kemu=(String)session.getValue("kemu");</p><p>  out.print("<h3><center>你參加

105、的是"+kemu+"考試</center></h3>");</p><p>  Random r = new Random();</p><p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  Connect

106、ion con = DriverManager.getConnection("jdbc:odbc:test");</p><p>  Statement smt = con.createStatement();</p><p>  ResultSet rs;</p><p>  String sql,quse1="a",qu

107、se2="b",quse3="c";</p><p>  int i=1,ri,re,j=0,k=0; //題號</p><p>  int []xuanze=new int[6]; //試卷的題目編號</p><p>  int []prob=new int[100];

108、 //總的題目編號數(shù)組</p><p>  int []flag=new int[6]; //標(biāo)記的數(shù)組</p><p><b>  //取出是非題</b></p><p>  for(i=1;i<100;i++) prob[i]=0;</p><p>  for

109、(i=1;i<=5;i++) xuanze[i]=0;</p><p>  for(i=1;i<=5;i++) flag[i]=0;</p><p>  sql="select * from test1 where 科目='"+kemu+"'"; </p><p>  rs =sm

110、t.executeQuery(sql);</p><p>  while(rs.next())</p><p><b>  {</b></p><p>  prob[++j]=Integer.parseInt(rs.getString(1));</p><p><b>  } </b><

111、/p><p><b>  i=1;</b></p><p>  while(true)</p><p><b>  { </b></p><p><b>  ri=0;</b></p><p>  re=Math.abs(r.nextInt()%j)+1;&

112、lt;/p><p>  for(k=1;k<=5;k++) {if(flag[k]==re) ri++;}</p><p>  If(ri==0){flag[i]=re;i++;}</p><p>  if(i==6)break;</p><p>  out.println("<h3>二、單選題(每題6分)</

113、h3>"); </p><p>  for(i=1;i<=5;i++)//顯示單選題</p><p><b>  {</b></p><p>  sql="select * from test2 where 編號='"+xuanze[i]+"'";

114、 rs = smt.executeQuery(sql);</p><p>  while(rs.next()) </p><p><b>  {</b></p><p>  out.println(i+". "+rs.getStrin

115、g(2));</p><p>  out.println("<br>");</p><p>  out.println("<input type='radio' name='b"+i+"' value='1'>(1)"+ rs.getString (3)+ &

116、quot;<br>");</p><p>  out.println("<input type='radio' name='b"+i+"' value='2'>(2)"+ rs.getString(4)+"<br>");</p><p>

117、  out.println("<input type='radio' name='b"+i+"' value='3'>(3)"+ rs.getString(5) +"<br>");</p><p>  out.println("<input type='rad

118、io' name='b"+i+"' value='4'>(4)"+ rs.getString(6) +"<br>"+"<br>");</p><p><b>  }</b></p><p><b>  }</b&g

119、t;</p><p>  //下面省略取出多選題和閑事多選題的代碼</p><p><b>  //……</b></p><p>  con.close();</p><p><b>  %></b></p><p>  <hr><input type

120、="submit" value="交卷"><br><br></form> </p><p>  考生答完試題后點擊頁面最下方的交卷按鈕即可提交,提交完成后便可看到自己的考試成績顯示頁面grades.jsp,如圖4.6所示。</p><p>  圖4.6 成績顯示頁面grades.jsp</p>

121、<p>  成績顯示頁面grades.jsp代碼如下:</p><p>  <title>顯示成績</title></p><p>  <%@page contentType = "text/html;charset=GB2312" import = "java.sql.*"%></p>

122、<p>  <%@page import="java.lang.*"%></p><p><b>  <%</b></p><p>  request.setCharacterEncoding("GBK");</p><p>  String number=(String)se

123、ssion.getValue("number");</p><p>  String quse1=(String)session.getValue("quse1");</p><p>  String quse2=(String)session.getValue("quse2");</p><p>  St

124、ring quse3=(String)session.getValue("quse3");</p><p>  String km=(String)session.getValue("kemu");</p><p>  out.print("以下是"+number+"的作答成績與記錄<hr>");&

125、lt;/p><p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  Connection con = DriverManager.getConnection("jdbc:odbc:test");</p><p>  Statement smt = con.cr

126、eateStatement();</p><p>  String sql,sf="1";</p><p>  String answer,realans;</p><p>  String an1[] = new String[5]; //是非題正確答案的數(shù)組</p><p>  String an2[] = new

127、String[5]; //單選題正確答案的數(shù)組</p><p>  int grades=0;</p><p>  ResultSet rs;</p><p>  int []qe=new int[6];</p><p>  out.println("<h3>一、是非題答案(每題6分)</h3>"

128、);</p><p>  out.println("<table border='1'><tr><th bgcolor='pink'>題號</th>");</p><p>  for(i=1;i<=5;i++)</p><p>  out.println(&qu

129、ot;<th bgcolor='pink'>"+i+"</th>");</p><p>  out.println("</tr><tr><th bgcolor='pink'>正確答案</th>");</p><p>  for(i=0;i

130、<=4;i++)</p><p>  out.println("<td>"+an1[i]+"</td>");</p><p>  out.println("</tr><tr><th bgcolor='pink'>輸入答案</th>");&

131、lt;/p><p>  for(i=0;i<=4;i++)</p><p>  out.println("<td>"+ex1[i]+"</td>");</p><p>  out.println("</tr></table>");</p>&l

132、t;p>  out.println("<h3>二、單選題答案(每題6分)</h3>");</p><p>  out.println("<table border='1'><tr><th bgcolor='pink'>題號</th>");</p>&l

133、t;p>  for(i=1;i<=5;i++)</p><p>  for(i=0;i<=4;i++)</p><p>  out.println("<td>"+an2[i]+"</td>");</p><p>  out.println("</tr><tr

134、><th bgcolor='pink'>輸入答案</th>");</p><p>  for(i=0;i<=4;i++)</p><p>  out.println("<td>"+ex2[i]+"</td>");</p><p>  out.

135、println("</tr></table>");</p><p><b>  %></b></p><p>  <hr>總分:<%=grades%><br><br></p><p>  <a href="welcome.jsp&q

136、uot;>返回首頁</a><br></p><p>  4.3.4管理員登錄功能實現(xiàn)</p><p>  管理員也是本系統(tǒng)第一個重要的實體,主要負(fù)責(zé)學(xué)生考試信息的管理以及試卷題目的選擇操作。也要登錄在先考試系統(tǒng)。在主頁面welcome.jsp上點擊“管理員登錄”,即可進入到如圖4.7所示的管理員登錄界面(admindl.jsp)了。</p>&l

137、t;p>  在該頁面上的輸入框內(nèi)輸入管理員的賬號和密碼,并點擊“提交”按鈕,就完成了成了登錄操作。若還未申請到管理員的賬號,就可以點擊“注冊管理員身份”的超鏈接進行管理員賬號和密碼的注冊。若賬號和密碼的輸入框為空就點擊“提交”,則會在頁面下方提示將登錄信息填寫完整。若輸入的賬號或密碼在數(shù)據(jù)庫中找不到,則也會在頁面上出現(xiàn)賬號或密碼的錯誤提示信息。</p><p>  圖4.7 管理員登錄界面</p>

138、;<p>  若登錄成功,則頁面會跳轉(zhuǎn)到如圖4.所示的管理員功能選擇頁面,用戶只需要選擇不同的功能進行相應(yīng)的操作即可。</p><p>  圖4.8 管理員功能選擇界面</p><p>  管理員登錄功能的具體代碼實現(xiàn)如下:</p><p>  <%@page contentType = "text/html;charset=GBK&q

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論