6月7 考试系统

类似于驾校考试的考试系统

使用到的是数据库表名为:

yhks(用户考试)表,yhkstm(用户考试题目)表,kemu(科目)表,shititimu(试题题目)表,xuanxiang(选项)表,timu(题目)表,shiti(试题)表

实现的功能:

1.进入考试界面

2.点击确定会进一步的确认以防按错

3.考试界面实现倒计时一次一道题点击确定自动跳转下一题

4.点击交卷并显示答案

代码部分(php代码在test0607)

1.选择考试

  1.1选择考试后台代码----xuanzeks.php

<?php
session_start();
include("../init.inc.php");

include("../DBDA.php");
$db = new DBDA();

$_SESSION["uid"] = "lisi";

$sst = "select * from shiti";
$ast = $db->Query($sst);

$smarty->assign("ks",$ast);
$smarty->display("xuanzeks07.html");

  1.2选择考试前端html代码-----xuanzeks07.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../../jquery-1.11.2.min.js"></script>
</head>

<body>
<h1>选择考试名称</h1>
<div>选择考试的试题:</div><br />
<form action="kaoshicl.php" method="post">
    <select name="st" id="st">
        <{foreach $ks as $v}>
        <option value="<{$v[0]}>"><{$v[3]}></option>
        <{/foreach}>
    </select>
<br />
<br />
<div id="xq"></div>
<br />
<br />

<input type="submit" value="确定开始" onclick="return confirm(‘确定要开始考试吗?请注意考试时间,时间到了自动交卷‘)" />
<br />

</form>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
    Showxq();

    $("#st").change(function(){

        Showxq();

        })

        function Showxq()
        {
            var code = $("#st").val();
            $.ajax({
                url:"xianshixq.php",
                data:{code:code},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                    //alert(data);
                        if(!data.trim()=="")
                        {
                            var lie = data.split("^");
                            var mf = lie[4]*lie[5];
                            var str = "<span>本次考试的时间是:"+lie[1]+"分钟,</span><span>本次考试题目的数量:"+lie[4]+",</span><span>每题的分值是:"+lie[5]+",</span><span>共计有:"+mf+"分</span>";

                            $("#xq").html(str);

                        }

                    }

                });
        }

});
</script>

  1.3选择考试处理代码------xianshixq.php

<?php
include("../DBDA.php");
$db = new DBDA();

$code = $_POST["code"];

$sql = "select * from shiti where code=‘{$code}‘";

$str = $db->StrQuery($sql);

echo $str;

2.考试页面

  2.1考试页面后台------kaoshi.php

<?php
session_start();
include("../init.inc.php");

include("../DBDA.php");
$db = new DBDA();

$st = $_SESSION["st"];// 试题代号
$uid = $_SESSION["uid"];//用户名

$adjs = $_SESSION["djs"];

$stm = "select * from shititimu where shunxu = 1";
$atm =  $db->Query($stm);

$stmmc = "select name from timu where code = ‘{$atm[0][2]}‘";
$name = $db->StrQuery($stmmc);

$sxx = "select * from xuanxiang where timu = ‘{$atm[0][2]}‘";
$axx = $db->Query($sxx);

$sall = "select * from shititimu where shiti = ‘{$st}‘";
$aall = $db->Query($sall);

$suser = "select * from users where uid = ‘{$uid}‘";
$auser = $db->Query($suser);

$sst = "select * from shiti where code = ‘{$st}‘";
$ast = $db->Query($sst);

$smarty->assign("all",$aall);
$smarty->assign("dyt",$atm);
$smarty->assign("tmmc",$name);
$smarty->assign("tmxx",$axx);
$smarty->assign("djs",$adjs);
$smarty->assign("user",$auser);
$smarty->assign("st",$ast);

$smarty->display("kaoshi07.html");

  2.2考试页面前端html代码------kaoshi07.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>考试</title>
