在线答题系统可通过以下三步实现网页版在线答题并判断对错:
第一步,需要在在线答题系统中创建考试答题,填写考试的信息,选择试卷类型,然后导入试题进行试卷设计:
1、答题系统支持Word、Excel和TXT导题模板,利用模板可将试题题干、试题解析、试题答案批量上传到系统里,建立自己的试题库。
2、有固定试卷、随机试卷和抽题试卷三种试卷类型,在选择了试卷类型之后,可以使用自己习惯的导题方式手动导入试题,也可以选择从题库中选取试题来进行组卷。
第二步,设置考试配置项,发布试卷:
1、在线答题系统有多项配置项可以来设置考试规则,如考试时间、答题时长、可考次数、试卷模式、成绩显示、答题设备设置等。
2、有人脸识别身份、摄像头拍照监考、防止切屏、试卷页面无 *** 作监控、禁止复制粘贴、试题选项乱序等防作弊设置。
第三步,在线答题系统有自动阅卷和人工阅卷两种方式,对于主观性较强的试题类型,可以在后台进行人工阅卷;客观题在考生交卷后,系统会自动对比正确答案进行阅卷,为了让客观题的阅卷判分更加精准,在线答题系统有多种判分规则可以设置:
1、对于多项选择题或不定项选择题,可以按正确选项个数占比得分或者是漏选只得试题分数的百分比(百分比可以自行设置)来进行判断对错得分。
2、填空题可以设置“判分时不区分答案先后顺序”和“只要匹配答案的部分关键字就可得分”的判分规则。
3、对于问答题,可以设置得分点和关键词来精准判分,每个得分点都可以自行设置得分比例。
要看网页答题脚本,首先要明确脚本的目的,是用来自动完成答题任务还是用来检测答案的正确性。如果是前者,那么需要编写程序代码,从网页中抓取题目和选项,然后根据题目的类型,采用相应的算法来解答。如果是后者,则需要编写程序代码,从网页中抓取答案,然后与正确答案进行比较,以判断答案的正确性。无论是哪种情况,都需要熟悉HTML、CSS和JavaScript等编程语言,以及熟悉网页答题的流程和要求,才能编写出高效的答题脚本。利用ASP和Access数据库制作局域网网上答题系统本系统由Index. asp、Lkzk.asp、Save.asp、Db0.fun 四个小程序及Access数据库文件lkzk.mdb组成各程序的功能分别是:
1. Index. asp 是框架网页,负责导入Lkzk.asp、Save.asp两个子网页组成完整的程序页面。
2. Lkzk.asp 是随机出题答题的交互页面生成程序,主要完成随机选题、题目显示、答案输入及正确率、总答题数显示等功能。
3. Save.asp 完成答题正误判断、显示及成绩登记(按客户端IP地址)。
4. Db0.fun 包含打开Access数据库的多个函数(Lkzk.asp、Save.asp都用到的)。
5. lkzk.mdb Access数据库文件,由表“IP”和表“题库”组成。
表(IP)由编号字段ID(数字格式)、客户机地址字段IP(文本格式)、错误答案数字段nnn(数字格式)、正确答案数字段yyy(数字格式) 所组成;
表“题库” 由题号字段ID(数字格式)、单选多选标记字段dx(数字格式)、答案字段xz(文本格式)、试题内容字段na(备注格式)所组成。(注:试题内容的选择部分必须为“A. …… B. …… C. …… D. ……” 格式)
--------------- Index. Asp-----------------
<html>
<head>
<title>网上司考试题库</title>
</head>
<frameset rows="87%,*" framespacing="0">
<frame name="top" src=image/lkzk.asp scrolling="auto">
<frame name="bottom" scrolling="auto" marginwidth="0" marginheight="0">
<noframes>
<body>
<p>此网页使用了框架,但您的浏览器不支持框架。</p>
</body>
</noframes>
</frameset>
</html>
--------------Lkzk.asp-------------
<!-- #include virtual="/lkzk/DB0.fun" -->
<%
Set rsu2 = GetMdbStaticRecordset("lkzk.mdb", "IP")
Set rs = GetMdbStaticRecordset("lkzk.mdb", "题库")
%>
<HTML>
<head>
<title>网上司考试题库</title>
</head>
<BODY >
<font size="4" color="#000080">司考试题库
<%
ClientIP = Request.ServerVariables("REMOTE_ADDR")
userIP=Right(ClientIP,Len(ClientIP)-InStrRev(ClientIP,"."))
rsu2.AbsolutePosition=userIP
Randomize
I=Fix(Rnd*1800)
rs.AbsolutePosition=I+1
%>
总第<%=CStr(I+6)%>题 <%'=rs("type")%>
<FORM Action=save.asp Method=GET target="bottom">
<INPUT Type=Hidden Name=AI Value="<%=I%>">
<HR>
<% s=rs("na")
x=InStr(s,"A.")
sx="多选"
if rs("dx")=0 then
sx="单选"
end if %>
<%=Left(s,x-1)%>'显示除选择部分外的试题内容
<font color="red">
<%=sx%><BR>'显示是单选还是多选题
</font>
<% s=Right(s,Len(s)-x+1)
x=InStr(s,"B.") %>'以下开始显示复选框及选择部分
<INPUT Type=CheckBox Name=A Value="a">
<%=Left(s,x-1)%><BR>
<%s=Right(s,Len(s)-x+1)
x=InStr(s,"C.")%>
<INPUT Type=CheckBox Name=A Value="b">
<%=Left(s,x-1)%><BR>
<%s=Right(s,Len(s)-x+1)
x=InStr(s,"D.")%>
<INPUT Type=CheckBox Name=A Value="c">
<%=Left(s,x-1)%><BR>
<%s=Right(s,Len(s)-x+1)%>
<INPUT Type=CheckBox Name=A Value="d"><%=s%>
<BR>
<INPUT Type=Submit Value="查看答案">
<a href="lkzk.asp" target="_self">继续做题</a><BR>
<%if rsu2("nnn")+rsu2("yyy")=0 then rsu2("yyy")=1 end if%>
正确率:<%=FormatNumber(rsu2("yyy")/(rsu2("nnn")+rsu2("yyy"))*100, 2, True)%>%
总答题数:<%=rsu2("nnn")+rsu2("yyy")%>
</form>
</font>
</BODY>
-----------------Save.asp-------------------
<!-- #include virtual="/lkzk/DB0.fun" -->
<%
Set rsu2 = GetMdbStaticRecordset("lkzk.mdb", "IP")
Set rs = GetMdbStaticRecordset("lkzk.mdb", "题库")
%>
<HTML>
<BODY >
<% I=CInt(Request("AI"))
rs.AbsolutePosition=I+1
ssx="错"
A=Replace( Request("A"), ", ", "" )
if A=rs("xz") then '判断答题正误
ssx="对"
end if
%>
<FONT Color=Red>
您答<%=ssx%>了 '显示答案正误等信息
</FONT>
试题库总第<%=CStr(I+1+5)%>题 您的答案是:<%=A%>
参考答案是:<%=rs("xz")%>
<%
ClientIP = Request.ServerVariables("REMOTE_ADDR")
userIP=Right(ClientIP,Len(ClientIP)-InStrRev(ClientIP,"."))
rsu2.AbsolutePosition=userIP
rsu2.Update
If ssx="对" then
rsu2("yyy") =rsu2("yyy")+1
End if
if ssx<>"对" then
rsu2("nnn") =rsu2("nnn")+1
End if
rsu2.Update '以下将正误结果记录于数据库表“IP”中
%>
</BODY>
</HTML>
--------------Db0.fun----------------
<% ' 以下为函数程序
'---------------------------------------------------
Function GetMdbConnection( FileName )
Dim Provider, DBPath
Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
DBPath = "Data Source=" &Server.MapPath(FileName)
Set GetMdbConnection = GetConnection( Provider &DBPath )
End Function
'---------------------------------------------------
Function GetMdbRecordset( FileName, Source )
Set GetMdbRecordset = GetMdbRs( FileName, Source, 2, "" )
End Function
'---------------------------------------------------
Function GetMdbStaticRecordset( FileName, Source )
Set GetMdbStaticRecordset = GetMdbRs( FileName, Source, 3, "" )
End Function
'---------------------------------------------------
Function GetConnection( Param )
Dim conn
On Error Resume Next
Set GetConnection = Nothing
Set conn = Server.CreateObject("ADODB.Connection")
If Err.Number <>0 Then Exit Function
conn.Open Param
If Err.Number <>0 Then Exit Function
Set GetConnection = conn
End Function
'---------------------------------------------------
Function GetMdbRs( FileName, Source, Cursor, Password )
Dim conn, rs
On Error Resume Next
Set GetMdbRs = Nothing
If Len(Password) = 0 Then
Set conn = GetMdbConnection( FileName )
Else
Set conn = GetSecuredMdbConnection( FileName, Password )
End If
If conn Is Nothing Then Exit Function
Set rs = Server.CreateObject("ADODB.Recordset")
If Err.Number <>0 Then Exit Function
rs.Open source, conn, Cursor, 2
If Err.Number <>0 Then Exit Function
Set GetMdbRs = rs
End Function
'---------------------------------------------------
%>
具体参考:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)