畢業(yè)設計---網(wǎng)絡在線考試系統(tǒng)設計_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學生畢業(yè)論文(設計)</p><p>  題目:網(wǎng)絡在線考試系統(tǒng)設計</p><p>  畢業(yè)論文(設計)開題報告表</p><p>  論文(設計)來源:導師課題、社會實踐、自選、其他</p><p>  論文(設計)類型:A—理論研究;B—應用研究;C—軟件設計等;</p><p> 論文(設

2、計)名稱網(wǎng)絡在線考試系統(tǒng)</p><p> 論文(設計)來源論文(設計)類型軟件設計導 師</p><p> 學 生 姓 名學  號20041713專 業(yè)計算機科學與技術</p><p> 文獻綜述(包括調研資料的準備和收集)現(xiàn)在網(wǎng)絡技術逐漸滲入社會生活各個層面,傳統(tǒng)的考試方式必將面臨著變革,而web網(wǎng)絡考試則是一個很重要的方向。基于Web技術的網(wǎng)絡考試系統(tǒng)可以借助

3、于遍布全球的因特網(wǎng)進行,因此考試既可以在本地進行,也可以在異地進行,大大拓展了考試的靈活性。試卷可以根據(jù)題庫中的內容即時生成,可避免考試前的壓題;而且可以采用大量標準化試題,從而使用計算機判卷,大大提高閱卷效率;還可以直接把成績送到數(shù)據(jù)庫中,進行統(tǒng)計、排序等操作。所以現(xiàn)在較好的考試方法為網(wǎng)絡考試,試題內容放在服務器上,考生通過姓名、準考證號碼和口令進行登錄,考試答案也存放在服務器中,這樣考試的公平性、答案的安全性可以得到有效的保證。利用

4、網(wǎng)絡和數(shù)據(jù)庫技術,結合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設的有利優(yōu)勢,應用Active Server Page技術,我開發(fā)了基于B/S模式多用戶在線考試系統(tǒng)這一程序。它運用方便、操作簡單,效率很高?,F(xiàn)階段雖然只實現(xiàn)了試卷的客觀題部分,但已具有用戶注冊、在線考試、在線評分、在線查詢、試題錄入、修改題庫、用戶管理、科目管理等重要功能,也就是說實現(xiàn)了真正的無紙化考試,滿足任何授權的考生</p><p> 選題意義(包括

5、選題的理論價值和實踐意義)現(xiàn)在學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出卷、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應現(xiàn)代考試的需要。隨著計算機應用的迅猛發(fā)展,網(wǎng)絡應用不斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應用正逐步深入

6、到千家萬戶。人們迫切要求利用這些技術來進行在線考試,以減輕教師的工作負擔及提高工作效率,與此同時也提高了考試的質量,從而使考試更趨于公證!客觀!更加激發(fā)學生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。為了適應新形勢的發(fā)展,目前,國內有很多公司團體研究開發(fā)了許多基于web的考試系統(tǒng)。在英國,已經(jīng)實現(xiàn)了英語資格考試的網(wǎng)上學習和水平認證全過程。在線考試是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上

7、的應用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試系統(tǒng)可以使用戶在網(wǎng)上學習過后</p><p> 研究方法(包括研究思路及技術路線)本系統(tǒng)在Windows平臺下,運用ASP技術和SQL Server數(shù)據(jù)庫技術開發(fā),分為前后臺,前臺給學生使用,后臺主要給老師用。前臺主要包括信息注冊、考生登陸、信息查詢及修改、在線考試、成績查詢。后臺主要是管理部分,包括管理員登陸、系統(tǒng)管理模塊、考生管理模

8、塊、題庫管理模塊、監(jiān)控中心模塊。系統(tǒng)管理模塊完成密碼更改、添加管理員、刪除管理員功能,考生管理模塊完成考生注冊、考生信息查詢功能,題庫管理模塊完成試題錄入、試題修改功能,監(jiān)控中心模塊完成考試控制功能。</p><p> 時間進度(任務完成的階段內容及時間安排)第一階段:收集整理相關資料,確定畢業(yè)設計題目,做好畢業(yè)設計開題準備及寫好開題報告。(2007年11月~2007年12月)第二階段:畢業(yè)設計總體設計和系統(tǒng)功能

9、詳細設計(2007年12月~2008年1月)第三階段:系統(tǒng)實現(xiàn)及調試運行。(2007年1月~2008年4月)第三階段:撰寫畢業(yè)設計論文初稿。(2008年4月)第四階段:畢業(yè)設計論文修改、定稿。(2008年5月)</p><p> 指導教師意見指導教師簽名: 日期:</p><p> 教研室意見教研室主任簽名: 日期:</p>

