在线考试系统设计与实现精要

原创 2014年04月14日 00:15:27

1. 技术基础

也许这个问题你已经知道答案,但它的的确确困扰了我,以至于觉得实现考试系统是个麻烦事。这个问题是:后端如何获得学生的答案选项?

所有题目都是在一个<form>里,每个选项对应一个<input>,题目不同,<input>的name属性就不同,有多少个input就应该有多少个name属性。后端怎么知道有多少个input,如何枚举这些input的name属性值呢?

答案在下面,input name数组。

<?php
echo var_dump($_GET['choice']);
echo "<hr>";
echo json_encode($_GET['choice']);
echo "<hr>";
$ch = $_GET['choice'];
foreach($ch as $k => $v)
{   
    echo $k . "=>" . $v;
}   
?><form action="test.php" id="form1" name="form1" method="get">
<input type="text" name="choice[1]" value="A" />
<input type="text" name="choice[2]" value="B" />
<input type="text" name="choice[3]" value="C" />
<input type="text" name="choice[99]" value="D" />
<input type="text" name="choice[99][title]" value="Manager" />
<input type="text" name="choice[99][salary]" value="100" />
<input type="submit" type="text" name="submit" />
</form>
输出结果:


还有两个很重要、很方便的函数:serializeunserialize


多项选择的思路:

$ch = $_GET['choice'];

foreach($ch[100] as $o)
{
    echo $o;
}

<input type="checkbox" name="choice[100][0]" value="A" />
<input type="checkbox" name="choice[100][1]" value="B" checked />
<input type="checkbox" name="choice[100][2]" value="C" />

选中A,则输出A

选中B、C,则输出B、C

2. 数据设计

有了上面的基础后,数据设计就方便多了。

choice表:

 
choice_id 选项id
title 题干
body 选项(数组序列化存储)
answer 答案(数组序列化存储)
explain 答案解析

exam表:

 
exam_id 试卷编号
choice_id 题目编号


exam_session表:

 
user_id 用户id
exam_id 试卷编号
mark 试卷得分


exam_detail表

 
user_id 用户id
exam_id 试卷编号
choice_id 题目编号
user_answer 用户答案


3. 代码架构设计

场景1:题目录入。这个比较简单,就是一道道的题目录入,录一个进一个题库。

场景2:组卷。列出所有题目,每个题目前面一个复选框,选中若干题,然后提交即可。参考phpmyadmin

场景3:做题。选择一张试卷,查询出所有题目,然后输出。用户做题后提交。后端获得question题目编号、答案key-value对,计算答案正确与否。

场景4:勘误。将答案显示给用户,并标出对错。

场景5:查看历史试题。每次提交的试题都有历史记录,都可以在后台查看到。


4. 参考内容

一个非常不错的开源考试平台,php+mysql架构:http://www.phpems.net/



版权声明:本文为博主原创文章,未经博主允许不得转载。微信hustos联系博主。

基于Web在线考试系统的设计与实现

这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出,下载地址稍后贴出   数据库原理课程设计说明书              基于Web在线考试系统...
  • sdksdk0
  • sdksdk0
  • 2015年12月16日 17:39
  • 17971

基于Web在线考试系统的设计与实现

  • 2015年12月16日 17:46
  • 6.81MB
  • 下载

在线考试系统数据库的设计与实现

  • 2009年06月28日 22:38
  • 429KB
  • 下载

JSP在线考试系统设计与开发

  • 2010年03月19日 00:44
  • 4.25MB
  • 下载

Java的web在线考试系统设计(含源码)

  • 2014年08月30日 16:44
  • 17.79MB
  • 下载

基于Web的在线考试系统(含系统设计,源代码)

  • 2008年04月14日 23:31
  • 2.45MB
  • 下载

基于XML实现的在线考试系统

  • 2015年10月11日 22:05
  • 728KB
  • 下载

在线考试系统设计与实现精要

1. 技术基础 也许这个问题你已经知道答案,但它的的确确困扰了我,以至于觉得实现考试系统是个麻烦事。这个问题是:后端如何获得学生的答案选项? 所有题目都是在一个里,每个选项对应一个,题目不同,的nam...
  • maray
  • maray
  • 2014年04月14日 00:15
  • 2078

在线考试系统的设计与实现

  • 2008年05月31日 15:34
  • 1.2MB
  • 下载

java实现标准化考试系统详解(四)-----初始化操作实现

(一)初始化操作实现 如上图所示当管理员需要更改适用工程、试题数量、考试时间时直接在文本中更改就好我们只需要每次在用户打开程序时初始化这些参数就可以 1.初始化试题模型,这里需要实现随机抽...
  • android_for_James
  • android_for_James
  • 2016年06月22日 17:11
  • 1400
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在线考试系统设计与实现精要
举报原因:
原因补充:

(最多只允许输入30个字)