在线练习及考试系统的设计与实现
2018-07-28左匡天韩露男
左匡天 韩露男
摘要:随着计算机及网络技术的日益发展,传统的课堂教学面授模式、纸质化考试的形式已逐渐被网络教学、在线考试所取代。在线练习及考试系统作为网络教学和培训的一个重要环节,能充分利用资源、及时得到教学成果的反馈,进而针对性地对教学、考试做出适当地改进。该文基于PHP + MySQL技术论述在线练习及考试系统的设计与实现。
关键词:在线考试;在线阅卷;PHP5
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)11-0112-03
在传统的教学模式下,要求必须将学生几种在固定的地点,然后才能进行教学。同样的,在传统的纸质化考试,需要经过人工出题、学生考试、人工判卷、成绩评价和试题分析等多个步骤[1],并且需要规范化的考点和考场。复杂的考务流程让考务工作量越来越大,同时人工阅卷的方式也比较容易出错,由于人的天性,发生错误也很难被发现。只有充分利用现代网络、充分发挥计算机的优越性,才能将传统的考试模式所带来的人力物力财力的巨大投入降到最低。在线考试是当今教育普及和发展的必然要求,也是必然趋势。
目前,已经有很多教学机构选择网络教育作为传统教学的补充教学方式。网络教育逐渐普及,传统考试模式逐渐向在线考试转变。该文讨论利用PHP + MySQL技术搭建在线练习及考试系统平台,从系统结构、基本功能、考试流程、关键技术等方面进行论述。
1 系统结构的选择
C/S(Client/Server)模式和B/S(Browser/Server)模式是常见的开发模式[2]。C/S模式响应速度快,安全性高、操作界面丰富,但是在该模式下,用户必须在打电脑上运行程序,如遇到升级,所有安装有该客户端的都必须升级,较为繁琐。而B/S模式是以WEB技术为基础的新型模式,该模式简化客户端的操作,系统维护简单,用户操作也简单,仅需要熟悉浏览器即可。因为使用本系统的用户较为分散,所以选择B/S模式。
2 系统的基本功能
该考试系统的主要功能结构如图2所示。
其中,该系统的角色主要分为管理员、教师和考生三种角色,每种角色均需要对应的学号或工号和密码才能登录系统。管理员可对所有的用户信息进行维护;参加考试的学生或教师也可以自行修改自己的信息;教师用户或管理员用户均可以对试题库进行维护,试题库包括科目、章节、知识点等信息,教师或者管理员也可以对题型进行设置、修改和删除等,也可以对题目进行增加、删除、修改等操作,题目可以被导入与导出。系统还为题目的增加、删除、修改功能都提供了个别和批量操作功能。导入导出功能支持Excel,方便管理者对题目的编辑。
该系统考试管理包含四个部分的内容,管理员或者教师预先从题库中抽取题目,然后组成试卷,试卷管理含有三种组卷方式,分别为随机组卷、手工组卷、即时组卷,组卷时可以细化章节和知识点;考试设计包含考场管理、专业设置、科目管理、题型管理,其中考场管理可以对考试模式、试题排序、考试范围、模拟试卷与正式试卷绑定、考试模板、考试时间、正式考试次数、分数显示方式等管理;课程开通可以对考试开通情况进行管理;试题管理负责对试题的增加、删除、修改,包括对普通试题、题帽题管理和错题反馈。
3 考试流程与策略
3.1 考试流程
该系统最重要的部分之一是在线考试,另一重要部分是在线练习。考生登录系统后,开通考场,选择正式考试,然后系统会调出试卷,接着考生进行在线考试。考生在考试结束后,可以自主交卷,也可以到規定时间系统自动交卷并给予考生提示。该系统能够在很大程度上提高教师及教学管理人员的工作效率,也可以使考试变得更加公平、公正。此外,该系统还具有一定程度上的可扩充性,可以对考试科目进行设置及按照考试实际进行灵活地管理。该系统在线考试的整个流程如图3所示。
由于是在线考试,万一出现网络的不稳定或者计算机故障等问题,该系统在设计过程中充分考虑并处理了。该系统采用瘦服务端胖服务端的设计模式,该模式的处理主要思想是用JavaScript语言将相关数据保存到本地,用户在考试过程中只是对本地数据进行操作,这样就不存在网络中断导致无法考试的问题,同时将考生答案保存到本地,并每隔60秒上传到服务器,那么即使客户端司机,考生的答案还是存在的,在考试结束后,再将答案完整的写入数据库。
3.2 考试策略
该系统采用了较好的考试策略和安全策略,这样做,既能够保证系统的安全性和可靠性,也能够保证考试的公平性和公正性。
1)该系统采用考生端计算时间的方法,以此来减少服务器的负担,但这样的话,考生可以不断刷新页面来延迟考试结束时间。为了避免这种现象发生,当页面刷新时,考生电脑就会向数据库中的x2_examsession表中添加examsessionid、examsessionstarttime、examsessiontime项,并保留此次记录,系统默认成绩为0分,当考生将试卷提交后再对成绩进行修改。这样一来,就能避免考生通过刷新延迟提交试卷。
2)系统在考试时间结束时会自动提交试卷并且会提醒考生考试结束,这样做能够保证考生在规定时间完成考试。
3)为了防止考生在正规的考试时相互偷看试卷,系统在为每一位考生生成试卷时采取了随机组卷策略,可以打乱试题顺序,也可以选择难度系数相同的试题。这样也能够在一定限度上避免作弊行为发生,同时也能够在一定程度上保证考试的公平性[3]。
4 系统开发的关键技术
4.1 MVC设计模式概述
MVC是由Trygve Reenskaug提出,是“Model-View-Controller”的缩写,翻译成中文是“模式-视图-控制器”[4]。对于需求是界面设计可变的,这种设计模式将交互系统的组成分解为Model(模型)、View(视图)、Controller(控制器)三种部件。
模型是MVC设计模式的核心,封装了与程序的业务处理逻辑相关的数据和对数据处理的方法。模型享有对数据直接访问的权限,它独立于界面表达和I/O操作,例如它可以直接对对数据库进行操作。它不会依赖视图和控制器,不关心它是如何被显示或者是被操作的。但是,模型中的数据变化一般会被通过刷新机制来显示。
视图能够实现有目的显示数据,但是在理论上,这个不是必须的。在视图上一般不存在程序上的逻辑,但对于相同的信息可以有多个不同的显示形式或者视图,为了实现视图的刷新功能,视图需要现在数据模型上进行注册,然后才能访问。视图接收来自用户输入的数据和向用户显示相关的数据,但是它不会进行任何业务处理。
控制器在不同层面均起到组织作用,用于控制业务的流程。它需要先进行事件的处理,然后再做出回应。“事件”指的是用户的请求和变化了的數据模型。首先一个请求被用户输入,然后该请求被控制器接收到,控制器决定给哪个模型处理,然后模型通过业务逻辑处理被用户发送的请求,紧接着模型返回给视图需要的数据,视图根据设置好的显示样式呈现给用户页面。如图4是的模型、视图和控制三个模块各自的功能以及它们之间的关系。
4.2 设计数据库
根据上文的在线考试的功能需求,该系统需要在MySQL中建立用户信息表(x2_user)(见表1)和考试信息表(x2_examsession)(见表2)
4.3 访问WEB数据库
该系统采用MySQL数据库,是一个小型关系型数据库,由瑞典MySQL AB公司开发。MySQL支持多线程、多用户,由于体积小、访问速度快和开源的特点,使得许多中小型网站因为节约成本的需要而选择MySQL作为他们网站的数据库,甚至在中大型应用上,MySQL也能够胜任。
PHP实现对MySQL数据库的访问有三种方法:
1)使用PHP原生的方式去连接数据库,语法如下:
mysql_connect($host, $username, $password);
2)使用mysqli拓展连接数据库,语法如下:
new mysqli($host, $username, $password, $database);
3)使用PDO的方式连接数据库,语法如下:
new PDO("mysql:host=$host;dbname=$database", $username, $password);
其中host是服务器地址,可以是本地服务器也可以是远程服务器;username和password是数据库的账号和密码;dataname是数据库名。
PHP连接MySQL数据库的方式有两种,一种是永久连接,另外一种是非永久连接[5]。
永久连接是指在脚本结束之前不被关闭的连接。该连接的优势,当客户端与MySQL数据库请求非常频繁时,这种连接方式就会显得非常高效。
而非永久连接是,当客户端向服务器请求时,服务器一次性将所有的数据全部发送给用户浏览器,直到下一次客户端发送请求前,连接都会被断开。
该系统采用第一种连接方法,原因是PHP直接调用自身函数在时间上最短;该系统采用非永久连接,因为虽然永久连接的效率要比及时连接效率高的多,但是非永久连接可以避免永久连接带来的安全问题,也能够承载数据服务器的压力。
4.4 JavaScript技术
JavaScript是一种描述语言,它可以配合html语言直接在客户端运行,也可以在浏览器中运行;它配合CSS可以改变页面显示效果,能够十分华丽的显示,它是如今网页技术异步处理机制的基础,也就是不用整个页面刷新,可以提交部分数据到服务器,取得服务器的数据后再刷新页面。它有自己的引擎,引擎是内置在浏览器中的,大部分情况下都是配合HTML(一种标准标记语言)使用,完成HTML无法完成的页面效果,JavaScript被归类为直译语言。
该系统使用JavaScript主要用于动态修改浏览器页面、使用各种函数回应键盘鼠标对浏览器的操作、动态修改CSS样式、对用户输入数据进行限制、提取用户相关访问资料。
5 结束语
总而言之,成功的在线练习及考试系统离不开教学评价理论的指导,该文设计的基于PHP的在线练习及考试系统实现了真正的无纸化在线练习与考试,能满足不同科目的在线练习与考试需求,已经实现了随机抽题、组题、控制考试时间、恢复考试现场和计算机自动阅卷等功能。由于该系统是采用B/S的结构,系统具有良好的可维护性和可扩充性。如果对于考试科目和考试专业进行调整,只需要对试卷进行调整即可。与此同时,教师可以通过系统对章节、知识点进行统计分析,能够有效地对学生提供辅导。
参考文献:
[1] 赵跃欣. 在线考试系统的设计与实现[D]. 广州: 华南理工大学, 2015.
[2] 杨盛苑. B/S和C/S结合模式下在线考试系统的设计与实现[J]. 电子世界, 2015(21): 34-35.
[3] 郭飞军. 基于B/S的航海类函授在线考试系统的设计[J]. 中国成人教育, 2011(2): 47-48.
[4] 任广震, 侯进, 王献. MVC模式在B/S结构政务系统的应用研究[J]. 计算机应用与软件, 2014(8): 54-58,74.
[5] 赵鹤芹. 设计动态网站的最佳方案:Apache+PHP+MySQL[J]. 计算机工程与设计, 2007(4):933-934,938.