日韩有码亚洲专区|国产探花在线播放|亚洲色图双飞成人|不卡 二区 视频|东京热av网一区|玖玖视频在线播放|AV人人爽人人片|安全无毒成人网站|久久高清免费视频|人人人人人超碰在线

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

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

網(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)化查詢(xún)語(yǔ)言實(shí)現(xiàn)了網(wǎng)上的無(wú)紙化考試。

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

系統(tǒng)基本原理是:用access建立一個(gè)數(shù)據(jù)庫(kù)文件,用來(lái)存儲(chǔ)試題及用戶(hù)的驗(yàn)證信息。當(dāng)用戶(hù)登陸時(shí),首先提示要輸入驗(yàn)證信息,當(dāng)輸入用戶(hù)信息后,通過(guò)sql語(yǔ)言查詢(xún)此用戶(hù)是否合法,如果不合法,則顯示提示信息。否則,進(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ǔ)用戶(hù)信息,test表存儲(chǔ)考試內(nèi)容。

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

字段名類(lèi)型含義

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

Passwd文本存儲(chǔ)密碼

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

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

字段名類(lèi)型含義

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

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

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

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

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

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

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

Request對(duì)象

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

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

Response對(duì)象

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

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ù)訪(fǎng)問(wèn),對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)、插入、更新、刪除等操作。對(duì)數(shù)據(jù)庫(kù)的查詢(xún)是用SQL的select命令,成績(jī)的錄入是用SQL的update命令。

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

設(shè)定數(shù)據(jù)來(lái)源的方法是:在服務(wù)器上打開(kāi)“我的電腦”中的“控制面板”,雙擊“ODBC”;在“系統(tǒng)DSN”下選“添加”,選出預(yù)先設(shè)好的數(shù)據(jù)庫(kù)種類(lèi)、名稱(chēng)和位置。這里要用到的是access數(shù)據(jù)庫(kù),數(shù)據(jù)源名稱(chēng)為exam,主數(shù)據(jù)庫(kù)名稱(chēng)為excise.mdb。打開(kāi)或連接數(shù)據(jù)庫(kù)的方法是:先用Server.CreatObject取得對(duì)象“ADODB.Connection”的一個(gè)實(shí)例,然后用“Open”打開(kāi)待訪(fǎng)問(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〉用戶(hù)口令檢查〈/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"〉用戶(hù):〈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=”全部重寫(xiě)"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ì)不起,用戶(hù)和口令不正確!"

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)

%〉