基于ASP+Access的在线考试系统设计与实现

基于ASP+Access的在线考试系统设计与实现


2024年6月21日发(作者:)

^)J … … …  f f ff f 、 f J 

实用第一 智慧密集 

… I_¨  r'l …H  L… q J 一  .

基于ASP+Access的在线考试系统设计与实现 

杨 东 

摘 要:讲述使用ASP技术开发在线考试系统的方法。系统使用Access作为后台数据库.实现了 

对学生信息、试题信息的统一管理。学生可通过在线考试系统进行测试,交卷后系统可自动阅卷 

评分,从而方便学生对学习情况进行了解和总结。 

关键词:ASP;Access;在线考试;自动阅卷 

表2 tbScore表结构 

字段名称 数据类型 

自动编号 

文本 

1 引语 

随着信息科技的不断发展,网络教学方式也逐渐融人到日 

常的教学活动巾。利用网络在线资源的优势,使用在线的考试 

系统进行日常的考试T作.也成为了现今教学发展中的一个趋 

势。在线考试系统需实现对试题的统一管理,并能够自动评阅 

客观题.从而大大地减轻了教师们在教学活动中的负担。 

ID 

StuID 

主键 

是 

☆ 

说明 

系统自动编号 

学乍学号 

lsc。re 

I stDate 

数字 

日期/时问 

否 

甭 

测试得分 

测试日期 

2 系统模块 

2.1 管理员模块 

管理员担任信息维护的角色。根据需求,应能够对各类试题 

进行添加、删除和修改,对学生信息及学生考试成绩进行维护。 

ID 

StulD 

StuNalale 

StuPwd 

SluSex 

表3 tbStudent表结构 

字段名称 数据类型 

自动编号 

文本 

文本 

文本 

文本 

主键 

是 

否 

否 

否 

说明 

系统一动编号 

学牛学 

学牛姓名 

学生密码 

学牛性别 

2.2学生测试模块 

学生通过个人账号臀录系统后,进入考试页面,将看到单 

选题、多选题、判断题3类题型的客观题题目信息,通过选择 

对应的选项进行答题,答题完毕后,提交试卷时便可看到自己 

本次测试的分数。 

StuMaior 

StuGrade 

文本 

文本 否 

学牛所在弩业 

学牛所 :句:级 

3数据库 

根据考试系统的设计需求和实际应用需要,选择Access 

表4 tbTest表结构 

作为后台数据J车,便于日常的管理、开发和使用。数据库命名 

为“exam.mdb”.内含tbAdmin、tbScore、tbStudent、tbTest 4 

字段名称 数据类型 主键 

ID 

TestTitle 

说明 

系统自动编号 

试题题目 

张表。其中tbAdmin表中保存管理员(或教师)账号,tbScore 

表中保存学生测试的分数,tbStudent表中保存学生的个人信 

息,tbTest表中存放试题信息。各表的定义如表1一表4所示。 

表1 tbAdmin表结构 

≠段名称 

D 

~dminID 

 ̄dminName 

 ̄dminPwd 

自动编号 是 

文本 否 

TestType 数字 否 

否 

否 

试题类型。1一单选.2一多选,3~削断 

试题分值 

A选项 

TestScore 数宁 

数据类型 

自动编号 

丈本 

文本 

文本 

主键 

是 

说明 

系统自动编号 

管理员账号 

A 文本 

B 

C 

D 

文本 

文本 

文本 

否 

否 

B选项 

C选项 

D选项 

否 

甭 

管理员姓名 

管理员密码 

Answer 文本 否 正确答案 

54. 畦商20翻1 2.疆13圬与雏女;《; 

… 

NETWORK&C0啊啊UHIC盯ION……… ……… ~ ………………”n… ‘ … …… m …… …l¨ 一 ~…I _

4数据库操作文件 

当存在多个页面都需要连接数据库的情况时,可将数据库 

连接代码编写成公用文件,此方法将大大减少代码的繁杂度,增 

