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 ::、
R
I'
#
发布者:admin,转转请注明出处:http://www.yc00.com/web/1718919320a2753549.html
评论列表(0条)