10、;<p> 院(系)意見院(系)領導簽名: 日期:院(系)蓋章</p><p><b>  目 錄</b></p><p>  原創(chuàng)性及知識產(chǎn)權聲明……………………………………………………………Ⅰ</p><p>  開題報告表…………………………………………………………………………Ⅱ</p>

11、<p>  中文摘要及關鍵詞…………………………………………………………………Ⅵ</p><p>  英文摘要及關鍵詞…………………………………………………………………Ⅶ</p><p>  一、ASP技術簡介………………………………………………………………… 1</p><p> ?。ㄒ唬〢SP文件………………………………………………………………1<

12、;/p><p> ?。ǘ〢SP的工作原理………………………………………………………1 </p><p> ?。ㄈ〢SP內建對象…………………………………………………………2</p><p> ?。ㄋ模〢SP外掛對象…………………………………………………………3</p><p>  (五)Web數(shù)據(jù)庫訪問……………………………………………………

13、…3</p><p>  二、系統(tǒng)分析和功能模塊設計……………………………………………………5</p><p>  三、數(shù)據(jù)庫設計……………………………………………………………………7</p><p>  四、界面設計與應用程序實現(xiàn)……………………………………………………9</p><p> ?。ㄒ唬┣芭_界面……………………………………………

14、…………………9</p><p> ?。ǘ┕芾斫缑妗?2</p><p>  (三)主要程序實現(xiàn)…………………………………………………………15</p><p>  五、系統(tǒng)測試………………………………………………………………………27</p><p>  六、軟件運行環(huán)境……………………………

15、……………………………………30</p><p>  七、小結……………………………………………………………………………31</p><p>  參考文獻……………………………………………………………………………32</p><p>  致謝…………………………………………………………………………………33</p><p><b>

16、  摘 要</b></p><p>  隨著計算機技術和網(wǎng)絡技術的迅猛發(fā)展,特別是基于Web的數(shù)據(jù)庫應用技術的逐漸完善和成熟,使得Web數(shù)據(jù)庫技術已成為一種主流的解決方案而應用于電子商務、遠程教育、網(wǎng)絡課堂等各個領域。在線考試系統(tǒng)是隨著網(wǎng)絡技術的飛速發(fā)展,應運而生的一種非常實用的系統(tǒng),現(xiàn)在很多國家的大學和社會其他部門都已開設了遠程教育、考試系統(tǒng)等等。</p><p>  本文在

17、分析網(wǎng)絡考試的發(fā)展及現(xiàn)有模式的基礎上,結合計算機網(wǎng)絡技術的發(fā)展和素質教育的要求,提出了計算機網(wǎng)絡自適應考試的模式,并在技術實現(xiàn)上進行了詳細的分析。本系統(tǒng)是在Windows XP下,以IIS4.1(Internet Information Server)網(wǎng)絡信息服務為應用服務器,選擇ASP、SQL Server 2000開發(fā)在線考試系統(tǒng),采用Web技術實現(xiàn),Web技術超越了傳統(tǒng)的“客戶機/服務器”的兩層結構,采用的是三層體系(B/S)結構

18、:用戶端/服務器端/數(shù)據(jù)庫,因此Web結構有著更好的安全性,在用戶機上不需要安裝任何應用程序。本系統(tǒng)實現(xiàn)在線注冊、隨機生成試卷、在線管理試卷、在線評分等功能,同時該系統(tǒng)避免了傳統(tǒng)在線考試效率低,可維護性不高的缺點。</p><p>  關鍵詞:ASP SQL Server 2000 B/S結構 Web技術</p><p><b>  Abstract</b></

19、p><p>  With computer technology and the rapid development of Internet technology, especially Web-based database application technology gradually improve and mature, and making Web database technology has becom

20、e a mainstream solution and applied to e-commerce, distance education, classroom, and other network field. Online examination system, with the rapid development of network technology, born a very practical system, many c

21、ountries, universities and other sectors of society have created a long-distan</p><p>  Based on the analysis of network test and the development of the existing model on the basis of the development of comp

22、uter network technology and the requirements of quality education, I advance a computer network adaptive test mode, and the technical realization of a detailed analysis. The system is Windows XP, to IIS4.1 (Internet Info

23、rmation Server) network information services for the application server, select ASP, SQL Server 2000, the development of online exam system using Web technology,</p><p>  Keywords:ASP SQL Server 2000 B/S St