加代码的可修改性。本系统将数据库连接代码放入公用文件 

conn.asp”中.在需要连接数据库的时候,在文件中添加包含<! 

一-

#include ifle=“conn.asp”一>即可。conn.asp的代码如下: 

<% 

数据库连接文件 

Dim conn 

Set conn=Server.CreateObject(”ADODB.Connection ) 

conn.Open“Driver={Microsoft Acce}ss Driver( .mdb)};Dbq= 

&Server.MapPath(“exam.mdb”) 

%> 

5登录页面 

5.1 登录页面 

进入首页“index.asp”看到的是用户登录贞面。用户可凭 

账号进行登录.界面设计如图1所示。 

ll薪自萌 凶晒 ? v ? 

4 欢迎鼗陆在翁考试系统 

{ 

4 嗣户鲁 

3 密 

l 女学生 锛理璺 

\ 澳 l l 

i 

图1登录页面 

登录界面主要代码如下: 

<html> 

<body> 

<h2 align=”center”>欢迎登陆在线考试系统</h2> 

<form method=“post“action=“IoginJump.asp。’> 

<br><table align= center“> 

<tr> 

<td>用户名:</td> 

<td><input type=”text name:”txtName“></td> 

</tr> 

<tr> 

<td>密 码:</td> 

<td><input type=“password“name=”txtPwd“></td> 

</tr> 

<tr> 

<td></td> 

<td><input type=”radio name=,rdoType” 

value= 学生”checked>学生 

<input type:“radio”name=” 

rdoType”value= 管理员“>管理员</td> 

<tr> 

<tr> 

<td></td> 

<td><br><input type=“submit”name=” 

btnSubmit“value:“登录“style=“width:50px:height:25p×”> 

&nbsp&nbsp 

<input type=“reset”name=” 

btnReset“value=“重置“style=“w{dth:5Op×:height:25p×”><,td> 

</tr> 

</form> 

</body> 

</html> 

5.2登录操作处理 

用户输入用户名和密码,选择身份类型后,点击登录,将 

转至“loginJump.asp”贝面来处理登录操作,根据用户的类型 

在验证用户身份信息后跳转至不同的页面。代码如下: 

<!一一#include file=“conn.aspII > 

<% 

userName=Request.fOrm(“txtName“) 

userPwd=Request.form( txtPwd”} 

USerType=Request.f0rm(“rdoType ) 

If userName=“”Or userPwd= Then 

response Write(“<script>alert( 用户名或者密码不能为 

空,请重新登录! );location=( index.asp )</script> ) 

Else 

lf userType= 学生 Then 

学生登录 

sql=“select fr0m tbStudent where StulD= 

&userName&” and StuPwd= &userPwd&” ‘ 

Set jrs=Server.CreateObject(”ADODB.Recordset”) 

rs.open sql,conn, 1 

”Jr_s.eofThen 

response,Write(“<script>alert( 用户名或者密码不 

正确,请重新登录! );location=( index.asp )</script>”) 

Else 

Session( name )=userName 

Response.redirect“student.asp” 

fEnd lf 

Else 

管理员登录 

sa}=”select frOm tbAdmin where AdmlnlD= 

&userName&“ and AdminPwd= ‘&userPwd&… 

Set rs=Server.CreateObject(“ADODB.Recordset“) 

I'is.open sql,conn,1,1 

If rs.eof Then 

response.Write(“<script>alert( 用户名或者密码不 

正确,请重新登录} 10ca 0n=( index.asP )</script>”) 

{EIse 

Session(“name“)=userName 

Response.redirect“admin.asp” 

End if 

End_f 

End If 

m u u l 

 rJ 

实用第一 智慧密集 

… … 一 。 、 一 

COnn.CIOSe 

varFieId:StuGrade“>年级</a></th> 

<th width=“1 O%”>修改</th> 

Set corm=Nothing 

Set rs=Nothing 

%> 

<th width=”1 0%”>删除</th> 

</tr> 

<% 

6管理员页面 

管理员臀录后,可以维护学生信息和学牛测试成绩,对单 

选题、多选题和判断题进行分类的管理,可添加、修改和删除 

循环显示单个记录 

DO While Not rs.Eof 

%> 

<tr> 

单条试题信息。 

6.1 学生信息页面 

stulnfo.asp”中以表格的形式显示了所有已存入的学生信 

息,并可按照不同的标题类型对信息进行排序。如图2所示。 

图2学生信息 

上要代码如下 

<% 

If Request.QueryString(”varField“)=”“Then 

strField=“ID“ 

Else 

strFieId=Request.QueryString(“varField ) 

End_f 

sqI=”select frOm tbStudent Order By”&strField&“ 

ASC” 

Set rs=Server.CreateObject(”ADODB.Recordset“) 

rs.open sql,conn,1,1 

index=1 

%> 

<a href=”addStu.asp”>添加新学生信息</a> 

<table border=”1__width=”80%”align=“center”bordercolor=“ 

#9999CC”cellspacing=“0”> 

<tr bgcolor=‘‘#EOEOE0’。> 

<th width=“1 0%“> <a href= stulnfo.asp? 

varField=lD >序号</a><,th> 

<th width=“20% > <a href: stuInfo.asp? 

varFieId=StulD“>学号</a></th> 

<th width=”10% > <a href= stulnfo.asp? 

varField=StuName“>姓名</a></th> 

<th width= 1 O%”> <a href=”stulnfo.asp? 

varFieId=StuSex”>性另I</a></th> 

<th width:”20%“> <8 href=“stuInfo.asp? 

varField=StuMajor”>专业</a></th> 

<th width:“1 O%”> <a href=”stulnfo.asp? 

56 建|麟20缡1趣2.疆13西

与雅 } 

<td align=“center“> <%=index%></td> 

<td align=“center“>&nbsp:<%=rs(”StulD“)%></td> 

<td align=”center“>&nbsp <%=rs(“StuName“)%><,td> 

<td align=“center“>&nbsp:<%=rs(”StuSex )%></td> 

<td align=”center“>&nbsp <%:rs(“StuMajor”)%></td> 

<td align=”center“>&nbsp:<%:rs(“StuG rade”)%></td> 

<td align=”center“><a href=“modifyStu asp? 

lD=<%:rs( ID“)%>“>修改</a></td> 

<td align=”center“><a href=“deIStu.asp?lD=<%= 

rs(”ID“)%>“onClick=”return confirm( 您确定要删除该条记录 

’>删除</a></td> 

</tr> 

<% 

指针后移一条记录 

rs.MoveNext 

index=index+1 

Loop 

%> 

6-2单选题页面 

radio.asp”页面内显示了所有已录入的 选题信息,包 

含了题号、题目内容、题目答案以及单个题日的分值,歼提供 

了添加、修改和删除单选题的功能。如图3所示。 

’ 

一 … … 

ll_ ≤ 攀 

. 

aa 

- ; 

l。 

. 

l篱越 蒜赫蝣| I 

L 趣 螂k 

-  bA} ; b 

, 

… 1* 

- 

| r‰ 

 。4 t 

b ' |。 

m n l 

。 " “ 啦 

l … 日 

{ 稀 d 

图3单选题页面 

6-2.1添加单选题 

在“addRadio.asp”贝面巾.输入题目信息以及选项内容, 

选题好正确答案的所在选项以及试题所占的分值,点 【 “添 

加”按钮后将转至“insRadio.asp”的处理页面。添加单选题贞 

面如图4所示。 

其中“insRadio.asp”处理页面的主要代码如下: 

<!--#include file= conn.aspIlmm> 

…… 

H盯WORK&COMMUNIC盯ION一… ………… -… ……一……………一…… … … …一 … … …… 

<% 

If Request.form(。'txtTitle'。)<>” 'Then 

sql= 'insert into tbTest ITestTitle,TestType,TestScore,A, 

B,C,D,Answer)values( '&Request.form( txtTitle'’)8£l 『, 1 , &Re 

quest.form《’'skScore'‘)&“ , '&Request.f0rm(”txtA“)&” , &Reque 

