1、 毕业设计(论文)题目:学 生 姓 名 _ _学 号 _201022070106_班 级 _电子102201H_ _所属院(系)_电子信息工程系_指 导 教 师 _ _ 2014 年 5 月 20 日基于php网上考试系统摘 要随着科技的发展,网络技术已经深入到人们的日常生活中,同时带来了教育方式的一次变革。而网络考试则是一个很重要的方向。基于Web技术的网络考试系统可以借助于遍布全球的Internet进行。因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。并且缩短了传统考试要求老师打印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这个漫长而复杂的过程,使考试
2、更趋于客观、公正。本文介绍了一个具有在线考试、添加题库、成绩查询等功能的在线考试系统。该系统是基于PHP和MySQL。设计本系统要熟悉HTML,PHP语言及MySQL数据库的编辑和应用。其中用到了Dreamweaver帮助进行站点和网页设计,还用到了phpmyadmin对MySQL数据库进行可视化操作。全文共分为绪论、系统分析、设计工具及关键技术介绍、系统概要设计、系统详细设计、系统测试、 总结展望、参考文献。详细阐述了系统分析、系统设计的方法及其内容。关键词:在线考试系统;及时阅卷;基于php;MySQL Online Examination System Based PHPAbstract
3、Withthedevelopmentofscienceandtechnology,networktechnologyhasdeepintothePeoplesDailylife,andthewayofeducationbringsatransformation.Andnetworkexamisaveryimportantdirection.BasedontheWebtechnologynetworkexamsystemcanallovertheworldbyInternet.Sotheexamcaninlocal,orinothercities,greatlyexpandtheflexibil
4、ityoftheexam.Andshortenthetraditionaltestrequestprintexaminationpaper,arrangetheexamteacher,monitors,collection,asatest,evaluationandanalysisofthetestpapertestpapers,thelongandcomplexprocess,tendtobemoreobjectiveandfairexam.Thispaperintroducesaon-lineexam,timelywithscoresqueryscoring,andexaminationq
5、uestionsandtheexamineeinformationmanagementfunctionsofnetworkon-lineexaminationsystem.ThesystemisbasedonPHPandMySQL,inordertomatchtheonlineteachingsetuponlineexaminationsystem,therealizationofonlinelearningandtheintegrationofdesign.DesignthesystemmustbefamiliarwiththeHTML,PHPlanguageandMySQLdatabase
6、editorsandapplication.WiththehelpofDreamweaveronsiteandwebdesign,stillusethephpmyadminMySQLdatabaseofvisualoperation.Fulltextisdividedintotheintroduction,systemanalysis,designtoolsandkeytechnologyisintroduced,thesystemdesign,systemdetailedsummarydesign,systemtestandsummarizedtheoutlookandreferences.
7、Expoundsthesystemanalysis,systemdesignmethodanditscontent.Keywords:on-lineexaminationsystem;Timelyreading;BasedonthePHP;MySQL35目 录第1章 绪 论11.1 系统开发的现状11.2 系统开发的目的11.3 系统开发的意义2第二章 系统分析32.1 可行性分析32.1.1 经济可行性32.2 需求分析32.3 开发环境4第三章 设计工具及关键技术介绍53.1 Apache简介53.2 PHP语言简介53.3 PHP连接MySQL数据库63.3.1 PHP连接数据库的两种方
8、法63.3.2 PHP对MySQL数据库的两种连接方式7第四章 系统概要设计84.1 系统的总体设计84.2 数据库设计84.3 系统结构设计84.3.1 系统功能结构84.3.2 系统流程图9第五章 系统详细设计115.1 数据库设计115.1.1 数据库分析115.1.2 概念设计115.1.3 数据库物理结构125.2 系统详细设计与实现165.2.1 系统配置165.2.2 前台详细设计与实现175.2.3 后台详细设计与实现25第六章 系统测试316.1 测试环境316.2 什么是软件测试316.3 软件测试的目标与方法316.4 系统评估32第七章 总结与展望33参考文献34致 谢
9、35第1章 绪 论1.1 系统开发的现状 网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。在我国普遍地看绝大多数远程教育的考试还停留在传统考试方式。在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。但是对互联网的真正应用仅限于网上报名工作和
10、网上成绩查询,还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能适应现代考试的需要。1.2 系统开发的目的信息技术的发展对教育的影响是巨大的,随着信息技术和网络技术的迅速发展,教育信息化和网络化也将成为必然的趋势。作为教育评价和衡量学生能力的考试也正经历着无纸化和网络化的飞跃。网络的开放性和分布性的特点以及基于互联网的巨大计算能力使得考试突破了时间和空间的限制。基于网络技术的考试系统正成为人们的研究热点之一,其中,基于Web技术的考试系统已成为互联网的重要应用之一。目前教师采用在线考试系统的还不多见,因为教师个体精力确实有限。但随
11、着教研组制度的完善和教学交流活动的增加。对题库的创建将提上议事的日程,在线考试系统将大有用武之地,且能确保考风考纪的根本好转。在线考试具有动态出题、自动阅卷、成绩分析等优点,不仅大大减轻了教师人工组卷繁琐的工作量,提高资源利用率,其运行过程中,组卷速度较快,较少出现重复的现象,而且有利于教考分离的实施,符合目前教学改革的目标。更节省纸张资源,增强环保意识。因此,在线考试系统具有潜在的巨大商机和研究价值,是未来数字化校园系统研究的热点内容。1.3 系统开发的意义目前我院学生的期末考试仍采用任课教师(个人或集体)考前出题的方式。为解决学生压题,考前漏题,补(缓)考试题与正式考试试题题量及难度差异问
12、题,教务管理部门通常要求教师同时出多套试卷,其题量与难度要求相同,并且要同时给出答案和评分标准。若建立题库,每次考试前由题库中题目随机生成试卷,则可较好地解决考教分离的问题,也可将广大教师从每学期末繁重的命题工作中解放出来。近年来,部分学校陆续开发了一些基于微机的题库系统,并作为成果向其它学校推广,但这些题库一般都是结合本校具体情况,针对单一课程的小型题库,甚至某些学校购得的题库系统中的题目本身是不可维护的,即使题目已不适合自己的学生考试使用,也无法更新题库中的题目。为解决题库系统中存在的这些问题,作者经过研究几种不同的网上系统,经充分的考虑,最后给出了一个较为理想的题库系统解决方案,并结合当
13、前比较使用的B/S结构开发一个功能较完备的网上考试系统。第二章 系统分析2.1 可行性分析可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。通过分析解法的利弊,来判定系统目标和规模是否现实,系统完成后所能带来的效益是否达到值得去投资开发这个系统的程度。网络在线考试系统的可行性可从以下两方面考虑。2.1.1 经济可行性定期的组织考试是各个院校及时掌握学生学习成绩的有效方式,利用网络在线考试系统,一方面可以节省人力资源,降低考试成本。另一方面,在线考试系统能够快速进行考试和评分,体现出考试的客观与公正性。2.2 需求分析随着计算机技术的发展和网络技术的日益成熟,通过网络进行
14、信息交流已成为一种快捷的交互方式。在这种网络环境下,学校或考试机构希望通过建立网络在线考试网站来扩大知名度、降低管理成本和减少人力物力的投资,从而为考生提供更全面、更灵活的服务,并全面、准确地对考试进行跟踪和评价。与此同时,考生希望根据自己的学习情况进行测试,并能够得到客观、科学的评价;教务人员希望能够有效地改进现有的考试模式,提高考试效率。通过实际情况的调查,要求网络在线考试系统具有以下功能: 界面设计美观大方、方便、快捷、操作灵活,树立企业形象。 要求实现在线考试功能,自动核算考试成绩。 要求提供考试时间倒计时功能,使考生实时了解考试剩余时间。 要求系统自动阅卷,保证考试成绩真实有效。 要
15、求考生凭准考证号查询考试成绩,以保证信息安全。2.3 开发环境Apache是目前应用最广的Web服务器;PHP是一种服务器端脚本语言,而MySQL是一个小巧的数据库系统软件,它们特别适用于网站建设。Apache+PHP+MySQL不仅仅是开源项目,可免费获取,而且它支持Linux、UNIX、OS/2和Windows多个操作系统,可移植性好。因此,这种组合是设计动态网站的最佳解决方案。(1) 硬件需求:计算机(winXP,win7系统)(2) 软件需求:开发工具:Dreamweaver CS5服务器端开发环境: Apache 2.2.11+ PHP 5.2.9+ MySQL 5.1.32+ ph
16、pMyAdmin 3.1.3第三章 设计工具及关键技术介绍3.1 Apache简介Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache web服务器软件拥有以下特性:(1) 支持最新的HTTP/1.1通信协议(2) 拥有简单而强有力的基于文件的配置过程(3) 支持通用网关接口(4) 支持基于IP和基于域名的虚拟主机(5) 支持多种方式的HTTP认证(6) 集成Perl处理模块(7) 集成代理服务器模块(8) 支持实时监视服务器状态和定制服务器日志(9) 支持服务器端包含指令(
17、SSI)(10) 支持安全Socket层(SSL)(11) 提供用户会话过程的跟踪(12) 支持FastCGI(13) 通过第三方模块可以支持Java Servlets3.2 PHP语言简介PHP是英文超级文本预处理语言Hypertext Preprocessor的缩写,它是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,PHP 独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要
18、高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。以下罗列了PHP所具有的一些特点:(1) 开放的源代码。所有的PHP源代码事实上都可以得到。 (2) PHP是免费的。和其它技术相比,PHP本身免费。(3) PHP的快捷性。程序开发快,运行快,技术本身容易学习,上手快。嵌入HTML:因为PHP可以嵌入HTML语言,它相对于其他语言,编辑简单,实用性强,更适合初学者。 (4) 跨平台性强。由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WIND
19、OWS下。(5) 效率高。PHP消耗相当少的系统资源。(6) 图像处理。用PHP动态创建图像 (7) 面向对象。在php5中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。(8) 专业专注。PHP支持脚本语言为主,同为类C语言。3.3 PHP连接MySQL数据库3.3.1 PHP连接数据库的两种方法(1) 通过mysql库和mysqli库函数连接。这种方法是PHP连接MySQL最常用的方法,无论从易用性和效率上都比用ODBC接口连接好。PHP存取mysql数据库的四个步骤是:建立连接:mysql_connect();操纵数据库:mysql_select_db();返回布
20、尔型数据值操纵数据库中的数据:mysql_query();关闭连接:mysql_close();(2) 通过ODBC接口连接。开放式数据库互联(open database connectivity,ODBC)是Microsoft引进的一种早期数据库接口技术。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。PHP通过ODBC不仅可以连接MySQL数据库,而且还可以连接Oracle、Sybase、Informix和SQL Server等。3.3.2 PHP对MySQL数据库的两种连接方式无论是使用mysql/mysqli库函数还是使用O
21、DBC接口连接,PHP对MySQL 数据库的连接方式都有两种。分别是永久连接和非永久连接方式。(1) 永久连接方式:它的最大的优点是效率比非永久连接方式高,当客户端对MySQL服务器的连接请求非常频繁时,永久连接将更加高效。它使得每个子过程在其生命周期中只做一次连接操作,而非每次在处理一个页面时都要向MySQL服务器提出连接请求。即每个子过程将对服务器建立各自独立的永久连接。(2) 非永久连接方式:即短连接方式。当客户端向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。对于大部分网站通常都使用这种连接方式,它虽然没有永久连接
22、方式的效率高,但是可有效避免永久连接所带来的问题和提高服务器承载能力。第四章 系统概要设计4.1 系统的总体设计根据系统的功能要求,网络考试系统中涉及管理员,他的职能是进行试题库维护,包括删除,添加,及时更新。所有数据都存储在服务器的数据库中,具体应达到以下目标:(1) 采用开放、动态的系统框架,加强用户与网站的交互性。(2) 具有空间性。被授权的用户可以在异地登陆考试系统,无须到指定地点 行进行考试。(3) 操作简单方便,界面简洁美观。(4) 系统自动阅卷,保证成绩的真实准确。(5) 考生可以立即查询自己的考试成绩和答错题目及正确答案。4.2 数据库设计数据库设计的任务是确定系统所需的数据库
23、,它的价值在于它能够向用户提供有意义的信息,还有向系统供应所需的一切数据。在MySQL数据库系统中建立一个名为db_online的数据库,在该数据库中可以创建与实体对应的数据表,存放考试系统中与考生,管理员,考题类别,考试成绩相关的数据。下面给出数据库中所包含的数据表的结构图,如图4.2所示。图4.2 onlinetest 数据库所包含数据表的结构图4.3 系统结构设计4.3.1 系统功能结构网络考试系统的考生用户和管理员分别为前台用户和后台用户,他们的功能职责不同,其功能结构图如图4.3.1所示。图4.3.1 网络考试系统功能结构图考生功能:(1) 参加考试:选择考试试卷之后,考试开始。(2
24、) 完成后提交试卷,自动阅卷。(3) 显示错误题目及正确答案。管理员功能:(1) 考试管理:添加、修改考试试卷。(2) 题库管理:添加、修改考试题目,及时对题库进行更新,删除旧的题目,插入新的题目等。4.3.2 系统流程图考生在网络在线考试系统中通过注册为网站用户,登录网站进行相关操作。考生登录后,可以进行在线考试、查询成绩和修改个人密码的操作。在考试前,考生需要阅读考试规则、选择考试套题后开始考试;考试时间结束时,考生提交试卷;提交试卷的同时,系统将自动返回本次考试的考试结果。网站的管理员通过登录模块可以登录到网站的后台系统,对考生信息、考试信息、管理员信息进行管理。网络在线考试系统的系统流
25、程,如图4.3.2所示。图4.3.2 网络在线考试系统流程图第五章 系统详细设计5.1 数据库设计数据库的设计过程一般是从现实世界出发,进行需求分析、概念分析、逻辑分析和物理设计的。其中需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。需求分析做的不好,甚至会导致整个数据库设计返工重做。概念结构设计师整个数据库设计的关键,它通过对用户需求进行分析、综合、归纳与抽象,形成一个独立、具体的数据可管理系统的概念模型。逻辑结构设计师将概念转换为某个数据库管理系统所支持的数据库模型,并对其进行优化。物理结构设计是为逻辑结构设计选择一个最适合应用环境的物理结构,并对数据可进行布置。5.1.1 数据
26、库分析MySQL是一个小巧的数据库系统软件,特别适用于网站建设。MySQL的设计目标是提供一个高速、可靠、可扩展、易于使用的数据库管理系统。 Apache+PHP+MySQL不仅仅是开源项目,可免费获取,而且它支持Linux、UNIX、OS/2和Windows多个操作系统,可移植性好,这种组合是设计动态网站的最佳解决方案。综上所述,本系统采用MySQL数据库。5.1.2 概念设计(1) 数据库类实体数据库类实体包括服务器名或IP、端口号、用户名、密码、数据库等属性。考生信息实体的E-R 图,如图5.1.2(1)所示。端口号用户名服务器数据库类实体密码数据库 图5.1.2(1) 数据库类实体E-
27、R图(2) 配置页面配置页面包括服务器或IP地址、web端口号和网站名称属性。配置页面的E-R图如图5.1.2(2)所示。端口号服务器或IP地址网站名称配置页面图5.1.2(2) 配置页面E-R图(3) 页眉页面 (4) 页脚页面(5) 模板页面(6) JS文件(7) 样式文件5.1.3 数据库物理结构(1) test_admin(管理员信息表)管理员信息表用来保存管理员信息,主键为adminid。该数据表结构如图5.1.3(1)所示。图5.1.3(1) 管理员信息表结构图(2) test_thread(试卷信息表)试卷信息表用来保存试卷信息。主键为id。该数据表结构如图5.1.3(2)所示。
28、图5.1.3(2) 试卷信息结构图(3) test_title(考题信息表)考题信息表用来保存考试题目信息和考题正确答案等相关信息。该数据表结构如图5.1.3(3)所示。图5.1.3(3) 考题信息结构图(4) test_choice(考题选项信息表)考题选项信息表用来保存考试题目选项信息等相关信息。该数据表结构如图5.1.3(4)所示。图5.1.3(4) 考题选项信息结构图(5) test_setmark(考题类型分值信息表)考题类型分值信息表用来保存考题类型分值信息等相关信息。该数据表结构如图5.1.3(5)所示。图5.1.3(5) 考题选类型分值项信息结构图5.2 系统详细设计与实现根据
29、需求分析,我们把在线考试系统分为六个模块,即数据库交互模块、功能列表模块、题库模块。下面来看系统的详细设计与实现。5.2.1 系统配置系统配置主要包括代码开发工具配置和服务器配置。本系统采用的开发工具是Dreamweaver,数据库则采用得是MySQL,Web服务器采用Apache服务器。 B/S模式系统的目录结构有一定的规律性,因此必须遵循规范,并按照需求分析建立各个模块的目录结构。整个目录结构如下图5.2.1:图5.2.1 目录结构图首先将PHP连接到MySQl数据库服务器程序(conn.php),该程序建立与MySQL服务器的连接,打开onlinetest数据库,代码如下:在每一个PHP
30、程序的开头通过以下语句引用db_mysql.php程序:require(“db_mysql.php”);5.2.2 前台详细设计与实现前台首页设计(1) 考生可以到在线考试系统的前台首页。前台首页主要用于实现前台功能导航,该页面主要包括考试名称列表导航链接。下面为前台首页页面,如图5.2.2(1)所示。图5.2.2(1) 前台首页页面(2) 在线考试系统前台首页主要实现了考生选择试卷,参加考试如图5.2.2(2)所示。图5.2.2(2) 考生进行考试页面在线考试模块设计(1) 在线考试模块的主要功能是允许考生在网站上针对指定的课程进行考试。在该模块中,考生首先需要登录到本系统中,阅读考试规则,
31、在同意所列出的考试规则后,才能选择考试类别和套题,然后进入考试页面进行答题,当考生提交试卷或者到达考试结束时间时,系统将自动对考生提交的试卷进行评分,并给出最终考试成绩。在线考试模块的系统流程如图5.2.2所示。图5.2.2 在线考试模块的系统流程图(2) 在线考试模块中最核心的功能是如何输出考题/如何对提交的答案进行判断,并且将答案输出到当前页中,这是在线考试最关键之处。把系统需要的全部数据库制作完成以后,将初始化模块和数据库模块联系起来,根据题型比例,组成一张完整的试卷。由于上述三方面的内容都在同一页中显示,所以在技术实现的过程中这三方面是以一个整体的形式出现。单选题输出,答案判断和考题答
32、案输出的关键代码如下:query_first(SELECT radio,checkbox FROM .$db_prefix.setmark); /缓存所有正确答案 $answers = $db-query(SELECT id,title,choicetype,answer FROM .$db_prefix.title WHERE 1); $answer_array = array(); $titles = array(); $error = array(); $tmark = 0; while($row = $db-fetch_array($answers) $answer_array$row
33、id = $rowanswer; $titles$rowid = $rowtitle; if($rowchoicetype=radio) $tmark += $getsetmarkradio; elseif($rowchoicetype=checkbox) $tmark += $getsetmarkcheckbox; $mark = 0; foreach($_POSTradio as $titleid=$choice) if($choice = $answer_array$titleid) $mark += $getsetmarkradio; else $error = array($titl
34、eid,$choice,$answer_array$titleid); foreach($_POSTcheckbox as $titleid=$choice) $c_answers = explode(,$answer_array$titleid); $flag = false; foreach($c_answers as $answer) if(!in_array($answer,$choice) $flag = true; foreach($choice as $answer) if(!in_array($answer,$c_answers) $flag = true; if($flag)
35、 $error = array($titleid,implode(,$choice),$answer_array$titleid); continue; $mark += $getsetmarkcheckbox; $msg = 本次考试总分$tmark分n你的得分$mark分nn-n; if($error) $msg .= 以下题目你回答错误:n; foreach($error as $v) $msg .= n题目:$titles$v0n你的答案:$v1n正确答案:$v2nn; $msg=str_replace(>,$msg); $msg=str_replace(<,$msg);
36、echo alert($msg);document.location.href=index.php; exit;if(!$threadid) echo 参数错误; echo ; exit;/考试名称$threads = $db-query_first(SELECT name FROM .$db_prefix.thread WHERE id=$threadid);$threadtitle = $threadsname;/题目表单$conditions = $threadid ? threadid=$threadid : 1;$titles = $db-query(SELECT * FROM .$
37、db_prefix.title WHERE $conditions ORDER BY id ASC);$titlelist = false;$int = 0;$chars=Array(1=A,2=B,3=C,4=D,5=E,6=F,7=G);while($title = $db-fetch_array($titles) $int+; $tests = $db-query(SELECT * FROM .$db_prefix.choice WHERE extends=$titleid ORDER BY id ASC); $choices = ; $i=0; while($test=$db-fetc
38、h_array($tests) $i+; $checked = $testIsDefault ? checked : false; if($titlechoicetype=radio) $choices .= .chr(64+$i). $testchoice /else $choices .= .$chars$i. $testchoice / eval($titlelist .= .gettemplate(test_title_list).;);eval(
39、$header = .gettemplate(test_header).;);eval($footer = .gettemplate(test_footer).;);eval(dooutput(.gettemplate(test_test).););? (3) 下面为考生通过提交答案后,自动计算得分和给出错误题目及正确答案运行结果,如图5.2.2(3)所示。图5.2.2(3) 考生提交答案后运行结果5.2.3 后台详细设计与实现后台首页设计(1) 在线考试系统的后台首页是管理员对网站信息进行管理的首页面。在该页面中,管理员可以清楚地了解网站后台管理系统包含的基本操作。在线考试网后台首页包含的主要模
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100