<script src="../../jquery-1.11.2.min.js"></script>
<style type="text/css">
*{ margin:0 auto; padding:0}
#xinxi{ width:100%; height:100px; background-color:#09C; color:white; font-weight:bold; font-size:15px}
#timu{ width:100%; height:350px; padding-left:100px; font-size:20px}
#list{ width:100%; height:150px; background-color:#09C}
#left{ width:75%; height:100px; float:left}
#right{ width:25%; height:100px; float:left; font-size:30px; font-weight:bold; text-align:center; line-height:100px; vertical-align:middle}
.tmlist{ width:30px; height:30px; background-color:#0F3; margin:10px 0px 0px 10px; font-weight:bold; color:#FFF; float:left; font-size:20px; text-align:center; line-height:30px; vertical-align:middle; cursor:pointer }
</style>
</head>

<body>
<h1 align="center">考试页面</h1>
<div id="xinxi">
    <div id="left">
        <div><span>姓名:<{$user[0][2]}></span></div><br />
        <div>
            <span>考试名称:<{$st[0][3]}>,</span>
            <span>考试时间:<{$st[0][1]}>分钟,</span>
            <span>所属科目:<{$st[0][2]}>,</span>
            <span>题目数量:<{$st[0][4]}>,</span>
            <span>分值:<{$st[0][5]}></span>
        </div>
    </div>

        <div id="right">
            <span id="fen" style=" margin-right:8px"><{$djs[0]}></span>:
            <span id="miao" style=""><{$djs[1]}></span>
        </div>

</div>

<div id="timu">
    <div id="bt">
        <{$dyt[0][3]}>、<{$tmmc}>
    </div>

    <div id="xx">
        <{foreach $tmxx as $v}>
            <div><input type="checkbox" class="xx" value="<{$v[2]}>" />&nbsp;<{$v[2]}>:<{$v[1]}></div>
        <{/foreach}>
    </div><br />
        <div id="btn"><input type="button" bs="<{$dyt[0][2]}>" shunxu="<{$dyt[0][3]}>" value="确定" id="sure" /></div>
</div>

<div id="list">
<div style="width:75%; float:left">
    <{foreach $all as $v}>
    <div class="tmlist" tmdh="<{$v[2]}>"><{$v[3]}></div>
    <{/foreach}>
</div>

<div style="width:25%; float:left">
    <input type="button" value="交卷" id="jiao" />
</div>

</div>

</body>
</html>
<script type="text/javascript">

$("#jiao").click(function(){

    $.ajax({
        url:"jiaojuan.php",
        dataType:"TEXT",
        success: function(data){

            var str = "考试结束!总分是:"+data;
            alert(str);
            }

        });

    })

    window.setInterval("dao()",1000);

    function dao()
    {
        $.ajax({
            url:"daojishi.php",
            dataType:"TEXT",
            success: function(data){
            var sj = data.trim().split("|");

            $("#fen").html(sj[0]);
            $("#miao").html(sj[1]);

                }

            });
    }

    $("#sure").click(function(){

            DianJi();

        })
function DianJi()
{
    //向数据库添加第一条信息
    var tmdh = $("#sure").attr("bs");
    var xx = $(".xx");
    var str = "";
    for(var i=0; i<xx.length;i++)
    {
        if(xx.eq(i).prop("checked"))
        {
            str  =str+xx.eq(i).val()+",";
        }
    }
    str = str.substr(0,str.length-1); //用户答案
    var shunxu = $("#sure").attr("shunxu");
    //alert(shunxu);
        $.ajax({

            url:"dati.php",
            data:{tmdh:tmdh,da:str,sx:shunxu},
            dataType:"JSON",
            type:"POST",
            async:false,
            success: function(data){
                //标题里面显示顺序,题目名称

                var bt = data.shunxu+"、"+data.tmmc;
                $("#bt").html(bt);

                var str = "";
                for(var i=0;i<data.xuanxiang.length;i++)
                {
                    str = str+"<div><input type=‘checkbox‘ class=‘xx‘ value=‘"+data.xuanxiang[i][2]+"‘ />&nbsp;"+data.xuanxiang[i][2]+":"+data.xuanxiang[i][1]+"</div>";    

                }

                $("#xx").html(str);

                var btn = "<input type=‘button‘ bs=‘"+data.tmdh+"‘ shunxu=‘"+data.shunxu+"‘ value=‘确定‘ id=‘sure‘ />";
                $("#btn").html(btn);

                }

            });

            $("#sure").click(function(){

                DianJi();

                })

}
$(".tmlist").click(function(){

    var tmdh = $(this).attr("tmdh");
    var shunxu = $(this).text();

    $.ajax({
            url:"xuanzetm.php",
            data:{tmdh:tmdh,sx:shunxu},
            dataType:"JSON",
            type:"POST",
            async:false,
            success: function(data){
                //标题里面显示顺序,题目名称
                var bt = data.shunxu+"、"+data.tmmc;
                $("#bt").html(bt);

                var str = "";
                for(var i=0;i<data.xuanxiang.length;i++)
                {
                    str = str+"<div><input type=‘checkbox‘ class=‘xx‘ value=‘"+data.xuanxiang[i][2]+"‘ />&nbsp;"+data.xuanxiang[i][2]+":"+data.xuanxiang[i][1]+"</div>";

                }

                $("#xx").html(str);

                var btn = "<input type=‘button‘ bs=‘"+data.tmdh+"‘ shunxu=‘"+data.shunxu+"‘ value=‘确定‘ id=‘sure‘ />";
                $("#btn").html(btn);

                }

            });

            $("#sure").click(function(){

                DianJi();

                })
    })

</script>

  2.3考试处理后台-----kaoshicl.php

主要作用是将试题代号,用户名存入session,从数据库中计算考试时间,显示倒计时,点击题目下的确定向yhks表存入数据,考试的前提工作

<?php
session_start();

$st = $_POST["st"];
$_SESSION["st"] = $st;//考试题目代号
$uid = $_SESSION["uid"];
$time = date("Y-m-d H:i:s");

include("../DBDA.php");
$db = new DBDA();

$sql = "select shijian from shiti where code =‘{$st}‘";
$sj = $db->StrQuery($sql);

$sks = "insert into yhks values(‘‘,‘{$st}‘,‘{$uid}‘,0,‘{$time}‘)";
$db->Query($sks,1);

$id = $db->conn->insert_id;

$_SESSION["ksid"] = $id;

if(empty($_SESSION["djs"]))
{
    $_SESSION["djs"] = array($sj,00);
}
header("location:kaoshi.php");

  2.4倒计时处理页面------daojishi.php

<?php
session_start();

$attr = $_SESSION["djs"];
//var_dump($attr);

$fen = $attr[0];
$miao = $attr[1];

if($miao>0)
{
    $miao--;
}
else if($miao==0)
{
    $miao = 59;
    $fen--;
}
$attr[0] = $fen;
$attr[1] = $miao;

$_SESSION["djs"] = $attr;

echo "{$fen}|{$miao}";

if($miao==0 && $fen==0)
{
    echo "交卷";
}

  2.5答题过程中点击确定自动跳向下一题,ajax处理页面------dati.php

<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$ksid = $_SESSION["ksid"];//试题代号
$tmdh = $_POST["tmdh"];
$yhda = $_POST["da"];
$shunxu = $_POST["sx"];

//echo $yhda;

//向数据库添加数据
$spd = "select count(*) from yhkstm where kaoshi=‘{$ksid}‘ and shunxu=‘{$shunxu}‘";//判断是否已经答过题

if($db->StrQuery($spd)==1)
{
    $sql = "update yhkstm set yhda = ‘{$yhda}‘ where kaoshi=‘{$ksid}‘ and shunxu=‘{$shunxu}‘";
    $db->Query($sql,1);
}
else
{
    $sql = "insert into yhkstm values(‘‘,‘{$ksid}‘,‘{$tmdh}‘,‘‘,‘{$yhda}‘,‘{$shunxu}‘)";
    $db->Query($sql,1);    

}

//跳向下一题

//根据考试ID找到试题ID
$sstid = "select shiti from yhks where code = ‘{$ksid}‘";
$stid = $db->StrQuery($sstid);
//根据试题ID,和顺序找下一个题目
$shunxu++;

$sxyt = "select * from shititimu where shiti = ‘{$stid}‘ and shunxu=‘{$shunxu}‘";
$axyt = $db->Query($sxyt);

$stmmc = "select name from timu where code = ‘{$axyt[0][2]}‘";
$tmmc = $db->StrQuery($stmmc); 

$sxx = "select * from xuanxiang where timu=‘{$axyt[0][2]}‘";
$axx = $db->Query($sxx);

$attr = array("shunxu"=>$axyt[0][3],"tmdh"=>$axyt[0][2],"tmmc"=>$tmmc,"xuanxiang"=>$axx);

echo json_encode($attr);
//var_dump($attr);

  2.6点击尾部图标自动跳转题目,ajax处理页面------xuanzetm.php

<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$tmdh = $_POST["tmdh"];
$shunxu = $_POST["sx"];
$ksid = $_SESSION["ksid"];//

//根据考试ID找到试题ID
$sstid = "select shiti from yhks where code=‘{$ksid}‘";
$stid = $db->StrQuery($sstid);

//根据试题ID,和顺序找下一个题目
$sxyt = "select * from shititimu where shiti = ‘{$stid}‘ and shunxu=‘{$shunxu}‘";
$axyt = $db->Query($sxyt);

$stmmc = "select name from timu where code = ‘{$axyt[0][2]}‘";
$tmmc = $db->StrQuery($stmmc); 

$sxx = "select * from xuanxiang where timu=‘{$axyt[0][2]}‘";
$axx = $db->Query($sxx);

$attr = array("shunxu"=>$axyt[0][3],"tmdh"=>$axyt[0][2],"tmmc"=>$tmmc,"xuanxiang"=>$axx);

echo json_encode($attr);

  2.7点击交卷并显示所考的分数------jiaojuan.php

<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$ksid = $_SESSION["ksid"];
$uid = $_SESSION["uid"];

$sks = "select * from yhks where code =‘{$ksid}‘";
$aks = $db->Query($sks);

//查看分值
$sfz = "select fenzhi from shiti where code = ‘{$aks[0][1]}‘";
$fz = $db->StrQuery($sfz);

$zf = 0;//开始总分

$sda = "select * from yhkstm where kaoshi=‘{$ksid}‘";
$ada = $db->Query($sda);

foreach($ada as $v)
{
    $v[2];//题目
    $v[4];//答案

    $szq = "select daan from timu where code =‘{$v[2]}‘";
    $zqda = $db->StrQuery($szq);//正确答案

    if($v[4]==$zqda)
    {
        $zf = $zf + $fz;
    }
}

$sxg = "update yhks set fenshu = ‘{$zf}‘ where code = ‘{$ksid}‘";
$db->Query($sxg,1);

echo $zf;

  

时间: 2024-10-10 01:43:24

6月7 考试系统的相关文章

在线考试系统测试报告

1.项目名称:                    在线考试系统 2.用户需求规格说明书URL:http://www.cnblogs.com/yinll314/p/6061359.html 3.组长博客URL:              http://www.cnblogs.com/yinll314/ 4.代码git URL:               ssh:[email protected]:handsomeman/examm.git                           

数据结构技能考试系统

通过一个月的努力,终于把数据结构技能考试系统用C++的语言实现(其中有C语言的穿插),系统的最大优点是可以检测学生答题时是否插入了U盘,打开了word及记事本等辅助工具.此系统分为两部分,一部分是学生端,一部分是教师端. 学生端主要是学生输入学号及姓名(对此进行检测),根据学号的后四位对应的ASCII码模8求值,达到抽题的效果(也可适当改进改为IP读题),在题库中抽取两道题,随机答一道题即可,在完成作答后选择所作的试题,避免了选题后不会做的情况.抽题时显示倒计时,时间为60分钟,如若超时,允许的

[JAVA考试系统]项目总结

 ITOO项目共分为两个方向:JAVA..NET. 而考试系统又是JAVA方向中,业务逻辑最为复杂的一个. 在被'考试系统'坑了'100天'以后,我仍然期盼能得到一个相对完美的结局. 项目开发周期: 11.10-01.27:参与ITOO1.0考试系统开发 01.28-02.16:担任ITOO2.0考试系统组长 第一次迭代 主要以:需求确定.原型设计.实体设计,为主.项目的开发只是涉及到单表的CRUD. (一)需求和原型的设计   立足于去年.NET的考试系统.这样的做法有利有弊: 1.利  

在线考试系统从Windows系统迁移到Linux系统的整个过程

原运行环境: 操作系统:Windows Server 2003 数据库系统:MySQL Server 5.0 Web服务器软件:Apache2 编程语言:PHP 现运行环境: 操作系统:CentOS release 6.8 (Final) 数据库系统:MySQL Server 5.5.52 Web服务器软件:Apache/2.2.15(Unix) 编程语言:PHP   迁移步骤: 1.迁移程序:首先把Windows下的考试系统exam文件夹打成压缩包,然后上传到Linux服务器的Apache下的

网上在线考试系统Final Review报告

项目:网上在线考试系统 组名:金州勇士 组长:尹良亮 组员:杜月.王汉斌.闫浩楠 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 对学生进行在线的考试,使传统繁琐的考试过程变得更加简便.定义很清楚.典型用户是教师和学生,典型场景是考试. 2.是否有充足的时间来做计划? 有充足的时间来做计划,但是计划会随着项目的推进做出更改. 3.团队在计划阶段是如何解决同事们对于计划的不同意见的? 对不同意见进行讨论,最终由组长决定. 计划 1.原计划的工作是

Bug测试报告--在线考试系统--金州勇士

项目名:在线考试系统 组名:金州勇士 测试者:宫丽君(nice!团队) 代码地址: ssh:[email protected]:handsomeman/examm.git     https://git.coding.net/handsomeman/examm.git 团队产品规格说明书:http://www.cnblogs.com/yinll314/p/6061359.html 看到的现象: 培训签到里点击评论,写完评论内容以后点击提交,虽然提交成功,但是文本框里仍然有之前评论的内容. 期待的

在线考试系统(Online Exam System)--ASP.NET

用户设计 -|学生 -|老师 -|管理员 学生结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|选课中心 -|显示所有老师所开课的信息可进行选课 -|显示自己已选课程 -|在线考试 -|对已选老师开设的课程选择进行考试 -|成绩查询 -|查看自己考试成绩   老师结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|课程管理 -|显示学校开设的课程(老师可选择添加课程) -|显示老师开设的课程 -|考试管理 -|显示老师自己开设的课程 -|对课程添加试题(选择.填

教务考试系统的总结

教务考试系统的总结 教务考试过去不久,也经历了好几次,经过许许多多的师哥师姐以及同学们的努力建 立.调试.测试.监考,还经过头脑风暴的交流以及总结,下面做一些文字的小结,在 以后我们自己做系统是自己能做到更好:                                                            一.考试系统本身: 1.界面 (1)英语听力界面进度条看不见,应该可以设成一直在题目上端的,有利于大家看到时 间,合理安排. 2.考试过程出现问题: (1)好的系统应该是

细节&amp;&amp;态度(考试系统导人员收获)

管理学院的统计学考试进行了三个晚上,在大家齐心协力的努力下,圆满结束了~!第一天晚上的时候,出现了两个转专业的学生出错,由于自己的疏忽大意,之前并没有给这两个学生修改信息,导致考试的过程中差点乱了阵脚!经过米老师的关爱之后自己真的恍然大悟,受益匪浅,为什么什么问题到了老师那都会变得那么简单? 其实每个问题都很简单,每个复杂的问题也是由若干个简单的小问题构成的,至于难不难关键就在于思考者的思维了!既然每个问题都很简单,那么又为何要把他们混为一谈变得那么复杂呢?这点真的很值得自己深刻反思一下! 知道