24、ructure  Web Technology </p><p><b>  在線考試系統(tǒng)</b></p><p><b>  一、ASP技術簡介</b></p><p>  ASP(Active Server Pages,活動服務器頁面)是微軟公司于1996年11月推出的一種Web應用程序開發(fā)技術。它提供了一個在服務器執(zhí)

25、行腳本指令的環(huán)境,使用它可以創(chuàng)建動態(tài)Web頁面,或者生成功能強大的、交互的Web應用程序。它的源代碼均在服務器端運行,運行的結果以HTML代碼的形式輸出到客戶端。利用ASP不僅能夠產(chǎn)生動態(tài)的、交互的、高性能的Web應用程序,而且可以進行復雜的數(shù)據(jù)庫操作。ASP是目前開發(fā)動態(tài)網(wǎng)頁的一種常用技術,主要運行于Windows NT或Windows 2000 Server平臺,其Web服務器為IIS4.0/5.0。</p><

26、p><b> ?。ㄒ唬〢SP文件</b></p><p>  ASP文件是以.asp為擴展名的文本文件,該文件可以包含以下內容:</p><p>  純文本:文本時直接顯示給用戶的信息,主要在用戶瀏覽器中顯示這些 信息,是簡單的ASCII文本。</p><p>  HTML標記:HTML使用定界符小于號“<”和

27、“>”來區(qū)別于其他內容。</p><p>  ASP語句:ASP語句包括了Web服務器上運行ASP的一些指令,通過Web服務器上的動態(tài)庫asp.dll執(zhí)行各種ASP命令。每個ASP的語句都在“<%”和“%>”限定符號中。 </p><p>  腳本語言:ASP內嵌了VBScript腳本和JavaScript腳本。</p><p> ?。ǘ〢SP的

28、工作原理</p><p>  當瀏覽器向Web服務器請求調用ASP文件時,就啟動了ASP。瀏覽器將這個ASP的請求(HTML請求)發(fā)送到IIS,Web服務器接受這個請求并調入正確的ASP文件,Web服務器將這個文件發(fā)送到一個叫asp.dll的文件中。該文件負責獲得一個ASP文件并對該文件內所有服務器端的代碼進行解析,它會在該文件中查找所有的腳本代碼,將這些腳本代碼發(fā)送到合適的腳本引擎(即腳本解釋器),然后使用如V

29、BScript等腳本語言進行解釋。腳本代碼的運行結果重新結合該ASP文件中原有的其他文件如文本內容及HTML代碼,Web服務器將最終生成的頁面發(fā)送到客戶端的瀏覽器中進行顯示。如果沒有查找到任何腳本代碼,則會通知IIS直接將這些文件發(fā)送到客戶端。若腳本指令中含有訪問數(shù)據(jù)庫的請求,就通過ODBC與后臺數(shù)據(jù)庫相連,由數(shù)據(jù)庫訪問組件ADO執(zhí)行訪問數(shù)據(jù)庫操作,如下圖1-1所示。</p><p>  圖1-1 ASP工作原

30、理圖</p><p> ?。ㄈ〢SP內建對象</p><p>  在網(wǎng)絡程序的訪問過程中,瀏覽器的操作者需要與服務器之間交換各種數(shù)據(jù)。ASP通過其提供的一些內建對象,使用戶更容易收集通過瀏覽器請求發(fā)送的信息、響應瀏覽器以及存儲用戶信息。</p><p>  表1-1 ASP主要內置對象功能一覽表</p><p>  (四)ASP外掛對象&

31、lt;/p><p>  ASP在存取數(shù)據(jù)庫時,經(jīng)常結合使用ADO(ActiveX Data Object)技術,以實現(xiàn)存取數(shù)據(jù)庫的功能。這樣就允許在網(wǎng)頁上不但可以建立數(shù)據(jù)庫的網(wǎng)頁內容,還可以在網(wǎng)頁里執(zhí)行SQL操作,用戶可以在網(wǎng)頁上對數(shù)據(jù)庫進行查詢、刪除及新增等操作。ADO里的主要對象如下表。</p><p>  表1-2 ASP主要外掛對象功能一覽表</p><p>

