如何实现网上考试?
- 技术交流
- 2024-10-01 10:25:01
login.asp
' 考生验证.
<%@ Language=VBScript%>
<%
name=trim(request("name"))
passwd=trim(request("passwd"))
if name<>"" and passwd<>"" then
' 检查考生是否输入用户名和密码.
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver(*.mdb)};
dbq="& Server.MapPat("exercise.mdb")
set rs= server.createobject("adodb.recordset")
sql= "select * from user where user=
'" &name&"' and passwd='" & passwd &"'"
Set rs= conn.Execute(sql)
' 验证考生合法性.
if not(rs.eof) then
if rs("score")<>0 then
' 检查考生是否已参加过考试,若是则进行成绩查询.
response.write rs("user")&"的考试成绩是"&rs("score")
else
session("pass")=1
session("user")=name
response.redirect "test.asp"
end if
else
Response.Write "噢,您输入的用户名或密码不正确!"
end if
else
end if
%>
&nbsp;
&nbsp;
考生:
密码:
进入 " style="FONT-SIZE: medium; FONT-STYLE: normal; FONT-VARIANT:normal; FONT-WEIGHT: bold" title="">
test.asp
' 从题库中取题考试.
<%@ Language=VBScript %>
<%
if session("pass")<>1 then
response.redirect "login.asp"
else
end if
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};
dbq="& Server.MapPath("exercise.mdb")
sql="select * from test"
Set rs = conn.Execute( sql )
' 提取试题.
%>
' 以上是一个计时函数. ' 显示试题. 交卷> ' 评分并将成绩记录到数据库. dbq=" & Server.MapPath("exercise.mdb") ' 给出标准答案并评分. ' 将成绩存到数据库. [1]
' Time Hour Min Sec
&nbsp;
<%
i=1
rs.movefirst
do while not rs.eof%>
&nbsp;&nbsp; <%=rs("question")%>cellSpacing=1 width="80%">
%" width="50%">
%=i%> type=radio value="A"><%=rs("a")%>%=i% >
type=radio value="B"><%=rs("b")%>
%=i%>
type=radio value="C"><%=rs("c")%>%=i%>
type=radio value="D"><%=rs("d")%>
<%
i=i+1
rs.movenext
loop
%>
result.asp
<%@ Language=VBScript %>
&nbsp;
<%
name=session("user")
dim score
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver(*.mdb)};
sql="select ans from test"
Set rs = conn.Execute( sql )
ycorrect=0
rsCount=0
Response.Write "标准答案:"
Do while not rs.eof
Response.Write rs("ans")
rsCount=rsCount+1
if Request.Form(rsCount)=rs("ans") then
ycorrect=ycorrect+1
end if
rs.movenext
loop
Response.Write "
您的答案:"
score=int(ycorrect/rscount*100)
for i=1 to Request.Form.Count-1
Response.Write Request.Form(i)
next
Response.Write "
"
Response.Write "您的成绩:"&score
if score<60 then Response.Write "别难过,您不及格!"&"
"
else if score>=60 Response.Write "幸好,您及格了!"&"
"
else Response.Write "恭喜,您获得了优秀!"
strSql="insert into user (result) values ("&score&")
where user='"&name&"'"
conn.execute(strSql)
%>