繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 案例:如何实现网上考试?

案例:如何实现网上考试?

2006-07-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:下面就是满足你设想的几个主程序,你还可以在实际应用中不断完善和扩充: login.ASP ' 考生验证
关键字:案例 考试 如何 网上

下面就是满足你设想的几个主程序,你还可以在实际应用中不断完善和扩充:

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

%>

精彩春风之考生登录

FORM1 method=post name=FORM1>

&nbsp;

&nbsp;

考生:

密码:

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 )

' 提取试题

%>

' 以上是一个计时函数

' 调用计时函数显示时间

' 显示试题

&nbsp;

<%

i=1

rs.movefirst

do while not rs.eof%>

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

TimeHourMinSec

cellSpacing=1 width="80%">

type=radio value="A"><%=rs("a")%>

type=radio value="B"><%=rs("b")%>

type=radio value="C"><%=rs("c")%>

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)};

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 "
您的答案:"

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)

' 将成绩存到数据库

%>

exercise.mdb数据库,包含两个表:user 和test:

user表:

序号 字段名称 字段类型 字段大小 作 用

1 user 文本 20 考生名

2 passwd 文本 20 考生密码

3 score 数字 整型 考生成绩

test表:

序号 字段名称 字段类型 字段大小 作 用

1 question 文本 255 考试题目

2 a 文本 100 选项A答案

3 b 文本 100 选项B答案

4 c 文本 100 选项C答案

5 d 文本 100 选项D答案

6 ans 文本 2 标准答案

责任编辑:admin
相关文章