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
%>
html>
head>
META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
title>撼雪喷云之考生登录/title>
/head>
body>
FORM action="login.asp" id=
FORM1 method=post name=FORM1>
P title=""> /P>
P title=""> /P>
P title="" align=center>考生:
INPUT id=text1 name=name style="HEIGHT:22px; WIDTH: 103px">/P>
P title="" align=center>密码:
INPUT id=password1 name=passwd style="HEIGHT: 23px; WIDTH: 101px" type=password>/P>
P title="" align=center>
INPUT id=submit1 name=submit1 type=submit value="进入 " style="FONT-SIZE: medium; FONT-STYLE: normal; FONT-VARIANT:normal; FONT-WEIGHT: bold" title="">/P>
P title="" align=center>
/P>
/FORM>
/body>/html>
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 )
' 提取试题.
%>
script LANGUAGE="javascript">
var isn1=null;
var isn2=false;
today=new Date();
function stopit(){
if(isn2){
clearTimeout(isn1);
}
isn2 = false;
}
function startit(){
stopit();
isnclock();
}
function isnclock(){
var now=new Date();
var hrs=now.getHours();
var min=now.getMinutes();
var sec=now.getSeconds();
document.clckh.disp.value=""+((hrs>12) ? hrs-12 : hrs);
document.clckm.disp.value=((min10) ? "0" : "")+min;
document.clcks.disp.value=((sec10) ? "0" : "")+sec;
document.clck.disp.value=(hrs>=12) ? "p.m." : "a.m.";
isn1=setTimeout("isnclock()",1000);
isn2=true;
}
/script>
' 以上是一个计时函数.
html>
head>
META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
/head>
body onLoad="startit()" BGCOLOR="FFFFFF">
center>
' 调用计时函数显示时间.
TABLE BORDER=2>
tr>
td>Time/td>td>Hour/td>td>Min/td>td>Sec/td>td>/td>
/tr>
tr>
td>/td>
td VALIGN=TOP>FORM NAME="clckh" onSubmit="0">
INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="">
/FORM>/td>
td VALIGN=TOP>FORM NAME="clckm" onSubmit="0">
INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="">
/FORM>/td>
td VALIGN=TOP>FORM NAME="clcks" onSubmit="0">
INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="">
/FORM>/td>
td VALIGN=TOP>FORM NAME="clck" onSubmit="0">
INPUT TYPE="text" NAME="disp" SIZE=4 VALUE ="">
/FORM>/td>/tr>
/center>
FORM action="result.asp" id=FORM1 method=post name=FORM1>
' 显示试题.
P> /P>
P>
%
i=1
rs.movefirst
do while not rs.eof%>
P>   %=rs("question")%>/P>
TABLE align=center border=1 cellPadding=1
cellSpacing=1 width="80%">
tr>
td style="WIDTH: 50%" width="50%">
INPUT name=ans%=i%> type=radio value="A">%=rs("a")%>/td>
td>INPUT name=ans%=i% >
type=radio value="B">%=rs("b")%>/td>/tr>
tr>
td>INPUT name=ans%=i%>
type=radio value="C">%=rs("c")%>/td>
td>INPUT name=ans%=i%>
type=radio value="D">%=rs("d")%>/td>
/tr>
/TABLE>
%
i=i+1
rs.movenext
loop
%>
/P>
P>/P>
P align=center>INPUT id=submit1 name=submit1 type=submit value=交卷>
INPUT id=reset1 name=reset1 type=reset value=Reset>/P>/FORM>
/body>/html>
result.asp
' 评分并将成绩记录到数据库.
%@ Language=VBScript %>
html>
head>
META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
/head>
body>
P> /P>
%
name=session("user")
dim score
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver(*.mdb)};
dbq=" & Server.MapPath("exercise.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 "br>您的答案:"
score=int(ycorrect/rscount*100)
for i=1 to Request.Form.Count-1
Response.Write Request.Form(i)
next
Response.Write "br>"
Response.Write "您的成绩:"&score
if score60 then Response.Write "别难过,您不及格!"&"br>"
else if score>=60 Response.Write "幸好,您及格了!"&"br>"
else Response.Write "恭喜,您获得了优秀!"
strSql="insert into user (result) values ("&score&")
where user='"&name&"'"
conn.execute(strSql)
' 将成绩存到数据库.
%>
/body>/html>
[1]