首页 > 范文大全 > 正文

基于PHP和MySQL的考试系统的分析与应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于PHP和MySQL的考试系统的分析与应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:利用PHP和MySQL技术完成在线考试系统的制作,能够减轻机房工作人员的工作负担,优化学生考试的流程。该系统具有系统管理、在线考试两大功能模块,实现了用户管理、考试管理、成绩生成及查询等功能,从而极大的提高了工作效率。

关键词:在线考试系统;B/S结构;自动改卷

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)16-3787-03

Analysis and Application of On-line Examination System Based on PHP and MySQL

YU Xiao-rong

(Jiangsu University of Science and Technology, Zhenjiang 212003, China)

Abstract: Use PHP and MySQL technology to complete On-line Examination System, can reduce the workload of the staff room, optimize the process of student examination. It consists of two function modules which are system management and online examination. It implements many function modules, such as user information management,examination management,score accounting etc.Real applications show that the proposed method can greatly enhance the working efficiency.

Key words: on-line examination system; B/S; automatically correcting

随着网络和计算机科学技术的发展,传统的考试方式由于耗费了大量的人力、物力和资源,是不适合现代考试的需要,在线考试是现阶段研究开发的一个热点。与传统的考试形式相比,在线考试不但可以大量节省考试用纸,而且可以便于管理[1],有效地防止作弊,并增强考试结果的公平性。本文基于phpmysql开发了一套在线考试系统,改变了传统考试的模式,实现了现代考试的规范化和科学化,以更好地适应现代教育的需要。

1 系统开发平台

使用PHP进行WEB应用程序的开发[2],MySQL为数据库提供支撑[3-4],以Apache组成WEB服务器,设计开发基于B/S架构的在线考试系统。

2 在线考试系统的分析

根据在线考试系统的特点分为两个部分,考试管理和学生考试模块的设计。考试管理模块主要是用户管理、题库管理、教师出题管理、考试缺考查询模块、考试交卷查询模块、考试改卷模块等;学生考试模块主要是学生登录、自动抽题、自动下载试题、学生做题界面、自动上传答案、自动改卷界面等。图1为在线考试系统的管理功能结构,图2为在线考试系统的考试模块。

3 在线考试系统模块分析

3.1 用户注册及管理模块

3.1.1 增加学生

网上考试系统学生平时可以自己注册用户进行练习,也可由教师整体导入学生名单进行考试。

3.2 题库管理模块

题库管理模块负责所有题型的题目增、删、改等操作。题库管理通过MySQL数据库进行管理[5]。本系统目前设置了几种常见的题型,单选、多选、填空题、操作题等题型,如图4,图5显示了增加选择题的界面,可进行选择题的输入与修改操作。

3.3 教师出题模块

此功能用于考试前教师准备,在此界面,进行各种题目的选择与分数的设定。题目均从数据库中得到,每道题的分数由教师自行确定,比如此次考试多选题需要20题,每道题的分值设为2分,考试的时候在线考试系统会自动从题库中随机抽出20题,这样每个考生抽出的题目都不一样,而且题目顺序也不一样。同理其他题型出题方法也一样,总分根据教师选择的题目和分值自动汇总计算。所有题目设置好后保存,会将每一类的题目分值和总分值显示出来,这样考试题目就出好了。

4 在线考试系统考试模块的分析与设计

下面是学生考试系统进行考试的流程。

4.1 学生登录界面

学生输入已注册的用户名、密码或准考证号后进入考试。

4.2 自动抽题

进入考试后自动从题库中随机抽出考题。

4.3 学生做题界面

如图7过程就是学生考试的界面。

4.4 自动上传答案

学生做完题后,选择“交卷”即可自动上传答案。

5 在线考试的部分功能实现

1) 文件系统的准备

要进行考试的学生登录后,有些题目会用要电脑硬盘中的某些考试用的文件,需要在系统中建立好,可以用脚本语言实现,如下在电脑系统中建立了文件夹和文件。

$tempdir="c".$y;

if(file_exists($tempdir))

{

$tempfile1="$tempdir/!chk_".$x.".php";

if(file_exists($tempfile1))

unlink($tempfile1);

for($i=1;$i

{ $tempfile19="$tempdir/poi".$i.".ppt";

if(file_exists($tempfile19))

unlink($tempfile19); }

}

考试结束评分后,需要删除电脑硬盘中的文件夹和文件,以备下一场考试的需要,否则下一场考试的学生可以看前一场已做好的某些题目答案文件,如下是删除文件的方法。

If fso.FileExists("d:\jnjd\tj1.xls")=True Then

fso.DeleteFile("d:\jnjd\tj1.xls")

End If

2) 考试结束后,考试系统可以直接改卷,得出学生考试的分数,如下是单选题的自动改卷的方法示例。

$LoadAnsFile="!fenzhi.php";

$GetAnsLine=file($LoadAnsFile);

$Manyfen=count($GetAnsLine);

$FileOpen=fopen($LoadAnsFile, "r");

fclose($FileOpen);

for($i=1;$i

{

$fenzhi[$i]=trim($GetAnsLine[$i]);

}

$Score=0;

$Correct=0;

$LoadAnsFile="$dirwd/ans_".$UserID.".php";

$GetAnsLine=file($LoadAnsFile);

$HowManyAns=count($GetAnsLine);

$FileOpen=fopen($LoadAnsFile, "r");

fclose($FileOpen);

for($i=1;$i

{

$Ans[$i]=trim($GetAnsLine[$i]);

}

$LoadAnsFile="$dirwd/!dxa_".$UserID.".php";

if(file_exists($LoadAnsFile))

{

$GetAnsLine=file($LoadAnsFile);

$HowManyAns=count($GetAnsLine);

$FileOpen=fopen($LoadAnsFile, "r");

fclose($FileOpen);

for($i=1;$i

{

$Anstemp[$i]=trim($GetAnsLine[$i]);

}

if($Status!="Submited")

{

echo "警告!此次成绩作废

";

for($i=0;$i

{

$UserAns[$i]="0";

}

}

for($i=1;$i

{

if($Ans[$i]==$Anstemp[$i])

{

$Score=$Score+$fenzhi[1];

$Correct++;

}

}

}

6 结束语

该在线考试系统适用目前的很多考试环境,虽然现系统以办公自动化的考试为基础,但题型覆盖了目前的绝大多数题型,很容易改成其他的考试环境,即可用于平时的考试练习,又可用于正式的考试;并可以适合于分散自主式的考试模式,又可以在固定地点集中进行,极大的提高了工作效率。

参考文献:

[1] 贾小珠,潘振宽.基于WindowsNT的计算机知识与应用无纸化考试网络系统[J].青岛大学学报,2003,16(3):45-49.

[2] 刘乃丽.精通2.0+SQLServer2005项目开发[M].北京:人民邮电出版社,2007:259-324.

[3] 威利,汤姆森.PHP和MySQL Web开发[M].武欣,译.北京:机械工业出版社,2009.

[4] 三扬科技.大道PHP:LAMP+Zend+开源框架整合开发与实战[M].北京:电子工业出版社,2009.

[5] 聂庆鹏.PHP+MySQL动态网站开发与全程实例[M].北京:清华大学出版社,2007.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文