站长:PHP开发在线考试系统的简单实现 |
***********************************************************
*[声明]本站所有原创文章,均为站长或用户独立创作,版权归本站所有.*
* 本站为非盈利兴网站,主张源代码开放和免费.本站所有原创文 *
* 章欢迎任何形式的转载,但是,为尊重作者本人的著作权,书面 *
* 转载请联系站长,网络转载请注明出处,谢谢合作. *
***********************************************************
用PHP开发一个在线考试(答题、多项目投票调查)系统,是经常遇到的一个话题。早就想针对这个话题做一点研究,但是一直在工作生活中没有遇到这样的项目,因此没有实际动手去做。今天有位朋友提起这个问题,经过考虑,形成了一点思路,做了一个简单的例子测试了一下,发现基本可行,现在将实现方法贴出来,大家一起研究。
这个例子我们只关心选择题部分。因为主观题一般不通过在线的方式考查,我们只关心单项选择题的实现。
比如有30道选择题,每道题有4个选项A B C D。这样,题目可以出在下面的questions.html里面。代码这样写:
questions.html
----------------------------------------------
<form action=test.php method=post>
1、中国第一位皇帝是:()<br>
A、<input type=radio name="q1" value="A">汉武帝
B、<input type=radio name="q1" value="B">秦始皇
.....
D、<input type=radio name="q1" value="D">那破论<br>
2、铁器最早出现在()<br>
A、<input type=radio name="q2" value="A">宋代
.....
30、。。。
A、<input type=radio name="q30" value="A">..
.....
<input type=submit value="提交">
</form>
通过以上纯HTML代码可以看出,比如一共30道题,那么用30组单选框来做。每一组的名字分别是q1,q2...q30。
然后用户作完题目,点击“提交”之后,提交到test.php。我们下面写test.php的代码:
test.php
-----------------------------------------
<?php
//把题目的答案从数据库中查询出来
//本例子中我们假设答案存放在字符串$anwser中
$anwser="ACDDABCBDDBCCDCCDACBBDBCDACDAB";
//判断用户一共答对多少题
$right=0;
for($i=0;$i<30;$i++}{
$anw=substr($anwser,$i,1);
$user_anw=$_POST["q".$i];
if($anw==$user_anw){
$count++;
}
}
//我们假设每道题目3分
$fenshu=$count*3;
echo "你的分数是:".$fenshu."<br>";
echo "共30题,答对".$count.",答错".(30-$count)."。<br>";
?>
这样即可实现。 |
|
|