32、 ?。ㄎ澹¦eb數(shù)據(jù)庫訪問技術</p><p>  隨著Internet技術的飛速發(fā)展,人們不再滿足只在Web瀏覽器上獲取靜態(tài)信息,于是基于Web方式的數(shù)據(jù)庫技術營運而生。ADO是微軟提供的一種面向對象的數(shù)據(jù)庫訪問技術。 ADO是ASP內置的重要組件,通常ADO可以使用不同的數(shù)據(jù)接口訪問數(shù)據(jù)庫。下圖是ASP通過ADO來訪問SQL SERVER 數(shù)據(jù)庫的具體流程:</p><p>  圖1-

33、2 ASP 訪問數(shù)據(jù)庫流程</p><p>  ADO把絕大部分的數(shù)據(jù)庫操作封裝在其內部的7個對象中,在ASP網(wǎng)頁中可以通過這些對象的調用來方便地完成相應的數(shù)據(jù)庫操作。(其具體對象見表1-2)。ADO還提供了4個數(shù)據(jù)集合:</p><p>  表1-3 ADO數(shù)據(jù)集合</p><p>  二、系統(tǒng)分析和功能模塊設計</p><p>  在

34、線考試系統(tǒng)采用網(wǎng)絡編程語言—ASP語言并結合功能強大的SQL Server 數(shù)據(jù)庫技術。系統(tǒng)采用B/S模式建立題庫,并設置隨機抽題和自動判分功能。其網(wǎng)絡應用原理如下圖:</p><p>  圖2-1在線考試系統(tǒng)網(wǎng)絡應用原理</p><p>  在線考試系統(tǒng)包括兩個功能模塊,前臺考試模塊和后臺管理模塊。其具體功能模塊如下圖:</p><p>  圖2-2在線考試系統(tǒng)功

35、能模塊劃分</p><p>  整個系統(tǒng)的邏輯結構設計如下圖: </p><p><b>  三、 數(shù)據(jù)庫設計</b></p><p>  根據(jù)系統(tǒng)功能設計的要求以及功能模塊的劃分,可以列出以下5個主要的數(shù)據(jù)表,以及表中的數(shù)據(jù)項和數(shù)據(jù)結構。</p><p>  管理員信息數(shù)據(jù)表(Admin)</p><

36、;p>  學生基本信息數(shù)據(jù)表(Student)</p><p>  試題表 (Test)</p><p>  成績表(Score)</p><p>  試題信息表(Testinfo)</p><p>  四、界面設計與應用程序實現(xiàn)</p><p>  在Test目錄下有一個文件夾images,它是用來存放程序中使

37、用到的圖片的,程序所有文件都放在test目錄下,下面用表格列舉一下主要的文件及功能。</p><p>  表4-1 在線考試系統(tǒng)主要文件的功能</p><p><b>  (一)前臺界面</b></p><p>  打開瀏覽器,在地址欄輸入http://localhost/mytest/default.asp,按回車后,就會看到如圖4-1所示

38、效果。</p><p>  圖4-1在線考試系統(tǒng)功首頁面</p><p>  如果你是新用戶,則先要注冊,單擊“注冊”按鈕,就會彈出如圖4-2所示的注冊頁面。</p><p><b>  圖4-2注冊頁面</b></p><p>  圖4-3注冊成功提示框</p><p>  假設我們注冊了一個學

39、生,姓名和密碼都為test 在注冊頁面中輸入,單擊注冊,會彈出注冊成功對話框,如圖4-3。這時你可以登錄考試系統(tǒng),在姓名和密碼文本框中輸入“test”,然后單擊登錄,進入了考生主頁面,如圖4-4所示。</p><p>  圖4-4 考生主頁面</p><p>  在這里,點擊“考生信息查詢及修改”進入考生信息查詢及修改,在這個頁面你可以查詢信息,修改信息。點擊“在線考試”進入在線考試界面,

40、如圖4-5到4-7所示,</p><p>  圖4-5 選擇科目頁面 </p><p><b>  圖4-6 考試頁面</b></p><p>  圖4-7考試結果頁面</p><p><b> ?。ǘ┕芾斫缑?lt;/b></p><p>  單擊界面中的“管理”按鈕,進入管理

41、員登錄頁面,在賬號和密碼中輸入admin后登錄進入后臺主頁面如圖所示。</p><p>  圖4-8 管理員登錄頁面</p><p><b>  圖4-9 管理頁面</b></p><p>  在后臺主頁面中尼可以選擇管理學生、管理考試科目,管理管理員、查看學生及成績和添加試題。</p><p>  圖4-10 管理學生

