網(wǎng)上考試系統(tǒng)設(shè)計(jì)

      前言:本站為你精心整理了網(wǎng)上考試系統(tǒng)設(shè)計(jì)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

      網(wǎng)上考試系統(tǒng)設(shè)計(jì)

      摘要給出了用ASP和SQL技術(shù)實(shí)現(xiàn)網(wǎng)上考試系統(tǒng)的一個(gè)實(shí)例。

      關(guān)鍵詞:ADOASPSQL

      0.引言

      隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,傳統(tǒng)的考試形式已日益顯示出其不足。本文用asp技術(shù)和sql結(jié)構(gòu)化查詢語(yǔ)言實(shí)現(xiàn)了網(wǎng)上的無(wú)紙化考試。

      1.設(shè)計(jì)

      系統(tǒng)基本原理是:用access建立一個(gè)數(shù)據(jù)庫(kù)文件,用來(lái)存儲(chǔ)試題及用戶的驗(yàn)證信息。當(dāng)用戶登陸時(shí),首先提示要輸入驗(yàn)證信息,當(dāng)輸入用戶信息后,通過(guò)sql語(yǔ)言查詢此用戶是否合法,如果不合法,則顯示提示信息。否則,進(jìn)入考試系統(tǒng),由服務(wù)器抽取試題并顯示到考生屏幕上。當(dāng)考生做完題并遞交后,由系統(tǒng)自動(dòng)評(píng)分并顯示成績(jī)。

      在本系統(tǒng)中,數(shù)據(jù)庫(kù)的建立是用ACCESS實(shí)現(xiàn)的。其中包括兩個(gè)表:user和test。

      User表存儲(chǔ)用戶信息,test表存儲(chǔ)考試內(nèi)容。

      user表結(jié)構(gòu)如下:

      字段名類型含義

      User文本存儲(chǔ)用戶名

      Passwd文本存儲(chǔ)密碼

      Score數(shù)字存儲(chǔ)成績(jī)

      Test表結(jié)構(gòu)如下:

      字段名類型含義

      Question文本存儲(chǔ)考試題目

      A文本存儲(chǔ)選項(xiàng)A的答案

      B文本存儲(chǔ)選項(xiàng)B的答案

      C文本存儲(chǔ)選項(xiàng)C的答案

      D文本存儲(chǔ)選項(xiàng)D的答案

      Answer文體存儲(chǔ)正確答案

      在提取用戶端信息以及反饋信息時(shí)用到了ASP的內(nèi)置對(duì)象。現(xiàn)說(shuō)明如下:

      Request對(duì)象

      可以使用Request對(duì)象訪問(wèn)任何用HTTP請(qǐng)求傳遞的信息,包括從HTML表格用POST方法或GET方法傳遞的參數(shù)、cookie和用戶認(rèn)證。本系統(tǒng)通過(guò)REQUEST獲取用戶輸入的用戶名和密碼。代碼為:

      REQUEST.FORM(“name”)和REQUEST.FORM(“passwd”)。

      Response對(duì)象

      可以使用Response對(duì)象控制發(fā)送給用戶的信息。包括直接發(fā)送信息給濟(jì)覽器、重定向?yàn)g覽器到另一個(gè)URL或設(shè)置Cookie的值。本系統(tǒng)通過(guò)RESPONSE將成績(jī)反饋給用戶。

      RESPONSE.WRITE“你的成績(jī)是”&score

      試題的讀取和成績(jī)的錄入是通過(guò)ADO來(lái)進(jìn)行的。ADO(ActiveXDataObject,ActiveX數(shù)據(jù)對(duì)象)是一個(gè)ASP內(nèi)置的ActiveX服務(wù)器組件(ActiveXServerComponet),用于數(shù)據(jù)庫(kù)訪問(wèn),對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、插入、更新、刪除等操作。對(duì)數(shù)據(jù)庫(kù)的查詢是用SQL的select命令,成績(jī)的錄入是用SQL的update命令。

      存取數(shù)據(jù)庫(kù)的具體步驟是:首先確定數(shù)據(jù)源,然后打開或連接數(shù)據(jù)庫(kù),,并執(zhí)行響應(yīng)的操作,執(zhí)行完畢關(guān)閉數(shù)據(jù)庫(kù)。以上操作是通過(guò)ADO對(duì)象來(lái)實(shí)現(xiàn)的。connection對(duì)象負(fù)責(zé)打開或連接數(shù)據(jù)庫(kù),recordset對(duì)象負(fù)責(zé)存取數(shù)據(jù)表,execute負(fù)責(zé)執(zhí)行SQL命令。

      設(shè)定數(shù)據(jù)來(lái)源的方法是:在服務(wù)器上打開“我的電腦”中的“控制面板”,雙擊“ODBC”;在“系統(tǒng)DSN”下選“添加”,選出預(yù)先設(shè)好的數(shù)據(jù)庫(kù)種類、名稱和位置。這里要用到的是access數(shù)據(jù)庫(kù),數(shù)據(jù)源名稱為exam,主數(shù)據(jù)庫(kù)名稱為excise.mdb。打開或連接數(shù)據(jù)庫(kù)的方法是:先用Server.CreatObject取得對(duì)象“ADODB.Connection”的一個(gè)實(shí)例,然后用“Open”打開待訪問(wèn)的數(shù)據(jù)庫(kù):

      SetConn=Server.CreatObject(“ADODB.Connection”)

      Conn.Open“exam"

      然后執(zhí)行SQL命令,即對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,這里要使用Execute命令

      setrs=server.createobject(“adodb.recordset")

      sql=“select*fromrest"

      setrs=conn.execute(sql)

      2.具體實(shí)現(xiàn)

      主頁(yè)文件index.asp的源代碼如下:

      〈html〉

      〈head〉

      〈metahttp-equiv=”Content-Type"content=”text/html;charset=gb2312"〉

      〈metaname=“GENERATOR"content=”MicrosoftFrontPage4.0"〉

      〈metaname=“Progld"content=”Fronpage.Editor.Document"〉

      〈title〉用戶口令檢查〈/title〉

      〈/head〉

      〈bodybgcolor=”#008080”〉

      〈formmethod=”post"action=”login.asp"〉

      〈palign=”center"〉〈fontsize=”6"face=”黑體"〉網(wǎng)上考試系統(tǒng)v4.0〈/font〉〈/p>

      〈palign=”center"〉〈fontcolor=“#0000FF"〉作者:尹春勇孫如霞〈/font>〈/p〉

      〈palign=”center"〉2002.4.24〈/p〉

      〈palign=”center"〉用戶:〈inputtype=”text"name”name"size=”20"〉〈/p〉

      〈palign=”center”〉口令:〈inputtype=”password”name=”passwd”size=“20"〉〈/p>

      〈pailgn=”center"〉〈inputtype=”submit"value=“提交"name=“B1"〉

      〈inputtype=“reset"value=”全部重寫"name=”B2"〉〈/p〉

      〈/form〉

      〈/body〉

      〈/html〉

      信息遞交后驗(yàn)證源代碼login.asp如下:

      〈%

      name=request.form(“name")

      passwd=request.form(“passwd")

      setrs=server.createobject(“adodb.recordset”)

      setconn=server.createobject(“adodb.connection")

      connstr=“excise"

      conn.openconnstr

      sql=“select*fromuserwhereuser=`“&name&"’"

      setrs=conn.execute(sql)

      ifnot(rs.eof)then

      ifrs(“score")〈〉Othen

      response.writers(“user")&“的成績(jī)是"&rs(“score")

      else

      session(“pass")=1

      session(“user")=name

      response.redirect“test.asp"

      endif

      else

      response.write“對(duì)不起,用戶和口令不正確!"

      endif

      %〉信息通過(guò)后抽取試題源代碼test.asp如下:

      〈%@language=vbscript%〉

      〈%

      ifsession(“pass")〈〉1thenresponse.redirect”login.asp"

      setrs=server.createobject(“adodb.recordset")

      setconn=server.createobject(“adodb.connection")

      connstr=“excise"

      conn.openconnstr

      sql=“select*fromtest"

      setrs=conn.execute(sql)

      %〉

      〈html〉

      〈bodybgcolor=“#COCOCO"〉

      〈formmethod=“POST"action=“result.asp"〉

      〈%

      i=1

      rs.movefirst

      dowhilenot(rs.eof)%〉

      〈%=i%〉

      〈%=rs(“question")%〉

      〈br〉〈hr〉

      〈tableborder=“O"width=“100%"〉

      〈tr〉

      〈tdwidth=”50%"〉〈inputtype=radioname=ans〈%=i%〉value=”a"〉A(chǔ)〈%=rs(“a")%〉〈/td〉

      〈tdwidth=“50%"〉〈inputtype=radioname=ans〈%=i%〉value=”b"〉B〈%=rs(“b")%〉〈/td〉

      〈/tr〉

      〈tr〉

      〈tdwidth=”50%”〉〈inputtype=radioname=ans〈%=i%〉value=”c”〉C〈%=rs(“c”)%〈/td〉

      〈tdwidth=”50%"〉〈inputtype=radioname=ans〈%=i%〉value=”d"〉D〈%=rs(“d")%〉〈/td〉

      〈/tr〉

      〈/table〉

      〈%

      i=i+1

      rs.movenext

      loop

      %〉

      〈inputtype=”submit"name=”submit1"value=”交卷"〉

      〈inputtype=”reset"name=”reset1"value=“重做"〉

      〈/form〉

      〈/body〉

      〈/html〉

      評(píng)分源代碼result.asp如下:

      〈%@language=vbscript%〉

      〈%

      setrs=server.createobject(“adodb.recorbset”)

      setconn=server.createobje

      ct(“adodb.connection")

      connser=”excise"

      conn.openconnstr

      sql=”selectansfromtest"

      setrs=conn.execute(sql)

      correct=0

      count=0

      dowhilenotrs.eof

      count=count+1

      ifrequest.form(count)=rs(“ans")then

      correct=correct+1

      endif

      rs.movenext

      loop

      scores=correct/count*100

      response.write“你的成績(jī)是:"&scores

      sql=”updateusersetscore=”&scores&whereuser=''''”&session(“user")&"''''"

      conn.execute(sql)

      %〉

      亚洲日韩在线中文字幕第一页| 久久久久亚洲AV无码去区首| 色噜噜噜噜亚洲第一| 亚洲午夜在线一区| 亚洲欧洲日韩在线电影| 亚洲欧洲精品久久| 亚洲春色另类小说| 亚洲一区二区三区不卡在线播放| 亚洲精品mv在线观看| 亚洲国产夜色在线观看| 亚洲人成在久久综合网站| 国产精品亚洲精品| 亚洲熟女综合色一区二区三区| 亚洲色偷偷色噜噜狠狠99网| 亚洲人AV在线无码影院观看| 蜜芽亚洲av无码一区二区三区| 亚洲精品无码久久久久久| 亚洲av无码成人精品国产| 午夜亚洲福利在线老司机| 亚洲午夜福利精品久久| 不卡一卡二卡三亚洲| 国产亚洲综合一区柠檬导航| 亚洲av无码无在线观看红杏| 色婷婷亚洲十月十月色天| 亚洲欧洲高清有无| 中文文字幕文字幕亚洲色| 亚洲成av人在线观看网站| 亚洲国产天堂久久久久久| 亚洲综合在线另类色区奇米| 亚洲gv猛男gv无码男同短文| 麻豆亚洲av熟女国产一区二| 亚洲午夜在线一区| 亚洲国产美女精品久久久| 亚洲国产精品人人做人人爱| 亚洲午夜国产精品无码老牛影视| 亚洲国产一成人久久精品| 国产综合成人亚洲区| 亚洲精品无码久久久久牙蜜区| 亚洲乱人伦精品图片| 亚洲人xxx日本人18| 亚洲欧美aⅴ在线资源|