📄 test.asp
字号:
<%
' 通过Session对象中的非对象变量Pass来判断是用户是否合法登陆,
' 如没有通过Login.asp进行用户名和口令验证则视为非法用户,将
' 用户引导到Login.asp进行验证
If Session("Pass") <> 1 Then
Response.Redirect "Login.asp"
End If
s=10 ' 试卷题数
redim a(s, 5)
if not IsArray(Session("shiti")) then
' 使用Connection对象打开数据库文件
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Exercise.mdb")
objConn.Open
' 建立Recordset对象并返回表Topic所有记录,每一条记录为一道考试题
strSQL = "SELECT * FROM Topic"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 1, 1
zs=objRS.RecordCount
redim t(zs)
objRS.MoveFirst
for each j in t
j=0
next
' 随机抽取题号
Randomize timer
for j=1 to s
k=int(rnd*zs+1)
do while t(k)<>0
k=int(rnd*s+1)
loop
t(k)=1 ' 第k题被选中
next
j=1:i=1
' 循环选取数据集objRS中的部分记录存放到数组中
Do While Not objRS.Eof
if t(j)=1 then
a(i,1)=objRS("Question")
a(i,2)=objRS("A")
a(i,3)=objRS("B")
a(i,4)=objRS("C")
a(i,5)=objRS("D")
i=i+1
end if
j=j+1
objRS.MoveNext
Loop
b=a
For i=1 to s
redim f(4)
for each j in f
j=0
next
For k=1 to 4 ' 这个循环在数组f()中存放随机排列的1、2、3、4
j=Int(rnd*4+1)
Do While f(j)<>0
j=Int(rnd*4+1)
Loop
f(j)=k
if k=1 then f(0)=j ' f(0)中存放的是正确答案的序号
Next
a(i,0)=f(0) ' a(i,0)中存放的是正确答案的序号
For k=2 to 5 ' 重新调整选项顺序
a(i,k)=b(i,f(k-1)+1)
Next
Next
Session("shiti")=a
end if
Session("no")=1
%>
<HTML>
<HEAD><TITLE>网上考试</TITLE></HEAD>
<FRAMESET rows=125,*>
<FRAME src="Test1.asp">
<FRAME src="Test2.asp" name="Bottom">
</FRAMESET>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -