一、基本信息
标题:基于MySQL 的在线考试系统分析与设计
时间:2016
出版源:张家界航空工业职业技术学院
领域分类:计算机与信息技术
二、研究背景
问题定义:随着计算机技术在教育领域的应用,在线考试系统已成为各类院校教学考核工作中的一个重要环节。采用MySQL 多用户、多线程SQL 数据库服务器以及CakePHP 快速开发框架,设计和实现在线考试的功能。
难点:面向对象与关系数据库存在的互不匹配现象的技术。
相关工作: MySQL;在线考试;系统开发;核心代码
三、研究内容
1 在线考试系统功能分析
在线考试系统流程图
在线考试系统开发环境
本系统采用对象关系映射(Object Relational Mapping)来访问MySQL 数据库,这是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象—关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。实际应用中即在关系型数据库和业务实体对象之间作一个映射, 这样,在具体操作业务对象的时候,就不需要再去和复杂的SQL 语句打交道,只要像平时操作对象一样操作它就可以了。
在线系统的核心代码
考试页面的实现是整个考试系统的核心。这个页面涉及后端的试题随机抽选,前端的试卷自动排版,考试计时,以及答案提交及自动判卷和分数统计。整个页面的流程和逻辑实现较为复杂。也是该系统的核心所在。
public function exam(){ if($this->Auth->loggedIn()){
//单选随机生成
$all=$this->Question->find('list',array('conditions' =>array
('Question.type'=>'单选'),'Question.id'));
$all=array_rand($all,10);
//不定项随机生成
$another=$this->Question->find('list',array('conditions'=>array
('Question.type'=>'不定项'),'Question.id'));
$another=array_rand($another,10);
$examList=array_merge($all,$another);
$questionData=$this->Question->find('all',array('conditions'=> array('Question.id' =>$examList),'fields' =>array('User.name','Ques- tion.user_id','Question.type','Question.id','Question.question','Ques - tion.created','Question.modified','Question.answer'),));
$a= Hash::extract($questionData, '{n}.User');
$b= Hash::extract($questionData, '{n}.Question');
$questionData= Hash::merge($b,$a);
$this->response->type('json');
$this->response->statusCode(200); $this->response->body (json_encode(array('success' =>true,"loggedIn" =>true,'question' =>
$questionData,'all'=>$examList))); return $this->response;};
四、结论
本文论述的在线考试系统使用MySQL 建立一个关系数据库,用CakePHP 来实现数据的操作,设计出符合实际需求、易于理解、易于操作、易于维护的数据库和操作系统。在线考试系统的应用使课程考试变得更加灵活、规范,减轻了教师工作量,并在平时测验以及精品课程建设等方面发挥促进作用。
参考文献
[1] 王字.高校在线考试系统的设计与实现[J].价值工程,2010,29(8):228- 229.
[2] 唐俊武,南理勇,左强.在线考试系统开发中的几个问题及解决方法[J].计算机与数字工程,2005,33(8):144-147.
[3] 刘俊莉,颜俊松.基于 UML 的在线考试系统的分析与设计[J].计算机与现代化,2009, (7):113-116.
[4] 韩萌,王移芝,王嘉树.基于 Web 的通用在线考试系统的设计与实现[J]. 计算机工程与设计,2008,29(21):5608-5610.
[5] 徐其华.基于JSP+ MYSQL 在线考试系统的设计[J].中国科教创新导刊,2008,(10):208-209.