版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- web程序設(shè)計課程設(shè)計--簡易論壇程序開發(fā)
- web程序設(shè)計課程設(shè)計報告
- jsp_web_程序設(shè)計課程設(shè)計
- web程序設(shè)計課程設(shè)計報告-選課系統(tǒng)的設(shè)計與實現(xiàn)
- c_程序設(shè)計課程設(shè)計-- 在線留言
- 《C語言程序設(shè)計》在線考試系統(tǒng)的設(shè)計與開發(fā).pdf
- 課程設(shè)計--unix程序設(shè)計課程設(shè)計
- web開發(fā)課程設(shè)計--基于jsp的在線購物系統(tǒng)
- 課程設(shè)計——飛機訂票系統(tǒng)程序設(shè)計
- mfc程序設(shè)計課程設(shè)計---考勤系統(tǒng)
- 課程設(shè)計報告--系統(tǒng)時間程序設(shè)計
- java程序設(shè)計與開發(fā)技術(shù)課程設(shè)計
- 程序設(shè)計課程設(shè)計報告
- 程序設(shè)計課程設(shè)計報告
- matlab程序設(shè)計 課程設(shè)計
- 程序設(shè)計課程設(shè)計--圖書管理系統(tǒng)
- 監(jiān)控系統(tǒng)程序設(shè)計技術(shù)課程設(shè)計
- 《web系統(tǒng)開發(fā)課程設(shè)計》
- 在線考試系統(tǒng)課程設(shè)計
- 在線考試系統(tǒng) 課程設(shè)計
評論
0/150
提交評論