• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    网上考试设计思路是怎样的?

    global.asa 

    script LANGUAGE=VBScript RUNAT=Server >

    Sub Application_OnStart

       dbPath = "DBQ=" Server.Mappath("onlinetest.mdb")

       dbConnectionString =  "DRIVER={Microsoft Access Driver (*.mdb)}; " dbPath

       Set Application("Conn") = Server.CreateObject ("ADODB.Connection")

       Application("Conn").Open dbConnectionString

    End Sub

    Sub Application_OnEnd

       Application("Conn").Close

       Set Application("Conn") = Nothing

    End Sub

    Sub Session_OnStart

    End Sub

    Sub Session_OnEnd

    End Sub

    /script >

    ----------------------------------------------------------------------------------------------------------------

    注册页面index.asp。其中有两个输入域:用户名和口令,这两个输入域需要客户机端的javascript确认,以便不把它们作为空白域来传递。非考生要想参加考试必须先注册。这个页面还要显示一些错误信息,如“用户名或口令错误”、“请重新选择一个用户名”等。注册表单中还应包含考生一些个人的信息,如Emai、年龄、教育程度等。登录后,考生就可以参答考试站点的其它试卷了。

    index.asp

    title>撼雪喷云之网上考试设计思路/title>

    if (theForm.username.value == "")

    {

    alert("考生姓名\"User Name\"");

    theForm.username.focus();

    return (false);

    }

    if (theForm.password.value == "")

    {

    alert("考生口令\"Password\"");

    theForm.password.focus();

    return (false);

    }

    table border="0" cellpadding="0" >

    tr >

    td width="50%" >

    font face="Verdana" size="2" >姓名: /font >

    /td >

    td width="50%" >

    font face="Verdana" size="2" > input type=text name=username size=20 maxlength=50 > /font >

    /td >

    /tr >

    tr >

    td width="50%" >

    font face="Verdana" size="2" >口令: /font >

    /td >

    td width="50%" >

    font face="Vedana" size=2 > input type=password name=password size=20 maxlength= 50 > /font >

    /td >

    /tr >

    tr >

    td width="100%" colspan="2" align="center" >

    font face="Verdana" size="2" > br > input type="submit" value="提交" name="B3" >

    input type="reset" value="重写" name="B4" >

    /font >

    /td >

    /tr >

    /table >

    ----------------------------------------------------------------------------------------------------------------

    登录文件register.asp,当考生登录或新注册后,就显示这一页。我们可以利用它来询问考生的个人信息。该表单被提交后,转到sendregister.asp页面。

    ----------------------------------------------------------------------------------------------------------------

    验证和发送文件sendregister.asp。该页面从register.asp 中取得表单域的内容,查询数据库验证输入的用户名是否已经存在,如果存在,则将考生重新引回register.asp页面,并被提示要求重新选择用户名;如果用户名通过,则输入的内容就被传递并插入到数据库中。

    sendregister.asp

    sql_findmember = "select count(*) from loginuser where username = '" username "'"

    Set RS_findmember = Application("Conn").Execute(sql_findmember)

    If RS_findmember(0) > 0 Then

    Session("message") = ",您输入的名字已经存在,请重新选择一个名字!"

    response.redirect "register.asp"

    ' 如果RS_findmember(0) 返回的值大于0,用户就被引导回注册主页,并被要求填写一个新的用户名.

    End If

    If RS_findmember(0) = 0 Then

    sql_insert = "insert into loginuser (username,useremail,password) _

    values('" username "','" useremail "', '" pwd "') "

    Set RS_insert = Application("Conn").Execute(sql_insert)

    Session("message") = "THE ENtrY HAS BEEN INSERTED .. Thank You"

    response.redirect "index.asp"

    ' 如果RS_findmember(0) 返回的值是0,就表示用户名在数据库中不存在,名字就被存入.这意味着,考生可以参答站点其它的试卷了.

    End If

    username = replace(request.form("txt_name"),"'","''")

    ' 防止非法进入数据库哦.替换函数,当访问者键入了"'"单撇号,就用"''"代替.

    ----------------------------------------------------------------------------------------------------------------

    checkuser.asp

    ' 考生登录验证文件.

    sql_check = "select count(*) from loginuser where username ='" _

    username "' and password = '" useremail "'"

    ' 验证用户名和口令是否存在于数据库中.

    Set RS_check = Application("Conn").Execute(sql_check)

    If RS_check(0) > 0 Then

    Session("username") = request.form("username")

    response.redirect "default.asp"

    ' 如果已注册,引导到default.asp.

    End If

    If RS_check(0) = 0 Then

    Session("error") = "对不起,您的姓名或口令无效,请重新输入!"

    response.redirect "index.asp"

    ' 检查用户是否已经注册,如果返回值为0,表明用户名或口令无效,回注册页

    End If

    username = replace(request.form("username"),"'","''")

    useremail = replace(request.form("password"),"'","''")

    ' 替换函数.

    ----------------------------------------------------------------------------------------------------------------

    选择试卷页面default.asp。登录成功后,进入该页面。在这儿,考生可以选择的考试科目列表。在本设计中,用了001html 002html两个,在实际应用中,可以增加表格以增加考试科目数。default.asp 要求表格安装一个下拉菜单,其中包含科目的列表,然后查询数据库,从试卷的表格中搜集两个域。

    default.asp

    sql_papers = "select *id, topic from paper sort order by topic asc"

    SET RS_papers = Application("Conn").Execute(sql_papers)

     

    ' 以下代码是为了在下拉菜单中显示结果.

    select size=1 name=select1 onchange="msec(document.form1._

    select1.options[document.form1.select1.selectedIndex].value);" >

    option value="0" >选择科目考试

    %Do while not RS_papers.EOF% >

    option value=" %=RS_papers("id")% >" > %=lcase(RS_papers("topic"))% > /OPTION >

    %

    RS_papers.MoveNext

    Loop

    % >

     

    function msec(x)

    ' msec函数在X值的基础上调用 redirect.asp,把查询字符串: ?x的值作为下拉菜单中被选择的项的值.

    {if (x==0)

    { alert("欢迎参加撼雪喷云之精英考试,请选择一个考试科目!")

    }

    else

    { location.href="redirect.asp?section=" + x

    }

    }

    ----------------------------------------------------------------------------------------------------------------

    终于可以参加精英赛了!我们进入了试题页面redirect.asp。它将考生送到实际生成试题的ASP页面,如果数据库中没有所选择的科目的任何题目,就会显示错误信息和返回链接。如果数据库有题,则这一页就被重新引导到exam.asp页面,考生就可以进行在线考试了。

    redirect.asp

    id = Request.QueryString ("section")

    ' 调用查询字符串部分,将值存入变量 id.

     

    SQL = "select tbl_name from paper where id="id

    Set RS = Application("Conn").Execute(SQL)

    subject= RS(0)

    ' 再使用SQL声明传递试卷表格中的域名table_name,结果存储在subject.

     

    MyString = Split(subject,"tbl",-1,1)

    ' 分离变量subject,将其存储在MyString.注意,此处用Split 函数在客户端显示测验名是为了更好地显示.

    IF RS_subject.BOF AND RS_subject.EOF Then

    Response.Write Online " MyString(1) 题库正在创建中,请稍后再来! a href=default.asp >返回 /a >"

    Else

    Response.Redirect ("exam.asp?section="id )

    End If

    ----------------------------------------------------------------------------------------------------------------

    exam.asp是标准试卷页面,代码共分两大部分:计时器函数和本页查询选取试题。显示试题,并以单选按钮方式供考生答题。从数据库中选择的试题,本设计采用了随机函数,这也是目前题库生成试卷的通用方式。题目的个数设定为10个,考生每次回答5个。时间限定为20秒,剩余的时间在屏幕底部的状态窗口中显示。所有的试题都一起显示出来,然后开始计时。时间和试题个数都可以改变。

    exam.asp

    ' 以下是计时器函数.

    script language="javascript" >

    var ck=0;

    var tf=0;

    var timeUp=0;

    var timeLeft=0;

    var tcount=0;

    TimerFunc();

    function TimerFunc() {

    tf=window.setTimeout("TimerFunc();",1000);

    tcount++;

    timeLeft=20 - tcount;

    window.status = "嘻嘻,做得的好快哦,还剩" +timeLeft + "";

    }

    /script >

     

    id = Request.QueryString ("section")

    session("id") = id

    ' 查询字符串存储在一个 session("id"),按顺序启动查询.

    sql_tblname = "select tbl_name from paper where id="id

    ' SQL声明的目的是从试卷表格中找到表格名,如果找到了表格名就开始向指定表格的查询.

    Set RS_tblname = Application("Conn").Execute(sql_tblname)

    subject= RS_tblname(0)

    MyString = Split(subject,"tbl",-1,1)

    ' split函数从结果中去掉tbl, 本设计使用了表格名前加tbl前缀的命名惯例.

     

     

    sql_details = "select a.id, a.question, a.choice1, a.choice2,a.choice3, " _

    " a.choice4 from " subject " a where a.id="MyArray(Counter)

    ' 用随机函数生成从1-10之间的任意数字, MyArray(Counter)是已经生成的随机数字,用来从指定的科目表格中选取id.id,question,choice1,choice2,choice3,choice4都是科目表格域名.

    ----------------------------------------------------------------------------------------------------------------

    考试成绩单result.asp,显示结果,并将这些结果增加到数据库细节表格中,以供查询:

    result.asp

    for each item in Request.Form

    sql_check = "select Count(*) from "subject" where answer ='" Request.Form(item) "'"

    Set RS_check = Application("Conn").Execute(sql_check)

    if RS_check(0) > 0 then

    result = result + 1

    end if

    next

    ' 变量result存储结果.

      

    percent = round(( 100 * result )/count)

    ' 百分数换算.

    sql_id = "select id from loginuser where username='" Session("username") "'"

    Set RS_id = Application("Conn").Execute(sql_id)

    id= RS_id(0)

    SQL_insert = "insert into details (ref_id,subject,score) values('" id "','" _

    subject "', '" percent "') "

    ' 执行查询,将结果存储在数据库中.

    ----------------------------------------------------------------------------------------------------------------

    view.asp 文件查询是否在此参加过考试。

    view.asp

    sql_id= "select id from loginuser where username='" Session("username") "'"

    Set RS_id = Application("Conn").Execute(sql_id)

    id= RS_id(0)

    sql_count = "Select count(*) from details where ref_id = '" id "'"

    Set RS_count = Application("Conn").Execute(sql_count)

    If RS_count(0) > 0 Then

    response.redirect "viewrecord.asp"

    ' 如果已参加过考试,则转到viewrecord.asp页面.

    End If

    If RS_count(0) = 0 Then

    Session("noview") = ",您还没在我们这儿考过试呢!"

    response.redirect "default.asp"

    End If

    ----------------------------------------------------------------------------------------------------------------

    viewrecord.asp文件以表格形式显示注册用户的信息。

    viewrecord.asp

    sql_details = "Select *subject, score from details where ref_id = '" id "'"

    Set RS_details = Application("Conn").Execute(sql_details)

    ----------------------------------------------------------------------------------------------------------------

     

    [1]

    您可能感兴趣的文章:
    • php网上商城购物车设计代码分享
    • php 网上商城促销设计实例代码
    • 我的php学习笔记(毕业设计)
    • ASP.NET网站聊天室的设计与实现(第3节)
    • 管理员登录设计(第7节)
    • JavaWeb搭建网上图书商城毕业设计
    • C#影院售票系统毕业设计(1)
    • C#影院售票系统毕业设计(2)
    • C#影院售票系统毕业设计(3)
    • C#影院售票系统毕业设计(4)
    上一篇:如何实现网上考试?
    下一篇:可以让程序告诉我详细的页面错误和数据库连接错误吗?
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    网上考试设计思路是怎样的? 网上,考试,设计,思路,是,