42、頁面</p><p>  圖4-11 管理管理員頁面</p><p>  圖4-12管理科目頁面</p><p>  圖4-13成績查看頁面</p><p>  圖4-14試題管理頁面</p><p><b> ?。ㄈ┲饕绦驅崿F(xiàn)</b></p><p>  1、數(shù)據(jù)庫連

43、接文件conn.asp</p><p><b>  <%</b></p><p>  dim conn </p><p>  dim connstr</p><p>  call conn_init()</p><p>  sub conn_init()</p><p

44、>  connstr="provider=SQLOLEDB.1;server=localhost; database=data;uid=sa;"</p><p>  set conn=server.createobject("ADODB.CONNECTION")</p><p>  if err.number<>0 then <

45、;/p><p><b>  err.clear</b></p><p>  set conn=nothing</p><p>  response.write "數(shù)據(jù)庫連接出錯!<a href=""javascript:history.back();"">返回</a>&quo

46、t;</p><p>  Response.End</p><p><b>  else</b></p><p>  conn.open connstr</p><p>  if err then </p><p><b>  err.clear</b></p>

47、<p>  set conn=nothing</p><p>  response.write"數(shù)據(jù)庫連接出錯!<a href=""javascript:history.back();"">返回</a>"</p><p>  Response.End </p><p>&

48、lt;b>  end if</b></p><p><b>  end if </b></p><p><b>  end sub</b></p><p>  sub dbclose()</p><p>  conn.close</p><p>  se

49、t conn=nothing</p><p><b>  end sub</b></p><p>  function chkStr(str)</p><p>  chkStr=replace(trim(str),"'","''")</p><p>  en

50、d function</p><p><b>  %></b></p><p>  2、考生登錄界面實現(xiàn)</p><p>  <!--#include file="conn.asp"--></p><p><b>  <%</b></p>&

51、lt;p>  if Request.ServerVariables("http_method")="POST" then '學生登錄的處理</p><p>  dim rs,sql</p><p>  set rs = server.createobject("adodb.recordset")</p>

52、<p>  sql="select* from student where stu_name='" & chkStr(Request("name")) & "'"</p><p>  rs.open sql,conn,1,1</p><p>  if err.number<>

53、;0 then </p><p>  response.write "數(shù)據(jù)庫操作失敗:<a href=""javascript:history.back();"">返回</a>"&err.description</p><p><b>  rs.close</b></p&

