如何实现网上考试?_编程10000问教程-查字典教程网
如何实现网上考试?
如何实现网上考试?
发布时间:2016-12-29 来源:查字典编辑
摘要:login.asp'考生验证.=60Response.Write"幸好,您及格了!"&""elseResponse.Write"恭喜,您获得...

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="">&nbsp;</P>

<P title="">&nbsp;</P>

<P title="" align=center>考生:

<INPUT id=text1 name=name></P>

<P title="" align=center>密码:

<INPUT id=password1 name=passwd type=password></P>

<P title="" align=center>

<INPUT id=submit1 name=submit1 type=submit value="进入 " 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="">

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=((min<10) ? "0" : "")+min;

document.clcks.disp.value=((sec<10) ? "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>&nbsp;</P>

<P>

<%

i=1

rs.movefirst

do while not rs.eof%>

<P>&nbsp;&nbsp; <%=rs("question")%></P>

<TABLE align=center border=1 cellPadding=1

cellSpacing=1 width="80%">

<tr>

<td 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>&nbsp;</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 score<60 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]

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新编程10000问学习
    热门编程10000问学习
    编程开发子分类