当前位置 博文首页 > 如何实现网上考试?

    如何实现网上考试?

    作者:admin 时间:2021-08-17 18:51

    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="FONTSIZE: medium; FONTSTYLE: normal; FONTVARIANT:normal; FONTWEIGHT: 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) ? hrs12 : 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)

    '