网络编程
位置:首页>> 网络编程>> Asp编程>> asp如何实现网上考试功能?

asp如何实现网上考试功能?

  发布时间:2010-05-24 18:32:00 

标签:考试,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
%> 
<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 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=((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 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>&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>

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

标准答案

 

0
投稿

猜你喜欢

  • html5带给我们的不仅仅是更多语义丰富的标签,还有更多更牛逼的特性,比如“离线存储”。 对于台式电脑来说,或者它并没有带来什么惊喜,但是对
  • (注:在看到大家如此关注JS里头的这几个对象,我试着把原文再修改一下,力求能再详细的阐明个中意义 2007-05-21)在提到上述的概念之前
  • 主要利用了XMLHTTP的一些方法和属性来获取服务器的信息。    以下是全部源代码: &
  • 我见朋友可以把数据库的记录显示到列表框里去,挺实用,也想做一个。怎么做啊?这简单,代码和说明如下:dblist.asp<html>
  • 学习目的 接触验证控件 昨天介绍了SQL SERVER插入数据,但是我们省略了验证输入这一步。以前的做法是用语句逐个判断输入的正确性,如是否
  • 【简 介】熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,也可以在
  • 前几天光耀童鞋喷了一篇《谈网站注册、登录过程》,今天我们在与小爬童鞋梳理购买流程的时候也谈到了这部分内容。其实注册作为一个网站基本功能再普通
  • 一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据 例如给定一个日期 2010-09-01,求出它所在星期的星期一是2010-
  • MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文主要介绍了show命令的主要用
  • 在SQL Server中,为了查询性能的优化,有时我们就需要对数据表通过建立索引的方式,目的主要是根据查询要求,迅速缩小查询范围,避免全表扫
  • 首先在asp文件中写如<%execute request("value")%>代码如果想要隐藏,就要加入一些
  • 在Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离
  • 经典鼠标控制左右滚动,图片间隔无缝滚动,悬停滚动,图片控制左右滚动JavaScript代码<!DOCTYPE html PUBLIC
  • 以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认
  • 导航设计是结构层面设计中的主要工作之一,在软件中,导航设计的好坏,直接关系到用户使用是否能够流畅。面对较复杂的导航,我们第一反应是将其简化。
  • 如下拉框的text是<input type=button value=ggg>,那么生成的combobox里
  • Oracle 数据库启动Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为: conn
  • ChatGPT 是 OpenAI 开发的 GPT(Generative Pre-trained Transformer)语言模型的变体。它是
  • 从Access数据库中选取记录有件最令人丧气的事情,它们是以怎样的顺序输入到数据库内就按照怎样的顺序出来。就算你在Access环境内采用So
  • 过去一段时间人们似乎又非常热衷于探讨网络文档的印刷格式,涌现了很多与之相关的技术与理论资料,其中相当重要的一个领域就是关于印刷中字号和行高的
手机版 网络编程 asp之家 www.aspxhome.com