st.form( txtB”)& , '&Requestform(‘'txtC”)&”, &Request.formC“ 

txtD”)&” , '&Request.form(‘'rdoAns”)&”)“ 

conn.Execute(sq1) 

更新成功,跳转至单选题信息页面 

response.Write('‘<scrilot>alert( 单选题信息添加成功l 

location=("radio asp )</script>”) 

Else 

返回 

response.WriteC“<script>alert( 题目信息不能为空!,) :

Iocation=( 'addRadio.asp )</script>“) 

End if 

%> 

图4添加单选题 

6_2.2修改单选题信息 

modifyRadio.asp”页面实现了单选题信息的读取以及修改 

的功能。管理员在单选题页面点击修改进入页面后,修改页面 

内显示了所选试题的信息,包括题目、选项内容以及正确答 

案,根据数据库中所存答案信息,判定答案A、B、C、D 4个 

单选按钮应选中哪一个。核心代码如下: 

<% 

ID=Request.QueryString(”ID“) 

sql= 'select frOm tbTest where ID=“&ID 

Djm rs 

Set rs=Server.CreateObject('A'DODB.Recordset") 

rs.Open sql,conn,1,2 

%> 

<form method=”post'‘action=“up ̄Radio.asD?lD:<%=rs(“ID“)% 

>”> 

<table align=“ ̄enter' border=“O width= 60%“> 

<br> 

<tr> 

<td valign=“'top”>题目:</td> 

<td><textarea name=“txtTitle“rows:“d” 

cols=”40“><%=rs(“TestTitle'')%></textareab></td> 

</tr> 

<tr> 

<td valign=“'top”>A.</td> 

<td><textarea name="txtA“rows=“3”cols=“ 

40'。><%=rs(”A”)%><,textarea></td> 

</tr> 

<tr> 

<td valign=”'top“>B.</td> 

<td><textarea name="txtB” rows= 3“cols=“ 

40"。><%=rs(”B“l%><,textarea><,td> 

</tr> 

<tr> 

<td valign=”'top“>C.</td> 

<td><textarea name=”txtC 

rows:“3“cols:“ 

40' ><%=rs(_IC”)%></textarea></td> 

</tr> 

<tr> 

<td valign=”'top“>D.</td> 

<td><textarea name:"txtD‘ ‘

rows=”3”cols=“ 

40'‘><%=rs(”D”)%></textarea></td> 

</tr> 

<tr> 

<td><br>答案:</td> 

<td><br> 

<input type=“radio'。name=” 

rdoAns”value=”A“<%If rs(”A ,rnswer“)=”A“then%> 

checked<%End’if%>>A 

<input type=’ radi"o’name=。’ 

rdoAns“value=“B“<%lf rs ( Ai,nswer”)=”B”then%> 

checked<%End if%>>B 

<input type=”radio'。name=” 

rdoA ̄ns value=”C“<%If rs(“Ai,nswer“)=”C“then%> 

checked<%End if%>>C 

<input type “radio' name=“ 

rdoAns“value=“D”<%If rs(”A,nswer")=“D then%> 

checked<%End if%>>D 

&nb ̄sp; 分值:<select size=”1”name=”sltScore“> 

<option value=”1“<%If rs(“'TestScore“)=“1“then%> 

selected<%End if%>>1分</Option> 

<ODti0n value=“2“<%lf rs( 'TestScore")=”2“then% 

>selected<%End jf%>>2分<,C,lotion> 

<option value=”3“<%If rs(‘'TestScore" l-”3”then% 

>selected<%End if%>>3分</option> 

<option value=“4 <%lf rs(“Te ̄stScore”)=“4”then% 

>selected<%End if%>>4分</option ̄ 

<Option value=”5”<%lf rs( 'TestScore“)= 5“then% 

>selected<%End if%>>5分</option ̄ 

<option value=“6“<%If rs( 'TestScore”):”6“then% 

>selected<%End if%>>6分</o D1:ion> 

<option value= 8”<%lf rs('TestScore")=”8 then% 

>select,ed<%End jf%>>8分</option> 

<optiOn va]lfue=“1 O”<%lf rs(’'TestScore”)= 1 0”then%> 

鳓 

0 

实用第 

智慧密集 

selected<%End if%>>10分</cIption> 

<option value=”1 5“<%If rs(“TestScore )=“1 5” 

then%>selected<%End_f%>>1 5分</option> 

<option value:“20”<%lf rs(”TestScore”):“20” 

then%>selected<%End_f%>>20分</option> 

<,td> 

<Itr> 

<tr> 

<td> </td> 

<td><br> <input type:“submit”name=“ 

btnSubmit”value=“保存“style=”width:5Opx;height:25px > 

 <a href=“radio.asp >返回</a><td> 

</table> 

</form> 

6.3多选题页面 

check.asp”页面内显示了所有已录入的多选题信息,包 

含了题号、题目内容、题目答案(多项,以逗号隔开)以及单 

个题目的分值,并提供了添加、修改和删除多选题的功能。如 

图5所示. .

t 

I 磊s 一lI 鼍 l s 

^ - t 

。 。 

- 

{  。

** I 

鬻 器 诣 { 

8  。1 。 《 

m { 一 ^l l。 。 ㈣ k 

nt k* ∞m  J

*£ 臻 

…^ …  。

 j…蝴 n h 一 

图5多选题页面 

其中“modifyCheck.asp”页面实现了多选题信息的读取和 

修改的功能。修改页面内根据数据库中所存答案信息,判定答 

案A、B、C、D 4个checkbox中有几个是已经选择的。核心代 

码如下: 

<% 

ID=Request.QueryString(“ID“) 

sql=“select frOm tbTest where ID=”&ID 

Dim rs 

Set rs=Server.CreateObject(”ADODB.Recordset“) 

rs Open sql,conn,1,2 

%> 

<form method= post”action=”upCheck.asp?ID=《%=rs fI- 

ID”)%>”> 

<table align=“center“border=”0”width=“6O% > 

<br> 

<tr> 

<td valign=“top”>题目:</td> 

<td><textarea name:”tXtTitle“rows=…4 

COIS=”40”><%=rs(”TestTitle )%></textarea></td> 

电 品与 瓷 | 

</tr> 

<tr> 

<td valign=“top“>A.<,td> 

<td><textarea name=”txtA“ rows=“3“cols= ’ 

40“><%=rs(”A“)%></textarea></llj> 

</tr> 

<tr> 

<td vailgn=”top“>B</td> 

<td><textarea name=”txtB“ 

rows= 3”cols=“ 

40 ><%=rs(”B )%></textarea></td> 

</tr> 

<tr> 

<td valign=”top“>C </td> 

<td><textarea name=”txtC。 。

rows=”3”cols=。’ 

40 ><%:rs(”C“)%></textarea></td> 

</tr> 

<tr> 

<td valign=“top >D.<,td> 

<td><textarea name=”txtD“ 

rows=…3 cols=” 

40”><%=rs(“D”)%></textarea></td> 

</tr> 

<tr> 

<td><br>答案:</td> 

<td><br> 

<input type=”checkbox”name= chkAns”value=”A”<%lf InStr 

(1,rs(“Answer“).“A”)<>0 then%>checked<%End if%>>A 

<input type=”checkbox name= chkAns“value=”B”<%lf lnStr 

(1,rs(“Answer“), B”)<>0 then%>checked<%End if%>>B 

<input type=“checkbox“name=”chkAns“value=”C“<%lf InStr 

(1,rs(“Answer”),”C“)<>0 then%>checked<%End If%>>C 

<input type=”checkbox”name=‘‘chkAns’‘value=‘‘D。 ‘

<%If InStr(1.rs(”Answer“), D“)<>0 then%>checked<%End 

lf%>>D 

  分值:<select name=”sltScore”> 

<option value=“ <%If rs(”TestScore )=“1”then%> 

selected<%End If%>>1分</option> 

<option value=…2<%lf rs(”TestScore“)=…2 then%> 

selected<%End if%>>2分</option> 

<option value=“3“<%If rs(“TestScore”): 3“then%> 

selected<%End.f%>>3分</option> 

<option value=“4”<%If rs( TestScore”)=…4 then%> 

selected<%End if%>>4分</option> 

<option value=…5<%If rs(”TestScore ):“5”then% 

>selected<%End.f%>>5分</option> 

<option value=“6“<%If rs(”TestScore”)=…6‘then% 

>selected<%End|f%>>6分</option> 

<option value=“8”<%If rs(¨TestScore“)=…8 then% 

>selected<%End.f%>>8分</option> 

<option value=”10“<%If rs(”TestScore“)=”10 then%> 

selected<%End计%>>1O分</option> 

<option value=“1 5”<%If rs(“TestScore“)=”1 5 

then%>selected<%End If%>>1 5分</option> 

…… 

HE咖RK&C0MMUNIC盯ION…………………………………………………………………………… ……… 

<option value= 20”<%}f rs(“TestScore”)="20” 

then%>selected<%End.f%>>20分</c}ption> 

</td> 

</tr> 

<tf> 

<td> </td> 

<td><br> <input type=“submit”name= 

btnSubmit”value=“保存 style=“width:50px;heigIht:25pxU> 

 <a href=“check.asDH>返回</a><td> 

</table> 

</form> 

6.4判断题页面 

“decide.asp”页面显示了系统中的判断题。该部分主要编 

码思想与单选题相似。如图6所示。 

图6判断题页面 

6.5试题信息删除 

“delTest.asp”页面可对系统中的3类题型进行统一的删 

除,根据删除页面载人时所获取的查询参数(Request. 

QueryString(”testType”))执行不同的删除操作。代码如下: 

<!--#include file=“conn.asp"---> 

<% 

ID=Request.QueryString(”ID ) 

tp=Re ̄uest.QueryString( testType ) 

delsql= delete frOm tbTest where lD=“&ID 

conn.Execute(delsq1) 

sql=“select frOm tbTest where lD= &ID 

Set delrs=conn.Execute(sq1) 

If delrs.eof Then 

Iftp=1 then 

response.Write(“<script>alert( 删除该试题信息成 

功! );location:( radio.asp )</script>”) 

Elself tp=2 Then 

response.Write(”<SCript>alert( 删除该试题信息成 

功! );location=( check,asp,)</script>") 

Else 

response.Write(“<script>alert( 删除该试题信息成 

功f );location=( decide.asp")</script>”) 

end If 

Else 

If tp=1 then 

response.Write(”<script>alert( 删除该试题信息失 

败I,):location=( radio.asp3</script>“) 

Elself tp=2 Then 

res;ponse.Write《”<script>alert( 删除该试题信息失 

败!");location=( ̄heck.asp </script>”) 

EIse 

response.Write( <script>alert( 删除该试题信息失 

败! Iocation=( decide.asp )</script>“) 

end If 

End If 

conn.close 

%> 

7学生测试页面 

学生凭学号登录后,进入“student.asp”的考试页面。在 

答题完毕并提交测试答案之后,系统转入“score.asp”页面进 

行处理,计算得分,并进行单次测试成绩的存储。对于已经进 

行过测试的同学,新的成绩将不计人数据库,以防止学生重复 

地刷新分数。 

7.1 学生测试主页面 

student.asp”页面显示了当前登人系统的学生学号.按照 

单选题、多选题、判断题的顺序将系统的试题分条显示.学生 

可直接进行答案的选择。如图7所示。 

图7学生测试主页面 

代码如下: 

<}--#inciUde file=”conn.aspn > 

<% 

Dim index 

index= 

sq!Radio;“select from tbTest where TestType=l Order By 

IDASC 

sqtCheck="select from tbTest where TestType=2 Order By 

IDASC" 

sqIDecide="select from tbTest where TestType=3 Order 

By fDASC" 

实用第 一 

慧密集 

Dim rsRadio,rsCheck,rsDecide 

Set rsRadio=Server.CreateObject( ADODB.Recordset“) 

Set rsCheck=Server.CreateObject(“ADODB.Recordset”) 

Set rsDecide=Server.CreateObject(“ADODB.Recordset”) 

rsRadio.Open sqIRadio,conn.1.1 

rsCheck.Open sqlCheck,conn,1,1 

rsDecide.Open sqIDecide,conn.1,1 

各项题目的总分 

Dim sumRadio,sumCheck,sumDecide 

sumRadio=conn.Execute( select sum《TestScore)as sumR 

frOm tbTest where TestType=1“) 

sumCheck=conn.Execute(”select sum(TestScore)as sumC 

frOm tbTest where TestType=2”) 

sumDecide=conn Execute(“select sum(TestScore)as sumD 

frOm tbTest where TestType=3”) 

%> 

<html> 

<body> 

<form method=”POST action= score asp“> 

<table width=‘ 80%”align=。‘center‘’> 

<tr> 

<td style=。。color:#888000。 ’><font 

size=”6”><br><%=Session(“name“)%>欢迎您!(本次测试满 

分为 <%=sumRadio《“sum RlI)+sumCheck(“sumC”)+ 

sumDecide(”sumD”)%>分)</td> 

<td align=”right“valign=”bottom”><input 

type=“submit“name=“btnSubmit“value=”交卷“Style=“width: 

60p× height:4Opx ></td> 

</tr> 

<tr> 

<td colspan=…2> 

<hr> 

<D style=”color:#6226CC“>一、单项选 

择题(在以下题目中,每题仅有一个选项正确)(共<%: 

sumRadio( sumR”)%>分) 

<% 

循环显示单选题信息 

Do While Not rsRadio.eof 

%> 

<D><%=index%>。<%=rsRadio(” 

TestTitle“)%>(<%=rsRadio(”TestScore“)%>分) 

<D><input type=。。radio”name=。 。

Ans<%:index%>”value=“A”>A.<%=rsRadio(“A”)%> 

<D><input type=“radio name=“ 

Ans<%=index%>“value=“B“>B <%=rsRadio(”B“)%> 

<D><input type=”radio”name=。 ‘

Ans<%=index%>“value=“C”>C.<%=rsRadio(”C“)%> 

<D><input type=。。radio”name=” 

Ans<%=index%>“value=”D”>D.<%=rsRadio( D“)%> 

<hr> 

<% 

指针后移一条记录 

index=index+1 

rsRadio.MoveNext 

Loop 

%> 

<p style=“co}or:#6226CC“>二、多项选 

择题(在以下题目中,每题至少有两个选项正确)(共<%= 

sumCheck(”sumC“)%>分) 

<% 

循环显示单选题信息 

Do While Not rsCheck.eof 

%> 

<p><%=index%>.<%=rsCheck(“ 

TestTitle“)%>(<%=rsCheck(“TestScore”)%>分) 

<D><input type=。 checkbox“name=‘’ 

Ans<%=index%>”value=“A”>A.<%=rsCheck(“A”)%> 

<D><input type= checkbox name=“ 

Ans<%=index%>“value=“B“>B.<%=rsCheck(”B )%> 

<D><input type:“checkbox”name=” 

Ans<%=index%>“value=”C”>C.<%=rsCheck(“C“l%> 

<D><input type=”checkbox“name= ‘ 

Ans<%=index%>”value=“D“>D<%=rsCheck(”D“)%> 

<hr> 

<% 

指针后移一条记录 

index=index+1 

rsCheck.MoveNext 

Loop 

%> 

<p style=”color:#6226CC >三、判断题 

(判断题干信息是否正确)(共<%=sumDecide(-.sumD )%> 

分) 

<% 

循环显示单选题信息 

Do While Not rsDecide.eof 

%> 

<p><%=index%>.<%=rsDecide(“ 

TestTitle“)%>(<%=rsDecide( TestScore“)%>分) 

<D><input type= radio”name=’ ‘

Ans<%=index%>”value=“A”>A,<%=rsDecide(“A”)%> 

<0><input type:“radio“name:。 ‘

Ans<%=index%>”value=“B”>B。<%=rsDecide(“B”)%> 

<hr> 

<% 

指针后移一条记录 

index=index十1 

rsDecide.MoveNext 

Loop 

%> 

</td> 

</tr> 

</table> 

<% 

匾 

…… 

NETWORK&CO啊MUNiC盯ION …一…………… ………………………… 一 …… ………… ……… 

Corl『1.ClOSe 

%> 

</body> 

</html> 

7.2测试成绩统计 

Score.asp”对学生提交的答卷进行自动测评 

并输出测试 

得分以及答对的题目序号。如图8所示。 

图8测试结果 

主要代码如下: 

<!--#include file=”conn asp“一一> 

<% 

sql=”select frOm tbTest Order By TestType ASC。ID ASC“ 

Dim rs,index,sum,testTime,rigAns 

Set rs=Server.CreateObject(”ADODB.Recordset”) 

rs.Open sq1 conn,1,1 

index=1 

sum=0 

testTlnie=Date(1 

计算得分 

DO While NOt rs.eof 

If Request.form(”Ans“&index)=rs(“Answer“)Then 

回答正确,分数累加 

sum=sum+rs(”TestScore”) 

rigAns=rigAns&" &index 

End-f 

rs.MoweNext 

index:index十1 

Loop 

记录考试成绩到数据库中 

sqlExist= select frOm tbScore where StulD= ‘&Session{tl 

name“)& ” 

Set rsExist=Server.CreateObject( ADODB Recordset 】 

rsExist.Open sqlExist,conn,1,1 

If rsExist.eof Then 

数据库中不存在当前学生的考试记录 

insSqI=”insert{nto tbScore(StulD,Score,TestDate) 

values( &Session(”name”)& , &sum&” , ‘&testTime&" )l I

conn.E×ecute(jnsSqI) 

Else 

Response write <script>alert( 您的测试记录已存在,本 

次记录将不保存! )</script>” 

End I{ 

%> 

<html> 

<body> 

<hl align=”center ><br><font style= color:#6226CC“><%= 

><fon t 试 

。 

<D>答对的题号为:<%=rigAns% 

<p><a href=”index.asp“>返回登录页<,a> 

</body> 

</html> 

8 结语 

文中所述的在线考试系统使用Access作为后台数据库, 

使用ASP技术实现了试题的管理与试卷的自动评阅等功能。 

本系统满足普通测试的需要,可直接投入教学使用。对于需要 

加入主观题的测试需求来说,可在数据库中先存储学生主观题 

答题信息.然后让教师在管理页面中进行评阅以及评分即可实 

现全网络模式的考试与阅卷工作。 

参考文献 

[1】尚俊杰.网络程序设计(第3版).北京:清华大学出版 

社,2008. 

【2】郭常圳.ASP网络开发例学与实践.北京:清华大学出 

版社.2005. 

(收稿日期:2012—04—25) 

可以在数据传输及操作的过程中对代码进行加密.同时 

将加密后的代码传输至相应的接收者。使用CodeMeter 

技术对自动化软件进行加密,相应地.只有通过对应的 

许可才可对软件进行解密,从而对自动化软件实施保护。 

CodeMeter软件保护产品支持多种接口类型.软件生产 

商可根据其机器、设备的接口类型,选择相应的软件保 

护产品,如带有USB接口的CmDongle、针对SD卡, 

迷你SD卡或者CF接口的CmCard。将许可信息存入智 

能卡芯片当中 

籀 齄螭醺2缓0 12 .1翠3 ::、 

I' 


发布者:admin,转转请注明出处:http://www.yc00.com/web/1718919320a2753549.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信