-
您的位置:首页 → 网页设计 → ASP实例 → 利用ASP+XML架设在线考试系统
利用ASP+XML架设在线考试系统
时间:2004/11/7 3:01:00来源:本站整理作者:蓝点我要评论(0)
-
利用ASP + XML 架设在线考试系统
<-------------此程序非本人原创-------->
使用这个在线的考试系统,我们能处理任何类型在线测试。 尽管我们一般是用传统方式实现,读者非常希望将。
如果从总体上考虑。 所有问题都储存在服务器( 它可能在数据库里) 里面的的xml 文件里。 用户准备花费考试,然后用户测试的通体将通过微软的XML HTTP 组件传送到浏览器。 使用同一个XML HTTP 组件,每当用户请求一个问题的时候,那些问题内容被从服务器解释并且显示在页上。 对用户的任何问题,你所选择的答案会被储存在客户端。
一次考试的持续时间是5 分钟。 没有回答不了,你可以使用NEXT回答下洋问题。 一旦用户启动考试,所有问题目录将来自服务器。 所给问题的Id 每请求到服务器以来在内目录在客户拿给并且给服务器派内储存。 服务器将返回问题内容,符合问题Id,从xml 文件。 当用户选择任何一个答案时,体制将在那些应答表里储存和在在客户边里的选择表里。 用户最后已经选择的正确的答案,应答表用来并不地检查。 选择表在那里是以便系统将自动选择用户已经选择了的选择 ( 例如用户点击以前的按钮) 考试将结束或者用户点击终结按钮或者首先来,时间( 例如5 分钟) 结束。 关于终结,系统将计算并不右边答案的并且展示它。 那些以下的文件被在在线的考试系统里使用:
OLExam.html
OnLine Exam
OLExam.asp
<%
Response.expires = 0
'create an instance of MS XMLDOM Object
'and load the QBank.xml file where all the questions are.
set obj = server.createobject("Microsoft.XMLDOM")
obj.async = false
obj.load(Server.MapPath("QBank.xml"))
'very first request from the client
if trim(request("Action")) = "Start" then
'set no of questions per exam
Dim NoQ,TotalQ
NoQ = 5 'set no less than the totalquestions
'count no of questions in the xml file
'( or from database)
TotalQ = obj.selectNodes("data/question").length
Dim aQuest(),temp,isExist, strQ
ReDim aQuest(0) 'to store the question ids
'generate (=NoQ) question ids randomly
while ubound(aQuest) < NoQ
isExist = false
temp = Int((TotalQ * Rnd) + 1)
for i = 1 to ubound(aQuest)
if aQuest(i) = temp then
isExist = true
exit for
end if
next
if Not isExist then
Redim Preserve aQuest(ubound(aQuest)+1)
aQuest(ubound(aQuest)) = temp
strQ = aQuest(i) & "," & strQ
end if
wend
'remove the last comma ',' from strQ
strQ = left(strQ,len(strQ)-1)
'send the question in the strQ to the client
response.write strQ
'all further requests - after the first request
elseif trim(request("Action")) = "NextQ" then
'fetch the question from the XML Object
'and form the output string
temp = "data/question[@id=" & trim(request("QNo")) & "]"
set Node = obj.selectSingleNode(temp)
strXML = ""
strXML = strXML & ""
strXML = strXML & Node.selectSingleNode("qtext").text
strXML = strXML & ""
strXML = strXML & ""
strXML = strXML & Node.selectSingleNode("answer").text
strXML = strXML & ""
set Node = Node.selectNodes("choices/choice")
for i = 0 to Node.length-1
strXML = strXML & ""
strXML = strXML & Node.item(i).text
strXML = strXML & ""
next
strXML = strXML & ""
'send the output to the client
Response.Write (strXML)
end if
%>
QBank.xml
What does KB stand for?
Kilo Bits
Key Board
Kilo Bytes
None
3
CPU stands for
Central Processing Unit
Central Power Unit
Core Processing Unit
Core Power Unit
1
1 KB equals
1000 Bytes
1024 Bytes
1000 Bits
1024 Bits
Nothing
2
RAM is
Random Access Modifier
Primary Memory
Secondary Memory
Read And Modify
2
Hard Disk is
Hard to break
Primary Memory Storage
Temporary Memory Storage
Secondary Memory Storage
4
Computer Monitor is used
To monitor activities
To control Computer
As display unit
None
3
XML stands for
Extended Markup Language
Extended Model Language
Extensible Markup Language
Extensible Model Language
3
ASP stands for
Active Server Page
Application Service Provision
As Soon as Possible
All
1
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
没有查询到任何记录。
最新文章
迅雷新手完全入门手册
asp下面javascript上传图片限制格式大小方法告诉大家网页弹出窗口应用总结ASP常见错误类型大全asp常见错误分析和解决办法
人气排行
总是弹出visual studio 实时调试器 三种解决SQLSERVER存储过程及调用详解Asp获取真实IP地址ASP中连接Mssql的几种方法一个简单好用的UBB编辑器(含代码)如何用Split将字符串转换为数组并获取数组下ASP防止表单重复提交的办法告诉你免费的简单聊天室源代码
查看所有0条评论>>