随着校园网络在学多学校的建成,网络教学的重要性已经达成共识,学生通过网络可以自由地进行课程的学习与自我测试,但目前许多学校的网上自测系统需要人工阅卷与评分,计算机与网络的潜力并没有得到充分的发挥,针对此现象,笔者使用PHP和MySQL自行开发了一套基于B/S架构的学生在线自测程序,本程序的测试地址:http://www.vetedu.com/apps/onlinetest/。1程序功能简介1.1多门课程可共用同一系统本程序可对试题进行分类,可以使多门课程共存于同一系统内,学生可以自由选择要测试的课程,也可进行综合自测。1.2支持题型由于用计算机对主观题答案进行精确判断很难实现,所以本系统只支持客观题,包括判断题、单项选择、多项选择和不定项选择题。1.3阅卷与评分功能可以在用户浏览器中即可实现试题的自动阅卷和评分。1.4成绩记录功能可记录用户的成绩、试题的数量、完成答题所用的时间等,并进行排行显示。2系统主要模块2.1试题类别(课程)管理模块可以增加、修改及删除试题分类。删除试题分类时,则自动删除该分类下的所有试题。2.2试题管理模块可以增加、修改及删除指定的试题(包括参考答案)。2.3试卷生成模块根据用户指定的条件(试题类别、试题数量),随机从试题库中抽取试题,并将试题随机排序,生成试卷返回给用户的浏览器。2.4阅卷及评分模块用户完成答卷后直接在用户端进行阅卷和评分,这样可以有效地减少对服务器的请求次数。2.5成绩记录及排行显示模块若用户愿意,则记录用户的成绩并进行排行显示。3主要实现细节由于部分模块的技术部分很简单,与其他一些Web程序基本相似,本文仅说明与其他Web程序不同的关键部分。本程序将判断题也化归为只有两个选项的单项选择题,每个答案选项(题支)对应不同的数值,A对应值为1,B对应值为2,C对应值为4,D对应值为8,依此类推,比如答案为ADE,则对应值为1+8+16,即25。3.1试卷生成对于MySQL,用一句SQL语句就可以完成随机抽取试题:SELECT*FROMtestbookWHEREtType=$typeIDORDERBYrand()LIMIT0,tNmum;然后使用循环对记录逐行使用mysql_fetch_array()函数进行显示,在显示备选答案时,每行显示一个答案项,若该试题为单选(包括判断)题则用RadioButton显示,若为多选或不定项选择题,则使用Checkbox显示。下面函数的作用即为格式化输出备选答案functiondisplay_st($answer,$tLeixing)$s1="";$all_answer=$answer;$array_answer=explode("n",$all_answer);foreach($array_answeras$key=>$v)if($tLeixing<2)//0=判断题;1=单项选择题$temp="$v";else$temp="$v";if($key";else$s1.=$temp;return$s1;3.2判卷及评分每道试题内含一个表单,使用表单隐藏元素储存每道题的参考答案,判卷时遍历每道试题,根据用户的选择计算用户答案的值,与参考答案值进行比较,这部分功能使用Javascript在用户浏览器中实现:functionjudgeme(num_st)vari,j,temp_score;varnok=0;if(!is_finish(num_st))window.alert("您还有试题未答完,请先答完所有试题!");return;if(flag_stop)window.ale
php与mysql用什么架构图,用PHP与MySQL实现基于B/S架构的在线自测程序
最新推荐文章于 2024-03-29 15:06:17 发布