基于php的在线考试系统的设计与实现论文

基于php的在线考试系统的设计与实现论文

ID:24360338

大小:711.28 KB

页数:45页

时间:2018-11-08

上传者:Mosquito
基于php的在线考试系统的设计与实现论文_第1页
基于php的在线考试系统的设计与实现论文_第2页
基于php的在线考试系统的设计与实现论文_第3页
基于php的在线考试系统的设计与实现论文_第4页
基于php的在线考试系统的设计与实现论文_第5页
资源描述:

《基于php的在线考试系统的设计与实现论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

郑州轻工业学院本科生毕业设计(论文)题目:基于PHP的在线考试系统的设计与实现学生姓名:XXX专业班级:计算机科学与技术X班学号:XXXXXXXX院(系):国际教育学院指导教师(职称):XX(高工)完成时间:2016年5月20日 基于PHP的在线考试系统的设计与实现目录摘要IABSTRACTII1绪论11.1研究背景及意义11.2国内外研究现状分析11.3论文研究内容21.4论文组织结构22相关技术介绍42.1PHP简介42.1.1PHP概述42.1.2PHP特性42.1.3PHP应用及语法42.2MySQL数据库简介52.2.1MySQL介绍52.2.2MySQL特性52.2.3MySQL应用管理62.3WampServer简介62.3.1WampServer介绍62.3.2WampServer特点62.4ZendStudio简介6 基于PHP的在线考试系统的设计与实现2.4.1ZendStudio介绍62.4.2ZendStudio特点72.5Ajax介绍72.5.1Ajax技术核心72.5.2Ajax原理83系统需求分析93.1系统功能需求93.2系统用户分析103.3系统环境要求114系统总体设计134.1功能设计134.1.1登录134.1.2课程管理134.1.3题库管理154.1.4学生管理164.1.5试卷管理174.1.6考试管理194.2数据库设计204.2.1关系设计204.2.2表设计204.2.3操作MySQL数据库的类245系统实现25 基于PHP的在线考试系统的设计与实现5.1登录255.1.1考生登录255.1.2管理员登录255.2课程管理265.3题库管理275.3.1录入试题275.3.2修改试题275.4学生管理285.4.1设置专业285.4.2设置班级295.4.3设置学生295.5试卷管理295.5.1设置试卷295.5.2组卷305.5.4修改试卷315.6考试管理315.6.1在线考试315.6.2二次登录335.6.3设置考生335.6.4查询成绩345.6.5查询交卷考生356总结与展望36 基于PHP的在线考试系统的设计与实现6.1工作总结366.2研究展望36致谢38参考文献39 基于PHP的在线考试系统的设计与实现基于PHP的在线考试系统的设计与实现摘要随着互联网技术和数据库技术的发展,在线无纸化考试因其公正性、准确性、灵活性、及时性以及方便性等特点,已成为目前国际上普遍采用的一种考试方式,本系统的实现综合了网络技术与数据库技术,利用互联网更好的为学校教学管理服务。本系统主要有管理人员用户和学生用户两个子系统,系统管理员可以设置教师管理课程的权限,实现登录和退出、课程管理、题库管理、学生管理、试卷管理、考试管理等功能。系统以ZendStudio作为编辑工具,采用WampServer作为服务器,设计了一个采用B/S模式,依据系统设计原理,通过系统的结构设计、数据库的设计以及前端和后台服务器的开发,构建了一个以PHP作为开发工具采用MySQL数据库作为后台数据库,通过Ajax技术实现网络考试的各种功能。另外B/S模式的实现,也使得考试更加方便,客户端只要安装浏览器就能登录考试,不受地域限制,不同地方的考生可以同时参加考试。关键词在线考试;B/S;PHP;AjaxII 基于PHP的在线考试系统的设计与实现THEDESIGNANDIMPLEMENTATIONOFONLINEEXAMINATIONSYSTEMBASEDONPHPABSTRACTWiththedevelopmentofInternettechnologyanddatabasetechnology,onlinepaperlessexaminationforitsfairness,accuracy,flexibility,timelinessandconveniencefeatureshasbecomewidelyusedintheinternationalexaminationway,thesystemrealizeintegratednetworktechnologyanddatabasetechnology,theuseoftheInternetbetterfortheschoolteachingmanagementservice.Thesystemconsistofteachersandstudentssystem.Teachersactassystemadministrators.ItsfunctionincludeLogandexit,coursemanagement,questionbankmanagement,studentmanagement,papermanagement,testmanagementandsoon.ThesystemusestheZendStudioastheeditortool,WampServerasaserver.ItisbasedonBrowser/Servermode,accordingtothesystemdesignprinciplestoachieveonlinetestbydevelopmentofstructuraldesign,databasedesignandfront-endandback-endservers,anditusePHPasadevelopmenttooltouseMySQLdatabaseasbackenddatabase,networktestvariousfunctionsthroughAjaxtechnology.Ontheotherhand,theuseofBrowse/Servermakethetestismoreconvenience,theclientsimplyinstallthebrowsercanlogtotest,withoutgeographicalrestrictions,thecandidatesmaybeindifferentplacesatthesametimetaketheexam.KEYWORDSOnlineExamination,Browser/Server,PHP,AjaxII 基于PHP的在线考试系统的设计与实现1绪论1.1研究背景及意义伴随着互联网的发展,教育也迎来了互联网的春天,现代教育更加依托于互联网的应用,网上选课,发布通知,在线授课等形式层出不穷。随着教育形式的变革,教育环节中重要的一项考试方式也发生着改变,人们更加倾向于使用互联网在线考试,这样就不用受地理限制可以随时随地参加考试,同时也给阅卷老师减轻了许多负担,还节约了大量的纸张,因此在线考试必将成为现代化互联网教育不可或缺的重要部分。另外从硬件方面来说,计算机的更新换代已经达到的很高的水平,在教育上的应用也变得越来越普及,在线考试系统也会随之展现出其越来越多的优越性。1.2国内外研究现状分析在越来越重视知识的当今社会,各个国家都加大了在新一代培育上的投入,都希望在以后的社会发展中走在互联网的前列,从而在信息的飞速发展中占据一个有力的地位,正是这个原因,各地政府依托于互联网来实行教育教学,并把此作为其民族发展的动力之源。在外国,澳大利亚在早期就开始投资建设“澳大利亚教育网”,这个网络不但包含了澳大利亚全部的高校,还要联通本国境内的每一所中小学[1]。另外美国政府提出要到二十一世纪初,让本国家所有学校和图书馆都搭载上互联网的快车,让国内不论是哪个阶段的学生都可以享受到“21世纪教师”的网络服务,因此提出了“教育技术规划(EducationalTechnologyInitiative)”[2]。到了1995年末,国外一些教育机构开始开发自己的网上教育平台,最早的有美国的NTU、英国的OPENCOLLEGE等这些都是那个时候实施互联网教育的典范。随着教育搭载上互联网的高速公路,在线考试作为远程教育不可分割的一项,随着互联网的大潮也如雨后春笋般迅速发展起来,人们的选课和考试都在互联网上进行,特别是互联网业务的普及、低成本的在线考试从技术和经济条件上已经日趋成熟。在国内,从大多数来看,很大一部分的教育教学还普遍停留在传统的考试方式上,38 基于PHP的在线考试系统的设计与实现但是传统的考试每次都需要人为的出卷、组织考试、批改试卷并且做出许多试卷分析和成绩评估,作为老师,一次考试的实施给他们带来了许多的麻烦,并且随着教育现代化,考试类型的增加和考试要求的更加严格,教师的工作也会变得越来越繁重。而现在人们普遍认为的网络教育也是停留在网上报名和成绩查询,没有形成相应的规模,而国外网上提交作业和考试已经变得非常普及,所以传统考试方式终究要被替代,网上考试方式正在以燎原之势飞速发展[3]。1.3论文研究内容论文的主要研究对象是在线考试系统的设计与实现,通过本系统可以有效地解决传统纸质考试的不足从而推动教育教学的变革,进而提高教师工作的效率。论文主要利用PHP语言和MySQL数据库技术为基础,采用Ajax技术开发一个能够满足实际考试需求的在线考试系统,考试系统的主要实现功能如下:(1)系统分学生和教师两级权限登录,教师并且充当管理人员角色;(2)系统可以根据管理人员设定的试题类型,试题分值以及试题难易程度和数目自动生成试卷,也可以人工根据设置进行组卷,还可以修改试卷;(3)系统可以自动实现对客观题的判断,并给出分数;(4)管理人员可以设置考生考试时间、二次登录,并且可以延长考试时间;(5)管理人员可以设置学生所属专业、班级和该学生是否能参加考试;(6)管理人员可以查看考生的考试状态以及查询考试成绩;(7)学生可以参加该课程考试和交卷,考试结束可以自动显示自己成绩。1.4论文组织结构本文从实际出发,说明了在线考试系统的设计思想和实现方案,并分析了系统中用到的具体技术,介绍了关键部分的实现过程。第一章绪论。介绍了在线考试系统提出的背景,对国内外现状进行分析,介绍课题研究的主要内容。第二章相关技术介绍。介绍了构建系统所需的相关技术。第三章需求分析。详细分析系统需求并做出阐述。第四章系统总体设计。根据需求分析对系统做出设计。38 基于PHP的在线考试系统的设计与实现第五章系统实现。对系统的主要功能进行分步说明。第六章总结与展望。总结全文并展望今后的主要研究工作。38 基于PHP的在线考试系统的设计与实现2相关技术介绍2.1PHP简介2.1.1PHP概述PHP最早是由丹麦的拉斯姆斯·勒多夫发明的,它主要用于动态网页的制作,可以产生图形用户界面[4]。PHP应用广泛,这源于它能在大多数的网页服务器上执行,它需要嵌入在HTML语言中使用,所以和HTML代码一样,通过执行代码生成网页。另外一个值得说明的就是,他是完全免费的,并且还可以在目前市面大多数的操作系统和服务器上面运行,由于它是免费的,所以就需要有人去维护它的执行标准,这个任务由一些网络社区来维护[5]。PHP是一种非常好用的编程语言,它简单易学,与其他语言不相同的方面就是它融合了其他语言的一些优点和长处,博采众家之长,并且加入自己特有的元素,使得PHP语言不论是学习、应用还是在执行效果上都会给用户带来全新的体验。现在社会上流行的许多协同办公软件就是基于PHP开发的,在软件开发的过程中可以插入许多插件,充分发挥其优势特性,给不管是开发人员还是用户都带来了极好的体验,在这个过程中可以充分体会到利用PHP开发的软件系统在运行和维护方面的便捷和高效。2.1.2PHP特性PHP包含了多种语言的优点,采众家之长,才会使自己变得这样高效快捷。当我们需要重复使用某一个功能时,如果每次都重新编辑,会造成不必要的麻烦,但是如果封装起来,当使用的时候直接调用就方便多了,增加了代码的重复使用性。另外PHP是开放源码的,这样关于PHP的源码都可以找到,大大提高了学习者的学习效率,也给编程人员提供了范例的借鉴。由于他的跨平台性,它可以运行在市面上所存在的大部分操作系统和服务器上。2.1.3PHP应用及语法PHP是一个使用范围很广的语言,特别是在网页开发方面。总的来说,他的应用主38 基于PHP的在线考试系统的设计与实现要汇集在三个领域:服务器端脚本、命令行脚本和编写桌面应用程序。另外它的应用范围还可以增加到更加大的范围,诸如LDAP、IMAP、HTTP、SNMP等目前可见的绝大多数的协议的服务[6]。PHP与其他语言不同的一点就是PHP里面所有的变量名都必须以美元符号$开头,另外它的程序里面的单独一行的注释除去和C语言一样的之外还可以使用#来注释。2.2MySQL数据库简介2.2.1MySQL介绍MySQL在一些时候是免费的,它具有非常强大的功能,但是又有巧而精的系统结构[7],我国现在最大的电商平台淘宝就用是的MySQL数据库,这足以证明MySQL数据库的实用性及安全性有其它数据库无法比拟的特点。在WampServer里面集成的MySQL数据库,既有图形用户界面又可以使用数据库代码,可以使用户充分体验数据库使用快感,满足不同人群对它的需求,并且WampServer里面的数据库可以通过浏览器打开界面,并不用使用命令行或者安装专业的界面程序,任何时候只要开启服务器,就能从容打开数据库对其进行编辑和修改,这样使得数据库的安装和配置也变得极为简单,充分考虑到初学者对此一片茫然的心情,使得上手非常快,也极大地调动了初学者的学习热情。2.2.2MySQL特性MySQL数据库在实用性和功能上面有许多特点,为人们提供了很大的方便,这也是为什么一些大型后台数据管理都用MySQL数据库管理系统。MySQL的测试使用了许多编译器[8],充分保证代码可以随便移植,并且MySQL为许多编程语言提供编程接口,在环境方面也没有过多的要求,基本上可以运行在当前流行的大多数操作系统上,在CPU资源利用上,MySQL又支持多线程编程,可以使CUP资源得到最大限度的应用,并且还提供其他数据库的连接方法[9]。38 基于PHP的在线考试系统的设计与实现2.2.3MySQL应用管理与一些大的数据库相比,MySQL有它本身所含有的一些不足之处,但是使用和规模上的不足并不能阻止它的受欢程度,对于MySQL现有功能来说,它足以满足绝大部分中下企业和个人爱好者[10]。MySQL数据库可以使用命令行工具进行操作,但是也可以使用图形用户界面,具有双重的管理操作[11]。2.3WampServer简介2.3.1WampServer介绍WampServer是由法国人开发的一个软件整合包,它把目前开发PHP所必须的几款软件整合到一块,Wamp就代表了这几款软件,他们分别是W表示的是这个整合软件包的运行环境,只能在Windows环境下运行,A表示ApacheWeb服务器,M表示MySQL数据库,P表示PHP解释器,并且还拥有图标、安装菜单以及环境配置,安装使用起来和一个软件差不多,从而可以直接安装,使开发人员可以直接使用,而不用再去担心环境配置的一列问题。还有令开发者兴奋的就是这款软件对用户免费,只要下载安装就可以直接使用[12]。2.3.2WampServer特点WampServer还拥有控制界面,利用控制界面可以轻松实现它的大部分功能,极大的给用户提供方便,并且系统管理界面还提供中英文切换,在使用方面更加注重用户体验,并且还设定有启动所有服务、停止所有服务等功能,更加方便了用户的使用。2.4ZendStudio简介2.4.1ZendStudio介绍ZendStudio是在PHP开发人员中使用范围最广也是最专业的一个集成开发环境,他可以安装许多插件,在使用上类似于Java开发使用的Eclipse,功能十分强大,一个软件基本满足了PHP开发过程中所有的代码编写和调试工作,从而在一定程度上缩短38 基于PHP的在线考试系统的设计与实现了软件开发的时间,节约了一些不必要的费用,由于他的跨平台性能极好,也免去了开发软件与一些系统不兼容的烦恼[13]。2.4.2ZendStudio特点ZendStudio不仅在功能上拥有让人垂涎欲滴的兴趣,在它的使用上,也非常注重用户体验,不仅可以自己设置软件界面的颜色,程序里面关键字和代码提示都非常灵敏,大大加快了程序编写的速度,他还有内置的调试器,通过它可以配置本地或者远程调试器,为程序的编写和维护提供了方便。2.5Ajax介绍2.5.1Ajax技术核心传统的Web应用程序的工作流程大体为“提交→响应→等待→刷新”,具体的实现步骤如下:(1)用户触发HTTP请求,客户端提交请求;(2)服务器接收并处理请求;(3)客户端等待页面刷新;(4)服务器端返回处理结果;(5)客户端页面刷新[14]。从中我们可以看出,只要页面有少许变化,就需要重新载入,这大大增加了服务器的工作量,使响应及其缓慢。若发送的请求和接收的响应只包含需要的数据,这将大大减轻服务器与客户端的通信量,增加交互的响应速,。通过Ajax我们可以满足这个要求。Ajax是几种技术的组合体,其中含有JavaScript和XML,还有DOM,CSS等。这些没有使用顺序的限制,只是松散地组合在一起,这些技术具体如下:(1)使用XHTML和CSS标准构建标准化Web页面;(2)使用XML和XSLT操作数据;(3)使用DOM(文件对象模型)动态控制页面元素,以便交互;(4)使用XMLHTTPRequest[15]与服务器实行异步通信;(5)使用JavaScript将上面提到的技术组合在一起,一起处理这些数据。38 基于PHP的在线考试系统的设计与实现2.5.2Ajax原理Ajax的工作原理就类似于在用户和电脑中间多了一个环节,导致用户操作和服务器响应不同步进行[16]。这就相当于客户端替代服务器处理了部分功能,这样不但减轻了服务器处理数据的压力同时也充分利用了客户端的空闲时间,即节省了内存也增加了使用效率。38 基于PHP的在线考试系统的设计与实现3系统需求分析3.1系统功能需求系统主要实现两个大的模块内容:考生模块和管理人员模块。其中考生方面主要是考生的登录及考试、交卷功能,另外就是管理人员模块,管理人员对学生和试题进行增、删、改、查等管理,是本系统能够运行的基础。本论文所设计系统主要利用PHP语言和MySQL数据库技术为基础,采用Ajax技术开发一个能够满足实际考试需求的在线考试系统。(1)登录功能登录功能包括:考生登录和管理人员登录,管理员和教师一起用一个登录窗口,统称为管理人员。考生登录时,系统需要识别考生参加考试课程、用户姓名、密码以及考试登录时间,保存管理人员信息。(2)课程管理功能课程管理功能包括:课程的增删改以及设置、删除考试课程,设置课程考试开始和结束的时间,设置考试课程状态。管理课程时,系统需要保存课程名称、考试课程名称、考试课程考试时间、考试课程的状态。(3)题库管理功能题库管理功能包括:试题的增删改查。管理题库时,系统需要保存试题的描述、试题选项、试题答案。(4)学生管理功能学生管理功能包括:专业、班级以及学生信息的增删改,设置、删除考试的学生。管理学生时,系统要保存专业信息、班级信息、学生信息、参加考试的课程信息。(5)试卷管理功能试卷管理功能包括:试卷结构的设置、修改、自动组卷、人工组卷、查看、修改试卷。管理试卷时,系统需要保存试卷结构,试卷包含的题目。试卷结构包括试卷类型,每个类型包含试题数目、试题分数。(6)考试管理功能38 基于PHP的在线考试系统的设计与实现考试管理功能包括:设置考生登录密码和二次登录密码、设置考生延迟时间、自动批卷、查询交卷和未交卷考生、查询考生分数。管理考试时,系统需要保存考生登录密码、二次登录密码、交卷信息、考生分数。3.2系统用户分析系统用户主要是系统管理员、教师和学生。系统管理员功能设置如图3-1所示,主要有设置教师权限,并且可以设置系统所有功能的权限。教师主要功能如图3-2所示,主要有登录,考试设置,试题添加、修改,组卷,成绩查询,查看未交卷学生,班级、学生设置。学生主要功能如图3-3所示,主要有登录、在线考试、交卷。图3-1管理员功能示意图图3-2教师功能示意图38 基于PHP的在线考试系统的设计与实现图3-3学生功能示意图3.3系统环境要求本考试系统在登录系统的时候需要通过浏览器,不论是局域网还是外部网络都可以登录,但是系统需要部署在学校内部服务器上,以便于学校管理人员对系统的日常维护,教师可通过登录校园网对系统进行维护和设置考试内容等操作,学生则通过局域网或者互联网使用浏览器进行登录考试,由于考试系统同一时间使用人很多,所以对系统稳定性和网络带宽有一定要求。本考试系统设置运行在WindowsServer2003操作系统,搭载Apache服务器,利用PHP编写指令与MySQL实现数据库存取。(1)服务器端操作系统:WindowsServer2003服务器:Apache2.4.9PHP软件:PHP5.5.12数据库:MySQL5.6.17开发工具:ZendStudio浏览器:IE7.0及以上版本分辨率:最佳效果是1024*768(2)客户端浏览器:IE7.0及以上版本分辨率:最佳效果是1024*76838 基于PHP的在线考试系统的设计与实现4系统总体设计4.1功能设计根据系统的功能概述,系统需要具有课程管理,学生管理,题库管理,试卷管理,考试管理以及试卷管理等功能。4.1.1登录4.1.1.1功能描述(1)考生登录时需要选择考试课程、输入学号和密码;(2)考生密码需由管理人员统一设置;(3)管理人员与考生的登录界面不同。4.1.1.2功能设计考生登录的界面为start.php,管理人员登录的界面为teacherstart.php。考生登录时,使用Sajax来实现,因此,需要包含Sajax.php,并且需要调用函数sajax_init()、sajax_export()、sajax_handle_client_request()。系统大多数功能使用Sajax技术来实现。考生登录触发函数为logon_user(),通过该函数获取考生输入信息,并通过x_logon_user_exist()提交到服务器,函数check()处理服务器返回结果,如果考生信息正确,将转到index.php页面,否则显示错误信息。管理员“登录”按钮的触发函数为logon_manager()。该函数获取管理人员信息,并通过x_logon_manager_extst()提交到服务器。函数check()处理服务器的返回结果,如果管理人员信息正确,将转到man_index.php,否则显示错误信息。4.1.2课程管理4.1.2.1功能描述(1)管理人员可以添加或删除考试;38 基于PHP的在线考试系统的设计与实现(2)管理人员可以设置考试课程,考试课程只能从已经添加的课程中选择;(3)管理人员可以设置考试课程的考试开始和结束时间,考试时间只能是未来时间,不能为过去时间;(4)设置考试课程的考试状态,即该课程是否允许考生参加该课程的考试。4.1.2.2功能设计在设置考试时间页面,当文本框内容发生变化时,onchange响应函数会对文本框内容进行检查。GetTimeTest()检查输入内容是否符合日期和时间格式,GetNum()函数检查输入内容是否为数字,提交按钮的响应函数为SetExamTime(),该函数把输入内容提交给服务器。该函数实现流程如图4-1所示:图4-1SetExamTime()函实现流程示意图4.1.3题库管理4.1.3.1功能描述(1)管理人员可以选择试题类型;(2)老师可以输入试题,输入时需要试题的详细信息;38 基于PHP的在线考试系统的设计与实现(3)老师可以修改和删除试题。4.1.3.1功能设计(1)试题录入界面采用Sajax实现,客户端的下拉框的响应事件的响应函数为select_ttype(),通过这个函数显示指定题型的录入界面。“提交”按钮的响应函数为SubmitTimu()。服务器函数InsertTiMu()返回数据,由函数dis_result()处理。试题插入数据库流程如图4-2所示:图4-2试题插入数据库流程示意图(2)修改试题界面由文件modifytest,php来实现,该文件显示所有题型,界面中的题型下拉列表框onchange事件响应函数为select_ttype(),该函数显示指定类型的所有试题。DisplayTimu4Modify()函数显示指定类型的试题。修改窗口由文件updateTimu.php来实现。服务器端函数updateTiMu()用于更新试题,返回信息则由函数dis_resylt()处理。38 基于PHP的在线考试系统的设计与实现4.1.4学生管理4.1.4.1功能描述(1)为了方便管理考生,需要建立考生的专业。因此,管理人员可以新建、修改、删除专业;(2)管理人员可以建立考生的班级,管理人员可以修改、删除班级;(3)管理人员对指定专业和班级的学生进行添加、修改和删除操作;(4)管理人员可以决定参加考试的学生,系统没有设置参加考试则该学生不能参加本科目考试。4.1.4.2功能设计(1)设置专业由setmajor.php文件来实现。“设置”按钮的点击事件响应函数为Set_Major(),“删除”按钮的点击事件响应函数为Del_Major(),Dis_Major()函数把选中的专业名称显示在文本框内。服务器提供一个设置专业的函数Insert_Class(),该函数实现流程如图4-3所示:图4-3Insert_Major()函数实现流程示意图(2)设置班级由文件setclass.php文件来实现,界面中下拉列表框的响应函数为select_major(),调用服务器函数Dis_Class()显示指定专业的所有班级。“设置”按钮的响应函数为Set_Class(),“删除”按钮的响应函数为Del_Class()。38 基于PHP的在线考试系统的设计与实现(3)在设置学生页面,添加按钮的单击事件响应函数为insertstudent(),该函数用来检查管理人员输入学生信息是否合法,并向数据库添加学生信息,表student用来存放学生信息。4.1.5试卷管理4.1.5.1功能描述(1)管理人员可以设置试卷结构,题目类型包含单项选择题、多项选择题和填空题。管理人员设置试卷结构包含题目类型、题目数量和分数;(2)系统具有自动组卷和人工组卷两种组卷方法;(3)系统允许管理人员查看试卷;(4)系统还设置了修改试卷功能,试卷结构修改以后,管理人员需要重新组卷。4.1.5.2功能设计(1)设置试卷结构由文件settestpaper.php来实现,在设置试卷过程中,每种试题类型都属于一个表单,每个表单拥有三个文档,分别接受试题难度、总分值、数目的输入,名称均为“man”加上试题类型序号。如果单项选择题的类型序号为1,则设置单选题文本框的名称为“man1”。这样方便获取文本框内容。设置好以后,需要提交试卷结构由服务器处理,提交试卷以后,服务器会根据你所设置的试卷进行流程的运行,具体流程运行如图4-4所示。提交以后,服务器经过处理验证需要保存,保存的时候同样需要进行判断并执行插入数据库语句。(2)组卷界面由文件zj.php来实现,该界面含有四层标记。timu_ttype层:显示试题选择项;timu层:显示试题;timu_content:显示服务器返回信息。界面存在三个单选按钮,分别拥有相同的单击事件ZJ(),这三个单选按钮分别表示人工组卷值为1;自动组卷值为2;修改试卷值为3。(3)修改试卷界面左侧列表框的ID为selectTest,显示所有指定题型的试题,右侧列表框的ID为selectTest1,显示试卷中指定题型的试题。单击任何一个列表框,可以在其中看到相应的试题内容。38 基于PHP的在线考试系统的设计与实现selectTest列表框的onchange和按钮的onclick事件所对应的函数为Display_TiMu(selectTest),该函数显示指定试题的描述、选择项和结果。对应按钮=>和<=:SelectFirstMulti(firstobj,secondobj)。该函数把firstobj列表框中的选项加入到secondobj列表框中。对应按钮ALL=>和<=ALL,SelectFirstAll(),该函数把firstobj列表框中的所有选项加入secondobj列表框。图4-4提交试卷结构流程示意图4.1.6考试管理4.1.6.1功能设计(1)考生可以在考试开始时间前半小时内登录,但是不能进行答题,这时会显示考试介绍,考试时间到了以后,考生才可以进行考试;(2)管理人员可以查询成绩;(3)如果考试过程因为停电或电脑卡等不可抗因素导致考试中断,这时需要重新登录考试,但是需要二次登录密码,此密码由教师设置,并告知考生;(4)系统允许考生提前交卷;(5)考试结束时,系统提交试卷;38 基于PHP的在线考试系统的设计与实现(6)考试结束时,系统自动批改试卷,并显示分数;(7)管理人员可以设置考生的延迟时间;(8)管理人员可以查看交卷和未交卷学生信息。4.1.6.2功能设计(1)考生信息保存在Session变量中,系统通过getpar()来获取这些值,在考生进入考试界面中时,系统就要调用getpar()获取考生信息并显示,获取考试参数和设置定时器由客户端函数init()来完成,设置考试参数则由SetParament()完成。(2)获取试卷由函数maketestpaper()来完成,步骤如图4-5所示:图4-5获取试卷流程示意图4.2数据库设计4.2.1关系设计系统拥有学生、管理人员、题库、试卷结构、专业、班级、考生、试卷、试题类型等实体,这些实体都拥有自己特有的属性,他们通过一些字段相互联系,该系统数据库中,他们之间的关系如图4-6数据库表关系E-R图。38 基于PHP的在线考试系统的设计与实现图4-6数据库表关系E-R图4.2.2表设计系统需要保存许多的考试信息,试卷信息,这样就需要建立后台的数据库系统,而数据库又是由数据表组成的。(1)专业信息表majorinfo如表4-1所示,用来保存学生所属专业的基本信息。表4-1专业信息表majorinfo序号字段名称数据类型说明1ID自动编号专业序号2MajorName文本专业名称(2)班级信息表class如表4-2所示,用来保存学生所属班级的基本信息。表4-2班级信息表class序号字段名称数据类型说明38 基于PHP的在线考试系统的设计与实现1ID自动编号班级序号2ClassName文本班级名称3Major数值班级所属专业(3)学生信息表student如表4-3所示,用来保存响应学生的基本信息,通过这些信息,可以明确显示学生的专业班级等。表4-3学生信息表student序号字段名称数据类型说明1ID自动编号学生序号2Name文本学生姓名3Sex文本性别4XH文本学号5ClassID数值班级序号6MajorID数值专业序号7pwd文本密码(4)考生信息表studentexaminfo如表4-4所示,用来保存参加考试学生序号、参加考试课程、考试时间以及分数等信息。表4-4考生信息表studentexaminfo序号字段名称数据类型说明1ID自动编号考生序号2StudentID数值学生序号3ExamCourse数值考试课程序号4Score数值考生分数5StartTime日期时间考试开始时间6EndTime日期时间考试结束时间7IsEndExam数值考试结束标志8SecondPwd文本二次登录密码9IsExam数值是否登录(5)考生答案信息表studentanswer如表4-5所示,用来保存学生考试时所答题目的答案,系统会自动刷新,实时保存,因此考试过程中,该表存取会非常频繁。38 基于PHP的在线考试系统的设计与实现表4-5考生答案信息表studentanswer序号字段名称数据类型说明1ID自动编号班级序号2StudentID文本班级名称3CourseID数值班级所属专业4TiMuID数值题目序号5Answer文本答案(6)试卷结构信息表testpaper如表4-6所示,是用来保存组卷以后的试卷信息,在这里显示了各个类型试题的数目、分值等信息,通过这个表,可以清晰的看出每份试卷的基本信息,可以认识到本次考试的试题难度,以及考试大概需要的时间。表4-6试卷结构信息表testpaper序号字段名称数据类型说明1ID自动编号序号2CourseID数值课程序号3TType数值试题类型序号4Score数值该类型试题分值5Num数值该类型试题数目6Level数值试题难度7Chapter文本试题所属章节(7)试卷信息表testpapercontent如表4-7所示,是用来存储管理人员组卷以后形成的完整试卷,相当于是完整的考试试卷存储,显示了本次考试试卷的详细信息,明确显示了试卷的试题类型及详细试题描述。表4-7试卷信息表testpapercontent序号字段名称数据类型说明1ID自动编号试题序号2CourseID数值课程序号3TType数值试题类型序号4Score数值该题分值5TiMuID数值该题序号38 基于PHP的在线考试系统的设计与实现(8)题库信息表tiku如表4-8所示,用来保存试题信息,如果是选择题Selection_num表示最多可以输入6个选项,如果是填空题Selection_num表示每题填空项数目。表4-8题库信息表tiku序号字段名称数据类型说明1ID自动编号试题序号2CourseID数值课程序号3TMTType数值试题类型序号4Chapter文本试题所属章节5Level数值试题难度6Description文本试题描述7Answer文本试题答案8Selection_a文本试题选项a9Selection_b文本试题选项b10Selection_c文本试题选项c11Selection_d文本试题选项d12Selection_e文本试题选项e13Selection_f文本试题选项f14Selection_num数值试题选项数目最多6个(9)试题类型信息表ttype如表4-9所示,用来保存试题类型信息。表4-9试题类型信息表ttype序号字段名称数据类型说明1ID自动编号试题类型序号2TType文本试题类型描述(10)管理人员信息表manager如表4-10所示,用来保存管理人员信息,包括管理人员名称和登录密码。表4-10管理人员信息表manager序号字段名称数据类型说明1ID自动编号管理人员序号38 基于PHP的在线考试系统的设计与实现2Name文本管理名称3Pwd文本管理人员密码4Prioty数值管理人员权限:1为系统管理员2为普通管理员(11)管理人员管理考试课程信息表manager_course如表4-11所示,用来保存管理人员管理考试课程信息。表4-11管理人员管理考试课程信息表manager_course序号字段名称数据类型说明1ID自动编号用户序号2CourseID数值课程序号3ManagerId数值管理人员序号4.2.3操作MySQL数据库的类(1)Connect():连接数据库;(2)Query():指定SQL查询命令,成功则返回查询标识符;(3)getFieldList():获取指定SQL命令的返回的记录列表;(4)countRd():获取查询记录列表中指定的记录;(5)GetNumRows():获取指定SQL命令返回记录的数目;(6)SqlExecute():执行查询、删除、插入等SQL命令。38 基于PHP的在线考试系统的设计与实现5系统实现5.1登录用户登录是通过用户名和密码进入考试系统平台的入口。本系统分为考生登录和管理人员登录。考生登录的目的是为了考试,管理人员登录的目的是为了管理考生和设置考试试卷等内容。5.1.1考生登录考生登录界面显示了参考科目、学号、姓名和考生密码。每个考试课程都设置有考试时间和日期,考生只有在考试时间范围内才能登录,提前或者推迟半个小时,则都不能登录。考生登录界面如图5-1所示。图5-1考生登录界面当点击考生登录时,触发logon_user(),实现部分代码如下:functionlogon_user(){varuserinfo=newArray(4);userinfo[3]=document.getElementById("mima_xs").value;userinfo[2]=document.getElementById('zhanghao_xs').value;userinfo[1]=document.getElementById('username').value;userinfo[0]=document.getElementById('xuehao').value;x_logon_user_exist(userinfo,check);}5.1.2管理员登录管理员登录界面与考生登录界面不同,如图5-2管理员登录界面所示。38 基于PHP的在线考试系统的设计与实现图5-2管理员登录界面图5-3设置管理权限管理员登录根据教师授课科目的不同分配给他们相应的课程管理权限,只有有权限的教师,才可以设置这一课程所涉及的录入试题、考试等功能,如图5-3设置管理权限界面所示。5.2课程管理本系统没有提供直接设置考试课程的功能,但只要管理人员设置课程考试时间,系统自动默认该课程为考试课程。设置考试时间由文件settest.php来实现,考试时间设置界面如图5-4所示。图5-4设置考试时间界面部分代码如下:functionSetExamTime(){varszData=document.getElementById("Text1").value;if(GetTimeTest(szData)){varnNum=document.getElementById("Text2").value;if(GetNum(nNum)){varExaminfo=newArray(2);Examinfo[0]=szData;Examinfo[1]=nNum;x_SetExamInfo(Examinfo,exam_info);}}}当时间输入好以后需要检查设置好的时间格式是否正确,以及确定设置的时间是未38 基于PHP的在线考试系统的设计与实现来时间,当出现错误时,系统自动报错。设置日期时间格式为:例如:5/9/20168:00:005.3题库管理系统提供了试题录入与编辑功能。管理人员利用该功能可以对试题进行录入与修改。在试题录入时,系统把试题描述、选择项、答案分别录入,这样就简化了处理的难度。读者可以对其修改,采用了HTML编辑器作为录入窗口,可以同时录入大量试题。5.3.1录入试题试题录入界面如图5-5所示。在选择好题型和难度后,管理人员可以输入试题。不同试题录入的要求不同。图5-5试题录入界面录入试题部分代码如下:functionInsertTiMu($ttype,$Des,$Select,$Ans,$level){if($ttype==""or$Des==""or$level==""){$avail[0]='no';$avail[1]="题目信息不完整!";return$avail;}……5.3.2修改试题如果需要修改任何一个试题,需点击相应的试题描述,系统会跳转到试题修改页面,38 基于PHP的在线考试系统的设计与实现页面显示和录入试题相同,修改好以后,再点击提交按钮,就完成了试题的修改。5.4学生管理在学生管理功能中,本系统实现对学生进行增删改等功能,每个学生只有一个学号,只能属于一个专业和班级,如果有学号相同但是姓名不同的情况出现,则系统自动默认为修改学生,会修改该学号的学生姓名或者其他信息。5.4.1设置专业在文本框中,管理人员输入专业名称,单击“设置”按钮添加专业,也可以在已有专业的基础上修改,首先点击已有专业,在下面文本框中输入修改后的名称,单击“设置”按钮,就可以修改专业名称,还可以选中已有专业,单击“删除”按钮,完成已有专业的删除。添加、修改专业界面如图5-6所示。图5-6设置专业设置专业部分代码如下:functionSet_Major(){varselect_obj=document.getElementById("Manager");varj=select_obj.selectedIndex;varvalue;if(j>=0){value=select_obj.options[j].value;}……38 基于PHP的在线考试系统的设计与实现5.4.2设置班级每个专业都可以拥有不同的班级,系统提供了设置班级的界面如图5-7所示,选择专业后,就可以对班级进行设置,在该界面中可以添加、修改和删除班级。图5-7班级管理5.4.3设置学生系统提供了添加学生功能,通过此页面可以添加学生。界面如图5-8所示。图5-8设置学生界面5.5试卷管理设置试卷是一个非常重要的考试管理功能,是考试的前提。它由两部分组成:设置试卷结构和生成试卷。设置试卷结构主要是设置试卷的组成题型、数目和分数;生成试卷可以自动组卷和人工组卷,并且可以修改已有试卷的试题。这些功能只有管理人员有权操作。5.5.1设置试卷设置试卷结构如图5-9所示。只有设置好相关信息,才能在以后的组卷中根据设置试卷信息,进行合理的组卷。因此,需要遍历所有试题类型,来可以完成该界面。38 基于PHP的在线考试系统的设计与实现图5-9设置试卷结构为了管理人员使用方便,把设置试卷结构和修改试卷结构都集成在该界面中。在显示该界面时,需要获取当前试卷的已设置的试卷结构并显示,没有选中的试题类型,不允许管理人员进行输入,这需要使编辑框灰化。5.5.2组卷本系统可以提供两种组卷方式,当点击自动组卷时,系统会根据设置好的试卷结构,自动在题库中选择试题,组织试卷;当点击人工组卷时,系统会出现人工组卷界面,根据选择的试题类型,界面上会显示该类型包含的所有试题,管理人员选择试题来充盈试卷,组卷界面如图5-10所示。图5-10组卷界面5.5.2.1自动组卷自动组卷是调用自动组卷函数zujuan(),该函数部分代码如下:functionzujuan($ExamCourse){if($ExamCourse==""){38 基于PHP的在线考试系统的设计与实现die("错误,缺少考试科目。");}$s="select*fromTestPaperwhereCourseID=".$ExamCourse;$record=getFieldList($s);……5.5.2.2人工组卷人工组卷前,需要设置试卷的结构。管理人员必须依据试卷结构来设置试卷试题,单击“人工组卷”按钮,然后,在下拉列表框中选择“单项选择题”,人工组卷界面如图5-11所示。图5-11人工组卷界面5.5.4修改试卷如果感觉对已完成组卷的试卷不满意,想再重新组卷或者修改,则只需点击修改试卷,就可以对已经组织好的试卷题目进行修改,此时只要选中题目后点击中间的功能按钮就可以将试题成功移入或者移除试卷。5.6考试管理5.6.1在线考试考生开始考试后,系统要显示考生信息、试卷、交卷和传送答案。这个界面的功能使用的是Ajax框架,通过客户端的JavaScript和服务器端脚本实现。考试界面如图5-1238 基于PHP的在线考试系统的设计与实现所示。图5-12考试界面实现部分代码如下:functioninit(){//调用服务器函数getpar获取信息,SetParament处理返回结果x_getpar(SetParament);//设置计时器,以便显示考生信息和剩余时间Window.setInterval(“SetTitle()”,1000);}……5.6.3.1显示考试信息考试信息包括考生学号、姓名、考试科目、以及交卷按钮等信息组成。5.6.3.2获取试卷选择项和填空项都设置了单击事件。考生答过该题后,系统就把该题答案传送到服务器并保存起来。当考生重新登录时,试题仍然存在。另外,也防止考生集中交卷的时候因系统反应不及而导致答案丢失。38 基于PHP的在线考试系统的设计与实现5.6.3.3提交答案提交答案由客户端函数SelectAnswer()来实现,服务器端函数send_user_answer()把答案保存到数据库中。函数SelectAnswer()实时地把答案提交给服务器,也使得二次登录成为可能。5.6.3.4结束考试结束考试有两个部分的功能,当考试答完试卷但是交卷时间未到时,可以提前交卷,但是当考试结束时间已到,考生仍未交卷,系统则会强制收卷。函数SetTitle()在考试结束时,自动转向处理考试结束的文件endexam.php,完成自动收卷。5.6.2二次登录如果考生因为不可抗的原因导致考试突然中断,这是就需要重新登录考试,重新登录考试需要由管理人员提供二次登录密码,二次登录响应事件的响应函数为Second_logon_user(),二次登录界面如图5-13所示。图5-13二次登录界面5.6.3设置考生系统提供了添加学生和考生的增删,设置考试时间的延迟等功能。“设置考生”界面如图5-14所示单击左侧“设置考生”链接,显示此界面。38 基于PHP的在线考试系统的设计与实现图5-14设置考生界面管理人员选择专业和班级后,界面如上图所示,既可以设置考生也可以添加学生,管理人员在按照系统要求输入学生的详细信息后,单击“添加”按钮,就可以将学生信息添加至数据库保存。设置考生包括设置、删除考生,设置延迟时间、二次登录密码。单击班级下拉列表框,界面显示该班级的所有学生,对于已设置为考生的学生,左侧复选框为选中状态,管理人员可以对这些考生进行选择,设置延迟时间、二次登录等。5.6.4查询成绩系统还提供了查询考生成绩的功能,管理人员可以查询班级内指定的多个考生成绩,但是当需要查询单个学生成绩时,只需要输入学生的学号,就可以实现查询单个学生的成绩,查询界面如图5-15所示。图5-15成绩查询界面在选择专业和班级后,该界面显示所有学生,参加考试的学生为选中状态,只要点击查询按钮就可以查看参加考试的所有学生的成绩,也可以通过输入学号的方式,查询单个学生的成绩。38 基于PHP的在线考试系统的设计与实现5.6.5查询交卷考生管理人员可以查询考生的考试状态,比如说想查看交卷的人数,就可以通过点击查询交卷学生链接来查看已经交卷的学生,同时如果想查看未交卷的学生,也可以通过点击未交卷学生信息,来查看未交卷的学生,来考虑本次出卷的难易程度使老师做到心中有数,从而在下次设置试卷的时候做到心中有数,使试卷难易适中,以便于来照顾大部分的学生,也可以查询指定学号考生的成绩,查询交卷学生界面如图5-24所示。图5-24查询交卷学生界面部分实现代码如下:functionShowEndStudent($id=1){$n=0;$str="截至时间".date("Y/n/dH:i:s");$str.="";$res=getFieldList("selecta.Score,a.StartTime,a.EndTime,b.Name,b.XHfromStudentExamInfoa,studentbwherea.StudentID=b.idanda.IsEndExam=".$id."andExamCourse=".$_SESSION['SelectID']);if($res)……该界面要定时刷新,以便实时显示交卷考生信息,因此,需要为系统设置定时器,本系统设定每30秒刷新一次。38 基于PHP的在线考试系统的设计与实现6总结与展望6.1工作总结本文首先分析了进行设计实施本系统的背景及技术需要,为本次毕业论文特别是本次系统的设计开发以及将来的应用奠定了坚实的基础,说明了在线考试系统在未来网络时代所发挥出的巨大作用,以及给人们带来极大的方便,同时在节约资源和可持续发展方面所做出的不可磨灭的贡献。本系统基于B/S结构设计,详细说明了B/S的特点以及其在应用方面给用户带来的极大方便的体验,不论什么电脑什么系统,只要安装浏览器就可以进行在线考试,免去了一些软件需要安装客户端的麻烦,使用户在任何时候任何地方只要有互联网就可以轻松地随时随地参加考试。本系统采用浏览器,服务器和数据库服务器三层结构,操作平台采用大家普遍使用的Windows系统,服务器采用Apache服务器,数据库系统采用MySQL数据库,都是系统开发常用的软件,简单易学,上手快。本系统基本实现了在线考试的所有功能,满足了当前考试的一些需求,极大地提高了用户体验。6.2研究展望本系统虽然能够完成在线考试的所有功能,但是在一些方面还存在着许多不足,例如只能做选择题和填空题,不能做一些复杂的例如简答题、计算题之类,但是因为技术和时间原因,本系统只能做到这里,相信在未来的研究和学习过程中还会继续完善本系统功能,使之真正做到方便、高效、实用。在未来的学习研究过程中,还需要从以下方面进行完善。(1)本系统题型单一,只能作答选择题、填空题,未来还需要加强题库建设,增加新题型的功能;(2)由于技术经验不足,本系统的分析统计能力还相对薄弱只能进行简单的成绩查询,未来还需要进一步加强完善;(3)系统自动组卷功能还不够完善,需要建立良好的数理统计和算法;38 基于PHP的在线考试系统的设计与实现(4)系统在安全方面还存在不足,需要规划良好的网络安全机制,以提高考试过程中出现的网络安全问题。38 基于PHP的在线考试系统的设计与实现致谢在本次论文从研究内容的确定到完成的过程中,受到了很多人的帮助,正是由于他们的热心帮助,才使我能够顺利完成本次设计和论文。首先要感谢我的导师程源老师的悉心指导和关怀,他用渊博的学识指点我,用耐心严谨的态度感染我,一步步帮我完成论文,更让我从中领悟到一些人生的道理,在此,我谨向程源老师表示由衷的感激。感谢学校对我毕业前的这次综合检验,使我深刻认识到了自己学习中的不足,一个终点意味着一个起点,大学虽然已经结束,但是我学习的脚步不会停止,我必将在以后的人生道路上认真学习,脚踏实地,积极完成各项工作。除此之外,还要感谢我的父母和家人,感谢他们这一段时间的辛勤付出和鼓励。最后要对在完成论文的过程中给我提供帮助的同学们以深深的谢意,正是他们的帮助才能使我毕设完成的更加顺利。38 基于PHP的在线考试系统的设计与实现参考文献[1]金圣泉、姚顾波.Internet与我国教育的整合http://www.etc.edu.cn/academist/ysq/Internet-edu.htm[2]王彦洲.在线考试管理系统[J].广播电视信息.2011[3]王德安.基于ASP.NET网上考试系统设计与实现[J].电脑编程技巧与维护.2012[4]Php-上海软件服务网软件百科http://www.ssc.stn.sh.cn/mediawiki/index.php?title[5]韩卫媛.PHP中类的应用[J].济源职业技术学院报.2010[6]韦耿.数据库设计在网站管理系统中的应用[J].数字技术与应用.2013[7]MySQL中文参考手册http://download.csdn.net/download/wglzaj740806/248[8]商业数据库_百度文库http://wenku.baidu.com/view/2677d5523c1ec5da50e270[9]徐聪熊.基于环保电子政务信息资源整合研究[J].中国电子商务2014[10]马红霞.Java与多线程程序设计[J].河北工业科技.2004[11]MySQL_360百科http://baike.so.com/doc/2303745-2436931.html[12]wampserver_360百科http://baike.so.com/doc/6751009-6965568.html[13]ZendStudio_360百科http://baike.so.com/doc/6956250-7178682.html[14]张琳.XML数据岛结合AJAX实现Web的异步刷新[J].电子设计工程.2012[15]李佳凝.Ajax技术在高校学生管理系统的应用[J].科技创新导报.2014[16]侯波.基于Web的小学在线考试系统的设计与实现[J].福建电脑.2013[17]王亚洲.在线考试管理系统[J].广播电视信息.2011[18]王伟平.贺春雷.PHP+MySQL网站开发入门与提高[M].北京:清华大学出版社,2014.[19]顼宇峰.零点起飞学HMLI+CSS[M].北京:清华大学出版社2013.7.[20](美)凯瑞恩(Kyrnin,J.)著;林星译.TML5移动应用开发入门经典[M].北京:人民邮电出版社,2013.3(2013.8重印)[21]PuntT.Entropicthresholding:Anewapproach[J].CGIP,1981,16(21):209-320[22]akehurstBC.Tobacco(Secondedition).NewYork:Longmanpress.1981:51-58[23]Meyer.ElsevierTrendsDivision.Computer&Security.Kidington.Oxford.UK.1982[24]BonanzaDrive.Database.P.O.Box70.ParkCity.UT84060.USA.1978[25]JamesA.O’Brien.IntroductiontoInformationSystems[M].McGraw-Hill.200238

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