基于PHP+AJAX技术的在线考试系统的设计与实现.docx
《基于PHP+AJAX技术的在线考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于PHP+AJAX技术的在线考试系统的设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。
基于PHP+AJAX技术的在线考试系统的设计与实现
郑州轻工业学院
本科毕业设计(论文)
题目基于PHP+AJAX技术的
在线考试系统的设计与实现
专业班级计算机科学与技术07-2
学号200712010206
院(系)国际教育学院
完成时间2011年5月23日
基于PHP+AJAX技术的在线考试系统
摘要
随着计算机技术、网络技术、数据库技术、飞速发展,社会开始迈入了信息化时代。
教育作为社会生活的重要部分,也受到了飞速发展的信息技术的冲击,信息技术对教育的巨大影响已经日益显现。
因此,基于网络的在线考试系统已经成为一个很重要的方向。
本系统采用B/S架构,依据传统考试流程进行合理的结构设计,界面大方简单,方便操作。
系统采用经典的WAMP架构,即WINDOWS+APACHE+MYSQL+PHP,提高了系统的兼容性。
系统被划分为三大模块,即用户注册/登录模块,考试模块和教师管理模块,系统流程图中描绘每一模块的基本功能。
本系统与传统的在线考试系统相比,由于采用PHP+AJAX技术的考试系统既融合了PHP语言安全性,简洁性,保证正常考试模块的实施,又可以提供在线考试所需要的无刷新功能。
这样,就可以有效地防止学生的错误而造成考试成绩出错。
关键词在线考试/PHP/AJAX/MYSQL/APACHE
THEDESIGNandrealizationOFON-LINEExaminationSYSTEMBASEDONPHP+AJAXTECHNOLOGY
ABSTRACT
Asthedevelopmentandpromotionofcomputertechnique,networktechnologyanddatabasegoesdeeperandfurther,humansocietygraduallystepintothesocalleddigitalage.Asanessentialpartofsociety,educationisexperiencingahugeimpactbythemodernizedinformationtechnology,whichhasalreadycomeupsomenewfeatures.Therefore,ithasbeenanindispensabledirectionfortheeducationimprovementtodeveloptheonlinetestbasedonnetwork.
Thereareminorshortagesontheexistingonlinetestsystem.Forinstance,theycannotsupportconstantlypreservingtheexaminees‘processincasethattheircarelessfaultyoperationleadingtotheexambecominginvalid.Somesafetyproblemexistedaswell.Comparedwiththesetraditionalonlinetestssystem,onlinetestsystembasedonPHPandAjaxtechnologyincludethesafenessandclearnessofPHPcharactertoguaranteethesmoothnessofallthetestpartsofthetestprocess.Theno-cachefunctionsupportedbytheAjaxtechnologycaneffectivelypreventstudentsfromthecertainfaultyoperationwhichcausedtheerrorresult.
TheframeworkoftheonlinetestsystemisB/S.Thestructuredesignedaccordedbythetraditionaltestprocess.Thelayoutofthesystemisfoundedontheprincipleofsimplenessandconvenience.Therearethreemoduleofthesystem,userregistration/loadmodule,examinationmoduleandmanagementmodule.Thedetailedflowchartillustratestherelevanttechnologiesandmethods.
KEYWORDSOnlinetestsystem,PHP,AJAX,MYSQL,APACH
1绪论
随着计算机网络技术的飞速发展,传统的考试手段已经不能够适应现在的发展需要,基于网络的在线考试正在逐步取代传统考试。
与传统考试相比,基于网络的在线考试能比较可观、公正的反映学生真实水平,又能节约人才、物力,提高考试效率;同时,计算机在线考试利用网络实现在线考试、评分等环节,实现教考分离,在一定程度上减少了影响考试的人为主观因素,同时减少了教师的工作量。
基于这些原因,开发在线考试系统已经成为必要[1]。
1.1项目背景介绍
在线考试系统利用网络手段将考试资源整合,实现了一定程度的无纸化考试,从而使考试这项常规而繁琐的任务变得更加方便,避免了以往学校考试纸张、笔、监考和巡考等各种资源的浪费,并且后台管理是管理员单一的管理,确保了程序的安全性。
在线考试系统管理员登录后,对考试内容、专业、科目和考试题目等都作了详细的分类,只要考生通过自己的学生编号和密码进入前台,按步骤依次进行选题和答题,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,解决了在学校考试后等待考卷分数通知的问题[2]。
1.2国内外研究现状
世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,采取措施推进教育信息化[3]。
美国政府在1996年提出了“教育技术规划(EducationalTechnologyInitiative)”,指出到21世纪初让全美国的每间教室和每个图书馆都将联上信息高速公路,让每个孩子都能在“21世纪教师”网络服务。
澳大利亚国家公共资源管理局已于1995年4月建立“澳大利亚教育网”,并联通Internet,该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小[4]。
网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。
特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。
例如在美国,一些著名的考试就采用了网上在线考试的形式包括Microsoft公司的MCSE(微软系统工程师认证考试)GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研究生入学考试)等等,并已广范应用[5]。
在国内,普遍地看绝大多数远程教育的考试还停留在传统考试方式。
在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。
但是对互联网的真正应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。
而在国外一些国家,网上提交作业和网上考试已经相当普及了。
所以说传统的考试方式已经不能适应现代考试的需要。
到1998年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台[5]。
作为网络课程重要组成部分的网络考试系统也相继问世,如北京师范大学的网络教学平台、上海交大的网络考试平台。
近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。
人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作的负担,提高工作效率[6]。
于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品。
比如全国计算机等级考试软件、职称计算机能力考试等等。
有力地推动了我国网络化在线考试的发展水平,并积累了大量有价值的经验。
1.3项目开发意义
在线考试系统提高了考试的可靠性、有效性和工作效率,降低了考试成本,顺应了社会的网络化趋势,必将成为一种不可或缺的考试方式[7]。
本文研究的目的是设计一个易于管理和维护的面向教学的考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。
为教师开展平时考核及期末考核提供一个考核平台;为学生利用网络自主学习提供条件;为不同课程的网上考试提供平台。
为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于B/S的三层体系结构:
用户层、业务逻辑层、数据库层。
要求建立后台数据库,内含一个试题样库,教师可以在题库中添加、编辑和删除试题;教师可以增加新的考试科目;可以充分利用题库中的试题由系统随机组卷,并能在指定时间内发布试卷[8];学生参加完考试能立即得到答案,并分析考试中答错的题目;教师能得到学生考试后传送到系统的反馈信息,可方便的对成绩进行查询和分析,同时对学生考试中出现的错误进行统计以便今后的教学。
此外,还应具有良好的用户界面,操作方便,尽量减少误操作率。
具有安全保密机制[9]。
1.4在线考试系统的优势
在线考试系统是利用计算机网络组织考试的综合性应用系统。
在线考试系统与传统的纸介质试卷考试相比具有以下优势:
(1)高效节约
传统考试在编写试卷、阅卷、成绩统计等方面需耗费大量的资源。
而采用计算机考试,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,从而可节约大量的人、财、物力及时间资源。
(2)准确公正
计算机考试系统主要处理的是标准化试题及试卷,它不但高效迅速而且准确避免人为因素,从而在一定程度上避免人为误差及人情分等问题,保证考试的公平公正。
(3)可有效杜绝考试的作弊现象
利用计算机考试各考生的试卷现场随机生成,可以试卷不同也可试卷相同而顺序不同,由此可在一定程度避免互相参看抄袭等作弊现象,从而达到考试成绩的公平性。
1.5本论文的组织结构
全文主要包含以下几个部分:
第一部分主要介绍了项目背景以及国内外发展现状和项目研究意义,第二部分介绍了系统设计所涉及的主要技术,主要包括AJAX技术、基于PHP语言的动态验证码技术、SESSION技术、CSS、JAVASCRIPT技术、JQUERY技术、数据库技术和Apache技术、MD5加密技术。
第三部分在系统设计目标、系统功能需求、系统性能需求、开发环境等方面对系统进行了详细的需求分析。
第四部分从系统总体设计、系统功能、数据库等几个方面进行了详细的设计。
第五部分主要对系统的关键性技术与功能页面的实现进行了详细的叙述。
第六部分对系统的功能测试以及测试结果进行了描述。
最后得出了结论,说明了系统的完整性和可行性。
1.6相关技术
本论文采用了基于网页设计的系统很常用的WAMP模式,即WINDOWS+APACHE+MYSQL+PHP.这种模式最大的优势就是简单,安全。
可以在短时间内快速的完成设计要求。
1.6.1AJAX
AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
通过AJAX,可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。
通过这个对象,您的JavaScript可在不重载页面的情况与Web服务器交换数据。
AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。
AJAX可使因特网应用程序更小、更快,更友好,同时AJAX是一种独立于Web服务器软件的浏览器技术。
AJAX基于下列Web标准:
JavaScriptXMLHTMLCSS在AJAX中使用的Web标准已被良好定义,并被所有的主流浏览器支持。
AJAX应用程序独立于浏览器和平台。
Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。
不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。
通过AJAX,因特网应用程序可以变得更完善,更友好。
1.6.2动态验证码
验证码技术是一种区分用户是计算机和人的公共全自动程序。
可以防止:
恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,XX社区),我们利用比较简易的方式实现了这个功能。
基于PHP语言的动态验证码技术可以实现验证码随机生成,动态验证等功能。
1.6.3SESSION
Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。
具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。
因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
由于Session是以文本文件形式存储在服务器端的,所以不怕客户端修改Session内容。
实际上在服务器端的Session文件,PHP自动修改session文件的权限,只保留了系统读和写权限,而且不能通过ftp修改,所以安全得多。
1.6.4JAVASCRIPT
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
1.6.5JQUERY
Jquery是继prototype之后又一个优秀的Javascrīpt框架。
它是轻量级的js库(压缩后只有21k),它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+)。
jQuery使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
简洁的思想:
几乎所有操作都是以选择DOM元素(有强大的Selector)开始,然后是对其的操作(Chaining等特性)。
1.6.6DIV+CSS
DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,DIV+CSS是一种网页的布局方法,这一种网页布局方法有别于传统的HTML网页设计语言中的表格(table)定位方式,真正地达到了w3c内容与表现相分离。
HTML语言自HTML4.01以来,不再发布新版本,原因就在于HTML语言正变得越来越复杂化、专用化。
XHTML语言是一种可以将HTML语言标准化,用XHTML语言重写后的HTML页面可以应用许多XML应用技术。
使得网页更加容易扩展,适合自动数据交换,并且更加规整。
在XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。
1.6.7MySQL
MySQL是一个小型关系型数据库管理系统。
MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1.6.8WebServer
WEB服务器也称为WWW(WORLDWIDEWEB)服务器,主要功能是提供网上信息浏览服务。
Apache是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试PHP程序的首选。
1.6.9MD5加密技术
MessageDigestAlgorithmMD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA。
2在线考试系统的规划
为了方便后期更快速的完成系统,前期对系统的规划显得尤为重要。
在线考试系统的规划包括系统设计目标,在线考试的功能对象,数据分析,设计思想等。
2.1系统设计的目标
在线考试系统是本人开发的一个在线考试平台。
该考试平台包含了登录注册模块,考生模块,与管理员模块三大部分。
主要功能有,用户登录与注册,考生考试,用户管理,错题管理,考试管理,试卷管理,题库管理,报表管理等多个功能,主要注重过程控制和结果的管理。
定位于节省考试过程中的成本,方便学生对考试过程与结果的反馈。
2.2在线考试的功能对象
本系统的用户可分为管理员(教师),普通用户(学生)两类。
考虑到系统的安全性,本系统共分成两个界面:
一个界面用于管理员和教师登录,主要负责进行基本资料、新闻、题库、试卷、成绩的管理以及查询等;另外一个界面用于考生和普通用户登录,主要负责修改个人资料、浏览考试新闻、在线考试、查询以往考试成绩等,系统应该实现下列功能:
包括试卷管理、题库管理、成绩管理。
2.3数据分析
(1)考生信息管理
考生信息管理包括学号、学生姓名、密码、所属专业及班级的管理。
考生需要注册登录本系统,其操作权限仅为参加考试和查询考试成绩。
不允许两台或两台以上计算机用同一用户ID同时登陆;
(2)试题信息管理
教师可以对各科目的各种类型的试题进行添加、编辑修改、删除和查询等操作。
添加考试题目信息时,需要选择所属的专业、科目,然后再进行添加。
(3)试卷信息管理
试卷信息管理一共包括三部分:
试题录入
教师首先选择试题所属科目。
若没有该科目,则可以新增加一个。
添加的科目基本信息有科目名称、题型、题量和考试总时间等,对于用户输入的不符合系统要求的数据,系统仍旧给出提示或警告。
返回、刷新一次页面,即可看到新增的科目名称。
而且,在本系统中其它需要选择科目的地方也会自动更新。
其次,每道试题有类型、试题内容、选项和答案等栏目。
教师输入完毕后即可预览。
如果输入不合法,或者该科题库中已有该试题编号和内容等,则系统会给出相应的提示或警告,以待更正。
试题修改
教师可以对试题进行修改。
试题删除
管理员可以删除不再需要的试题。
当然如果一个科目不需要,可以将整个科目删除。
(4)考试成绩信息管理
管理员和考生均可以通过该模块查询某科目考生的考试成绩。
另外,管理员还可以查询考试记录,来查看考生是否参加了考试。
对一些历史上的考试结果和成绩库进行删除和清理工作。
考生可以用自己的账号和密码登录并查阅成绩。
(5)老师信息管理
需要注册,并要得到系统管理员的审批确认。
该角色具有考生所没有的权限,即具有考生信息管理、考试题库管理以及试卷信息管理等操作权限;
(6)管理员信息
为系统的维护用户,该角色除了拥有教师管理员的所有操作权限外,还可以对教师、学生信息进行管理。
2.4设计思想
在线考试系统充分利用了Brower/Server结构的特点,实现了将考试系统移植到Internet的功能,该系统的优势在于极大的简化了老师出题的工作和学生考试的试题,做到了出题的多样性[10]。
目前比较流行的两种网络开发模式分别是Client/Server模式与Brower/Server模式。
Client/Server模式主要是在以局域网为基础的环境下展开应用的,它受到地域的限制。
而Brower/Server模式样通过Internet进行通信,可以不受地域的限制,但是它不能够进行联机事务处理,并县城在大量数据处理的情况下,速度较慢。
从目前的开发技术来看,Brower端作为信息收集源,特别是大量的数据录入工作还不能完全取代Client端的用户界面。
在这方面,Client端的各种开发工具的功能更加强大也更加灵活,而Browser端却由于其功能结构的限定过于“瘦小”。
对于本在线考试系统,其功能目标是实现将现有的纸张答题式考试向基于Internet的无纸张考试系统的转变,所以它必须实现整个考试流程的进行,实现对系统的账户不同管理,以及完成阅卷、评分这些环节的处理。
由于系统数据收集的实时性要求并不高,因此采用Browser/Server结构来进行设计是合理可行的。
图2-1是本系统的网络应用原理示意图。
Internet上的用户
系统服务器
系统后台数据库
图2-1考试系统原理示意图
3系统需求分析
需求分析就是解决“做什么”的问题,既是要全面地理解用户的各项要求,并准确地表达所接受用户的需求。
需求分析之所以在软件开发过程中具有举足轻重的地位,是因为它具有决策性、方向性和策略性的作用。
需求分析对于住宿管理信息系统的开发同样具有重要的作用。
3.1可行性分析
可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
该系统的可行性分析包括以下几个方面的内容。
可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。
对整个可行性研究提出综合分析评价,指出优缺点和建议。
为了结论的需要,往往还需要加上一些附件,如试验数据、论证材料、计算图表、附图等,以增强可行性报告的说服力。
3.1.1技术可行性
技术上的可行性:
技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。
该管理系统采用了当前新兴的Client/Server模式进行开发。
结合了Internet/Intranet技术。
数据库服务器选用MySQLAB公司的MYSQL数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。
它的灵活性、安全性和易用性为数据库编程提供了良好的条件。
因此,系统的软件开发平台已成熟可行。
硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
3.1.2经济可行性
经济可行性研究主要是预估费用支出和对项目的经济效益进行评价[10]。
在科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,一般的硬件平台