54、gt;<p>  call dbclose</p><p>  response.End()</p><p><b>  else</b></p><p>  if not rs.eof then</p><p>  if chkStr(Request("pwd"))=trim(rs(&

55、quot;stu_pass")) then</p><p>  session("studentname")=trim(rs("stu_name"))</p><p><b>  rs.close</b></p><p>  call dbclose</p><p>  

56、Response.Redirect "stumain.asp"</p><p><b>  end if</b></p><p><b>  end if</b></p><p>  session("studentname")=""</p><

57、;p>  response.write "<center>對不起,請輸入正確的用戶名和密碼。</center><a href=""javascript:history.back();"">返回</a>"</p><p><b>  rs.close</b></p>

58、<p>  call dbclose</p><p>  response.End()</p><p><b>  end if </b></p><p><b>  end if</b></p><p><b>  %></b></p><

59、p>  3、管理員登錄實現(xiàn) </p><p>  <% option explicit %></p><p>  <!--#include file="conn.asp"--></p><p><b>  <% </b></p><p>  if request(&

60、quot;m")="m" then '管理員登錄的處理</p><p>  session("name")=trim(request("name1"))</p><p>  session("password")=trim(request("password1"))&

61、lt;/p><p>  dim rs,sql</p><p>  set rs = server.createobject("adodb.recordset")</p><p>  sql="select * from admin where adminname='" & chkStr(request("

62、;name1")) & "'"</p><p>  rs.open sql,conn,1,1</p><p>  'response.write session("name")</p><p>  if err.number<>0 then </p><p>

63、;  response.write "數(shù)據(jù)庫操作失?。?quot;&err.description</p><p><b>  else</b></p><p>  if not rs.eof then</p><p>  if rs("adminpass")=chkStr(request("pa

64、ssword1")) then</p><p><b>  rs.close</b></p><p>  session("name")=trim(request("name1"))</p><p>  set rs=nothing</p><p>  call dbcl

65、ose()</p><p>  Response.Redirect "primarypage.asp"</p><p><b>  end if</b></p><p><b>  end if</b></p><p>  response.write "<fon

66、t class=text15>對不起,請輸入正確的管理員帳號和密碼。如果您不是管理員,請立即放棄!</font><br>"</p><p><b>  rs.close</b></p><p><b>  end if</b></p><p><b>  end if<

67、;/b></p><p><b>  %></b></p><p><b>  4、考試界面實現(xiàn)</b></p><p>  首先是一個包含文件,實現(xiàn)與數(shù)據(jù)庫的關聯(lián),下面是頁面跳轉函數(shù)</p><p>  <script language="JavaScript"

68、;></p><p>  function finishTest()</p><p><b>  {</b></p><p>  form1.action="result.asp";</p><p>  form1.method="post";</p><

69、p>  form1.submit();</p><p><b>  }</b></p><p><b>  </script></b></p><p>  對時間的處理是一個比較重要的技術,下面是本系統(tǒng)實現(xiàn)提示時間的動態(tài)顯示:</p><p>  <SCRIPT langua

70、ge=javascript></p><p><b>  <!--</b></p><p>  var testtime = <%=session("testtime")%>;</p><p>  var havetime = testtime*60; //考試時間長度:秒</p>&

71、lt;p>  var sec=0;</p><p>  var iTotal=0; //總共用時</p><p>  var bAlert=false;</p><p>  var min=0;</p><p>  var hou=0;flag=0;idt=window.setTimeout("update();&

72、quot;,1000);</p><p>  function update(){</p><p><b>  sec++;</b></p><p><b>  iTotal++;</b></p><p>  if(sec==60) {sec=0;min+=1;}</p><p

73、>  if(min==60) {min=0;hou+=1;}</p><p>  if(havetime<(iTotal+60)&&!bAlert)</p><p><b>  {</b></p><p>  alert("考試中心提醒你:考試還有1分鐘就要結束,請馬上檢查并提交你的答案!");

74、</p><p>  bAlert=true;</p><p><b>  }</b></p><p>  if(havetime<iTotal)</p><p><b>  {</b></p><p>  document.form1.Submit.disabled=

75、true;</p><p>  finishTest()</p><p><b>  }</b></p><p>  document.form1.left.value=hou+"時"+min+"分"+sec+"秒";idt=window.setTimeout("update

76、();",1000);</p><p><b>  }</b></p><p><b>  //--></b></p><p><b>  </SCRIPT></b></p><p><b>  隨機抽題實現(xiàn):</b></

77、p><p><b>  <%</b></p><p>  dim i,sql,rs,count,temp,strid1,strid2,strA,strB,strC,strD,strQuestion</p><p><b>  strid1=""</b></p><p><

78、b>  strid2=""</b></p><p><b>  randomize</b></p><p>  for i=1 to session("snumber")</p><p>  set rs=server.createobject("adodb.recordset

79、")</p><p>  sql="select * from test where subjectname='"&session("selectsubjectname") & "'and type='單選題' and haveselect=0 " '得到所有符合條件的試題</p&

80、gt;<p>  rs.open sql,conn,1,2</p><p>  if not rs.eof then</p><p>  count=rs.recordcount'當前所選試題還未被選擇的總數(shù)</p><p>  temp=fix(count*rnd(10))'從總數(shù)中隨機選題</p><p> 

81、 rs.move temp</p><p>  rs("haveselect")=1'已經(jīng)被選擇進行標注</p><p>  strA=trim(rs("A"))</p><p>  strB=trim(rs("B"))</p><p>  strC=trim(rs(&quo

82、t;C"))</p><p>  strD=trim(rs("D"))</p><p>  strQuestion=trim(rs("question"))</p><p>  strid1=strid1 & rs("ID") & ","</p>

83、<p><b>  rs.update</b></p><p><b>  end if </b></p><p><b>  %></b></p><p><b>  5、評分實現(xiàn)</b></p><p>  先提出交卷信息,與數(shù)據(jù)庫中的

84、答案進行比較,從而得出分數(shù)</p><p><b>  <%</b></p><p>  subjectname=session("selectsubjectname")</p><p>  studentname=session("studentname")</p><p>

85、;  singlenumber=session("snumber")</p><p>  singleper=session("singleper")</p><p>  multinumber=session("mnumber")</p><p>  multiper=session("mult

86、iper")</p><p>  endtime=now()</p><p><b>  score=0</b></p><p>  selectstr1=request("hidQuestID1")</p><p>  selectstr2=request("hidQuestID

87、2")</p><p>  len1=len(selectstr1)</p><p>  len2=len(selectstr2)</p><p>  str1=left(selectstr1,len1-1)</p><p>  str2=left(selectstr2,len2-1)</p><p>  d

88、im id1,id2</p><p>  id1=split(str1,",")</p><p>  id2=split(str2,",")</p><p>  for i=1 to snumber</p><p>  result=request("no"&id1(i-1)

89、)</p><p>  if not isempty(result) then</p><p>  sql="select * from test where id="& clng(id1(i-1))</p><p>  set rs=server.createobject("adodb.recordset")<

90、;/p><p>  rs.open sql,conn,3,2 </p><p>  if result=rs("answer") then</p><p>  score=score+cint(singleper)</p><p><b>  end if</b></p><p

91、><b>  rs.close</b></p><p>  set rs=nothing </p><p><b>  else</b></p><p><b>  end if</b></p><p><b>  next </b></p&g

92、t;<p>  for i=1 to mnumber</p><p>  result=replace(request("no"&id2(i-1))," ","")</p><p>  if not isempty(result) then</p><p>  sql="s

93、elect * from test where id="& clng(id2(i-1))</p><p>  set rs=server.createobject("adodb.recordset")</p><p>  rs.open sql,conn,3,2 </p><p>  if result=replace(

94、rs("answer")," ","") then</p><p>  score=score+cint(multiper)</p><p><b>  end if </b></p><p><b>  rs.close</b></p><

95、;p>  set rs=nothing </p><p><b>  else</b></p><p><b>  end if</b></p><p><b>  next </b></p><p>  sql="select * from score&quo

96、t;</p><p>  set rs=server.createobject("adodb.recordset")</p><p>  rs.open sql,conn,3,2</p><p><b>  rs.addnew</b></p><p>  rs("stu_name"

97、)=studentname</p><p>  rs("subjectname")=subjectname</p><p>  rs("endtime")=endtime</p><p>  rs("score")=score</p><p><b>  rs.update

98、</b></p><p><b>  rs.close</b></p><p>  set rs=nothing</p><p>  call dbclose()</p><p>  total=singlenumber*singleper+multinumber*multiper</p>&l

99、t;p>  response.write("<center>"&studentname&" 你好!你的考試成績?yōu)椋?quot;&score&"分,總分為"&total&"分</center>")</p><p><b>  %〉</b><

100、/p><p><b>  6、科目管理實現(xiàn) </b></p><p>  <%@ Language=VBScript %></p><p>  <% option explicit %></p><p>  <!--#include file="conn.asp"-->

101、</p><p><b>  <% </b></p><p>  if session("name")="" then</p><p>  %><script language="JavaScript"></p><p>  alert(

102、'對不起,你無權進入該頁!');</p><p>  location.href="login.asp";</p><p><b>  </script></b></p><p><b>  <%</b></p><p>  response.

103、End()</p><p><b>  end if</b></p><p>  dim isedit '是否在編輯狀態(tài)</p><p>  dim id,subjectname'定義變量,科目的id</p><p>  dim sql,rs,rsc</p><p>  isedi

104、t=false</p><p>  if request("action")="edit" then</p><p>  isedit=true</p><p><b>  end if</b></p><p>  if request("action")=&q

105、uot;modify" then '修改新科目</p><p>  if trim(request("subjectname"))="" or trim(request("testtime"))="" or trim(request("multinumber"))=""or

106、 trim(request("multiper"))=""or trim(request("singlenumber"))=""or trim(request("singleper"))=""or trim(request("trys"))=""then </p>

107、;<p>  response.write "錯誤!請正確填寫各項,且不能為空! <a href=mgsubject.asp>返回</a>"</p><p>  response.end</p><p><b>  end if</b></p><p>  sql="updat

108、e testinfo set subjectname='" &cstr(chkStr(request("subjectname")))&"',testtime='"&cstr(chkStr(request("testtime")))&"',snumber='"&cstr

109、(chkStr(request("singlenumber")))&"',singleper='"&cstr(chkStr(request("singleper")))&"',mnumber='"&cstr(chkStr(request("multinumber")))&am

110、p;"',multiper='"&cstr(chkStr(request("multiper")))&"',trys='"&cstr(chkStr(request("trys"))) &"'"</p><p>  conn.execute sq

111、l</p><p>  if err.number <> 0 then</p><p>  response.write "數(shù)據(jù)庫操作出錯:" + err.description</p><p><b>  else %></b></p><p>  <script langu

112、age=vbscript></p><p>  msgbox "操作成功!<%=trim(request("subjectname"))%>科目的信息已經(jīng)更新!"</p><p><b>  </script></b></p><p><b>  <%end

113、if</b></p><p><b>  end if</b></p><p>  if request("action")="add" then '添加科目</p><p>  if trim(request("subjectname"))=or trim(r

114、equest("testtime"))="" or trim(request("multinumber"))=""or trim(request("multiper"))=""or trim(request("singlenumber"))=""or trim(request(&

115、quot;singleper"))=""or trim(request("trys"))="" then</p><p>  response.write "錯誤!所有項均不能為空! <a href=# onclick='javascript:window.history.go(-1)'>返回</a&

116、gt;"</p><p>  response.end</p><p><b>  end if</b></p><p>  set rs=server.createobject("adodb.recordset") '檢查科目名是否重名</p><p>  rs.open &q

117、uot;select * from testinfo where subjectname='" & cstr(chkStr(request("subjectname"))) & "'",conn,1,1</p><p>  if err.number <> 0 then</p><p>  res

118、ponse.write "數(shù)據(jù)庫出錯"</p><p>  else if not rs.bof and not rs.eof then</p><p>  response.write "錯誤!該科目已經(jīng)存在! <a href=# onclick='javascript:window.history.go(-1)'>返回<

119、/a>"</p><p>  response.end</p><p><b>  end if</b></p><p><b>  end if</b></p><p><b>  rs.close</b></p><p>  set

120、rs=nothing</p><p>  sql="insert into testinfo(subjectname,testtime,snumber,singleper,mnumber,multiper,trys) values('" & cstr(chkStr(request("subjectname"))) & "','

121、;" & cstr(chkStr(request("testtime"))) & "','" & cstr(chkStr(request("singlenumber"))) & "','" & cstr(chkStr(request("singleper")

122、)) & "','" & cstr(chkStr(request("multinumber"))) & "','" & cstr(chkStr(request("multiper"))) & "','" & cstr(chkStr(reques

123、t("trys"))) & "')"</p><p>  conn.execute sql</p><p>  if err.number <> 0 then</p><p>  response.write "數(shù)據(jù)庫操作出錯:" + err.description</p&

124、gt;<p><b>  else %></b></p><p>  <script language=vbscript></p><p>  msgbox "操作成功!新科目<%=trim(request("subjectname"))%>的信息添加成功!"</p>&

125、lt;p><b>  </script></b></p><p><b>  <%end if</b></p><p><b>  end if</b></p><p>  if request("action")="del" then

126、 '刪除用戶</p><p>  sql="delete from testinfo where id=" &request("id")</p><p>  conn.execute sql</p><p>  if err.number <> 0 then</p><p>

127、;  response.write "數(shù)據(jù)庫操作錯誤:" + err.description</p><p><b>  err.clear</b></p><p><b>  else %></b></p><p>  <script language=vbscript></p

128、><p>  msgbox "操作成功!科目<%=trim(request("subjectname"))%>的信息已刪除!"</p><p><b>  </script></b></p><p><b>  <% end if</b></p>

129、<p><b>  end if</b></p><p><b>  %></b></p><p><b>  7、試題管理實現(xiàn)</b></p><p>  <%@ Language=VBScript %></p><p>  <% opt

130、ion explicit %></p><p>  <!--#include file="conn.asp"--></p><p><b>  <% </b></p><p>  if session("name")="" then</p><

131、;p>  %> <script language="JavaScript"></p><p>  alert('對不起,你無權進入該頁!');</p><p>  location.href="login.asp";</p><p><b>  </script>&

132、lt;/b></p><p>  <%response.End()</p><p><b>  end if</b></p><p>  dim isedit '是否在修改狀態(tài)</p><p>  dim color '表格顏色</p><p>  dim sql

133、,rs</p><p>  dim subjectname</p><p>  dim number '每頁顯示的文章數(shù)目</p><p>  dim curpage, i,page </p><p>  subjectname=trim(request("subjectname"))</p>&

134、lt;p><b>  color=1</b></p><p>  function invert(str) </p><p>  invert=replace(replace(replace(replace(str,"&lt;","<"),"&gt;",">&quo

135、t;),"<br>",chr(13)),"&nbsp;"," ")</p><p>  end function</p><p>  number=5 '顯示試題數(shù)默認值</p><p>  isedit=false</p><p>  if reque

136、st("action")="edit" then</p><p>  isedit=true</p><p><b>  end if</b></p><p>  if request("action")="del" then '刪除</p>

溫馨提示

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

評論

0/150

提交評論