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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課 程 設 計</b></p><p>  設計題目: WEB程序設計課程設計 </p><p>  -----在線考試系統的開發 </p><p>  系 別 信息工程系 班級 </p><p>  學生姓名

2、 </p><p>  學號 </p><p>  指導教師 職稱 </p><p>  起止日期:2011年8月29日起——至2011年9月2日止</p><p><b>  課程設計任務書</b></p><p>  課程設計

3、題目: WEB程序設計課程設計 </p><p>  -----在線考試系統的開發 </p><p>  系 別 信息工程系 班級 </p><p>  學生姓名 </p><p>  學號 </p>

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

5、 2011年 8月 29 日批準 </p><p>  設計的原始資料及依據</p><p>  查閱有關數據庫設計、JSP程序設計、面向對象程序設計等資料,進一步加深對課程內容的理解,利用程序設計的基本思想進行程序的開發,進一步掌握編程方法和技巧,提高學生用程序的思想來解決實際問題的能力。本課程設計主要涉及到需求分析、總體設計、詳細設計以及底層數據庫設計幾個主要環節。&l

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

7、、字數的要求</p><p>  (1)學生應撰寫的內容為:中文摘要和關鍵詞、目錄、正文、參考文獻等。課程設計說明書(論文)的結構及各部分內容要求參照《沈陽工程學院畢業設計(論文)撰寫規范》執行。應做到文理通順,內容正確完整,書寫工整,裝訂整齊。</p><p><b>  (2)裝訂格式:</b></p><p>  封面、任務書、成績評審意

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

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

10、設計教程.人民郵電出版社,2006</p><p> ?、汝愋駯|.JSP2.0應用教程.清華大學出版社,2006 </p><p> ?、蓪O鑫.Java Web開發詳解.電子工業出版社,2006</p><p><b>  摘 要</b></p><p>  隨著高等學校的快速發展,高校規模越來越大,電子技術的高速發

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

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

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

14、>  第1章 系統總體介紹及組內分工1</p><p>  1.1系統功能總框圖1</p><p>  1.2 組內任務分工2</p><p>  第2章 系統需求分析3</p><p>  第3章 數據庫設計4</p><p>  3.1 數據庫概念結構設計4</p><p>

15、;  3.2 數據庫表的設計5</p><p>  3.2.1 實體數據庫表的設計5</p><p>  3.2.2 關系數據庫表的設計6</p><p>  第4章 系統實現7</p><p>  4.1 總體設計7</p><p>  4.2 詳細設計7</p><p>  4.

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

17、;<p>  4.2.7 題庫管理功能設計8</p><p>  4.2.8 成績統計功能設計8</p><p>  4.3 編程實現8</p><p>  4.3.1學生登錄功能實現8</p><p>  4.3.2學生注冊功能實現11</p><p>  4.3.3在線考試功能實現14&l

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

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

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

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

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

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

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

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

26、出題操作、學生成績的統計,故本系統還要完成的功能是題庫管理和成績統計。</p><p>  綜上所述,本系統要完成的功能如下:</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;  成績統計功能</b></p><p><b>  第3章 數據庫設計</b></p><p>  數據庫設計是軟件開發中必不可少的一個部分,隨著信息時代的到來和網絡發展的不斷進步,大量數據的使用成為必然趨勢,軟件開發對于數據庫功能的要求也越來越高。本系統是在線考試管理系統,其中需要用到數據庫方面的知識,在進行數據庫設計中,需要進行數據庫需求分析、

29、概要設計、詳細設計三個階段。</p><p>  3.1 數據庫概念結構設計</p><p>  作為一個在線考試管理系統,本系統應用到的實體包括參加考試的學生、負責管理考試成績的管理員以及需要完成的試卷。</p><p>  作為學生實體,其功能是登錄系統并參加在線考試,其包括的屬性為學號、姓名和登錄密碼,其中學號作為主鍵;管理員要對學生成績和試卷進行管理,也要登

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

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

32、要實體的基本信息表:學生信息表、管理員信息表和試卷信息表。其中學生和管理員的基本信息表如表3.1和3.2所示。</p><p>  表3.1 學生基本信息表</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 關系數據庫表的設計</p><p>  除了實體的基本信息表之外,還應該有一個關系表,用于連接兩個表的關系,本系統中使用的關系表為成績統計表(grade)。成績統計表用

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

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

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

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

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

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

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

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

42、e = "text/html;charset=GB2312" import = "java.sql.*"%></p><p>  <center><h3>歡迎進入在線考試系統</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("你已經考過了??!");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表單內容提交到的頁面是check.jsp,該頁面是通過數據庫連接確定提交的登錄信息是否正確,并進行相應處理,其代碼如下:</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、 //未輸入學號</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 學號='"+number+"'";</p><p>  ResultSet rs = smt.executeQuery(sql);</p><p>  if(!rs.next()) //學號錯誤</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、學號='"+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>  若數據庫中不存在學生的

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

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

66、頁面zhuce.jsp的代碼如下:</p><p>  <%@page contentType = "text/html;charset=GBK" import = "java.sql.*"%></p><p>  <center><h3>這里是考試系統注冊頁面 </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>  學號:<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("學號已存在!!");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>  在填寫完注冊信息后,系統會將提交信息交友tijiao.jsp頁面進行處理。,若提交結果符合要求(學號不能重復),則系統會將提交信息插入到后臺數據庫中,即注冊成功。若不符合要求,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()) //學號錯誤</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)//若不存在學生信息</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>  則會直接跳轉至科目選擇頁面(kemu.jsp),在下拉列表框中選好科目后就可以參加考試了。</p><p>  4.3.3在線考試功能

91、實現</p><p>  考生登錄成功后,考試系統將列出考生的待考項目列表,考生在下拉菜單中選擇某個科目后就可以參加該項目的考試了,考試題目是隨機選取的。選擇考試科目頁面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文件的作用是查看該考生是否已參加過本門課程的考試,并且已通過了考試,若是的話就返回提示信息,告知已參加完考試,建議參加其他課程的考試。若未參加鍋蓋門課程考試,則跳轉至考試頁面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、 //總的題目編號數組</p><p>  int []flag=new int[6]; //標記的數組</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]; //是非題正確答案的數組</p><p>  String an2[] = new

127、String[5]; //單選題正確答案的數組</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管理員登錄功能實現</p><p>  管理員也是本系統第一個重要的實體,主要負責學生考試信息的管理以及試卷題目的選擇操作。也要登錄在先考試系統。在主頁面welcome.jsp上點擊“管理員登錄”,即可進入到如圖4.7所示的管理員登錄界面(admindl.jsp)了。</p>&l

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

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

溫馨提示

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

評論

0/150

提交評論