为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于php+mysql的在线考试系统 毕业设计说明书word格式

2017-08-31 49页 doc 370KB 51阅读

用户头像

is_713593

暂无简介

举报
基于php+mysql的在线考试系统 毕业设计说明书word格式基于php+mysql的在线考试系统 毕业设计说明书word格式 2012届毕业设计说明书 无纸化在线考试系统 系 、 部: 计算机与信息科学学院 学生姓名: 贺玲玲 指导教师: 曾利军 职称 讲师 专 业: 软件技术 班 级: 软件0902班 完成时间: 2012年5月17日 摘 要 随着科技的发展,网络技术已经深入到人们的日常生活中,同时带来了教育方式的一次变革。而网络考试则是一个很重要的方向。基于Web技术的网络考试系统可以借助于遍布全球的Internet进行。因此考试既可以在本地进行,也可以在异地进行,大大...
基于php+mysql的在线考试系统   毕业设计说明书word格式
基于php+mysql的在线考试系统 毕业设计说明书word格式 2012届毕业设计说明书 无纸化在线考试系统 系 、 部: 计算机与信息科学学院 学生姓名: 贺玲玲 指导教师: 曾利军 职称 讲师 专 业: 软件技术 班 级: 软件0902班 完成时间: 2012年5月17日 摘 要 随着科技的发展,网络技术已经深入到人们的日常生活中,同时带来了教育方式的一次变革。而网络考试则是一个很重要的方向。基于Web技术的网络考试系统可以借助于遍布全球的Internet进行。因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。并且缩短了传统考试要求老师打印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和试卷,这个漫长而复杂的过程,使考试更趋于客观、公正。 本文介绍了一个具有在线考试、及时阅卷、成绩查询以及考和考生信息管理等功能的无纸化在线考试系统。该系统是基于PHP和MySQL,为了配合网上教学建立的“网上考试系统”,实现网上学习一体化而设计的。设计本系统要熟悉HTML,PHP语言及MySQL数据库的编辑和应用。其中用到了Dreamweaver帮助进行站点和网页设计,还用到了phpmyadmin对MySQL数据库进行可视化操作。 全文共分为绪论、系统分析、设计工具及关键技术介绍、系统概要设计、系统详细设计、系统测试、 总结展望、参考文献。详细阐述了系统分析、系统设计的方法及其内容。 关键词:在线考试系统;及时阅卷;基于php;MySQL II ABSTRACT With the development of science and technology, network technology has deep into the People's Daily life, and the way of education brings a transformation. And network exam is a very important direction. Based on the Web technology network exam system can all over the world by Internet. So the exam can in local, or in other cities, greatly expand the flexibility of the exam. And shorten the traditional test request print examination paper, arrange the exam teacher, monitors, collection, as a test, evaluation and analysis of the test paper test papers, the long and complex process, tend to be more objective and fair exam. This paper introduces a on-line exam, timely with scores query scoring, and examination questions and the examinee information management functions of network on-line examination system. The system is based on PHP and MySQL, in order to match the online teaching set up "online examination system, the realization of online learning and the integration of design. Design the system must be familiar with the HTML, PHP language and MySQL database editors and application. With the help of Dreamweaver on site and web design, still use the phpmyadmin MySQL database of visual operation. Full text is divided into the introduction, system analysis, design tools and key technology is introduced, the system design, system detailed summary design, system test and summarized the outlook and references. Expounds the system analysis, system design method and its content. Keywords: on-line examination system; Timely reading; Based on the PHP; MySQL III 目 录 1 绪 论 ................................................................................................................ 1 1.1 系统开发的现状............................................................................................ 1 1.2 系统开发的目的............................................................................................ 2 1.3 系统开发的意义............................................................................................ 2 2 系统分析............................................................................................................. 3 2.1 可行性分析 ................................................................................................... 3 2.1.1 经济可行性 ............................................................................................ 3 2.1.2 技术可行性 ............................................................................................ 3 2.2 需求分析 ....................................................................................................... 3 2.3 开发环境 ....................................................................................................... 4 3 设计工具及关键技术介绍 .................................................................................. 5 3.1 APACHE简介 ............................................................................................... 5 3.2 PHP语言简介 ............................................................................................... 5 3.3 PHP 连接MYSQL数据库 ............................................................................ 6 3.3.1 PHP连接数据库的两种方法 ................................................................. 6 3.3.2 PHP对MySQL数据库的两种连接方式............................................... 6 3.4 AJAX简介 .................................................................................................... 7 4 系统概要设计 ..................................................................................................... 8 4.1 系统的总体设计............................................................................................ 8 4.2 数据库设计 ................................................................................................... 8 4.3 系统结构设计 ............................................................................................... 9 4.3.1 系统功能结构 ........................................................................................ 9 4.3.2 系统流程图 .......................................................................................... 10 5 系统详细设计 .................................................................................................... 11 5.1 数据库设计 .................................................................................................. 11 5.1.1 数据库分析 ........................................................................................... 11 5.1.2 概念设计 ............................................................................................... 11 i 5.1.3 数据库物理结构 .................................................................................. 13 5.2 系统详细设计与实现 .................................................................................. 14 5.2.1 系统配置 .............................................................................................. 14 5.2.2 前台详细设计与实现 ........................................................................... 15 5.2.3 后台详细设计与实现 ........................................................................... 25 6 系统测试........................................................................................................... 30 6.1 测试环境 ..................................................................................................... 30 6.2 什么是软件测试.......................................................................................... 30 6.3 软件测试的目标与方法 .............................................................................. 30 6.4 系统评估 ..................................................................................................... 31 7 总结与展望 ....................................................................................................... 32参考文献 ................................................................................................................ 33 致 谢 .................................................................................................................... 34 附 录 .................................................................................................................... 35 ii 1 绪 论 1.1 系统开发的现状 世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,采取推进教育信息化。美国政府在1996年提出了“教育 ”,指出到21世纪初让全美国的每间教室和每个图书馆都将联上信息高技术规划 速公路,让每个孩子都能在“21世纪教师”网络服务。澳大利亚国家公共资源管理局已于1995年4月建立“澳大利亚教育网”,并联通Internet,该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小学。 网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。例如在美国,一些著名的考试就采用了网上在线考试的形式包括Microsoft公司的MCSE(微软系统工程师认证考试)GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研究生入学考试)等等,并己在全范应用。 在国内,普遍地看绝大多数远程教育的考试还停留在传统考试方式。在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。但是对互联网的真正应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能适应现代考试的需要。 近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作的负担,提高工作效率。于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品。比如全国计算机等级考试软件、职称计算机能力考试等等。有力地推动了我国网络化在线考试的发展水平,并积累了大量有价值的经验。 1 1.2 系统开发的目的 信息技术的发展对教育的影响是巨大的,随着信息技术和网络技术的迅速发展,教育信息化和网络化也将成为必然的趋势。作为教育评价和衡量学生能力的考试也正经历着无纸化和网络化的飞跃。网络的开放性和分布性的特点以及基于互联网的巨大计算能力使得考试突破了时间和空间的限制。基于网络技术的考试系统正成为人们的研究热点之一,其中,基于Web技术的考试系统已成为互联网的重要应用之一。 目前教师采用在线考试系统的还不多见,因为教师个体精力确实有限。但随着教研组制度的完善和教学交流活动的增加。对题库的创建将提上议事的日程,在线考试系统将大有用武之地,且能确保考风考纪的根本好转。 在线考试具有动态出题、自动阅卷、成绩分析等优点,不仅大大减轻了教师人工组卷繁琐的工作量,提高资源利用率,其运行过程中,组卷速度较快,较少出现重复的现象,而且有利于教考分离的实施,符合目前教学改革的目标。更节省纸张资源,增强环保意识。因此,在线考试系统具有潜在的巨大商机和研究价值,是未来数字化校园系统研究的热点内容。 1.3 系统开发的意义 很多学校学生的期末考试仍采用任课教师(个人或集体)考前出题的方式。为解决学生压题,考前漏题,补(缓)考试题与正式考试试题题量及难度差异问题,教务管理部门通常要求教师同时出多套试卷,其题量与难度要求相同,并且要同时给出答案和评分。 若建立题库,每次考试前由题库中题目随机生成试卷,则可较好地解决考教分离的问题,也可将广大教师从每学期末繁重的命题工作中解放出来。近年来,部分学校陆续开发了一些基于微机的题库系统,并作为成果向其它学校推广,但这些题库一般都是结合本校具体情况,针对单一课程的小型题库,甚至某些学校购得的题库系统中的题目本身是不可维护的,即使题目已不适合自己的学生考试使用,也无法更新题库中的题目。 为解决题库系统中存在的这些问题,作者经过研究几种不同的网上系统,经充分的考虑,最后给出了一个较为理想的题库系统解决方案,并结合当前比较使用的B/S结构开发一个功能较完备的网上考试系统。 2 2 系统分析 2.1 可行性分析 可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。通过分析解法的利弊,来判定系统目标和规模是否现实,系统完成后所能带来的效益是否达到值得去投资开发这个系统的程度。网络在线考试系统的可行性可从以下两方面考虑。 2.1.1 经济可行性 定期的组织考试是各个院校及时掌握学生学习成绩的有效方式,利用网络在线考试系统,一方面可以节省人力资源,降低考试成本。另一方面,在线考试系统能够快速进行考试和评分,体现出考试的客观与公正性。 2.1.2 技术可行性 开发一个网络在线考试系统,涉及到的最核心的技术问题就是如何实现在不刷新页面的情况下实时显示考试时间及剩余时间,并做到到达考试结束时间时自动提交试卷的功能。通过Ajax技术可以轻松实现这些功能,这为网络在线考试系统的开发提供了技术保障。 2.2 需求分析 随着计算机技术的发展和网络技术的日益成熟,通过网络进行信息交流已成为一种快捷的交互方式。在这种网络环境下,学校或考试机构希望通过建立网络在线考试网站来扩大知名度、降低管理成本和减少人力物力的投资,从而为考生提供更全面、更灵活的服务,并全面、准确地对考试进行跟踪和评价。与此同时,考生希望根据自己的学习情况进行测试,并能够得到客观、科学的评价;教务人员希望能够有效地改进现有的考试模式,提高考试效率。 通过实际情况的调查,要求网络在线考试系统具有以下功能: , 界面设计美观大方、方便、快捷、操作灵活,树立企业形象。 , 要求实现在线考试功能,自动核算考试成绩。 , 要求提供考试时间倒计时功能,使考生实时了解考试剩余时间。 , 要求系统自动阅卷,保证考试成绩真实有效。 , 要求考生凭准考证号查询考试成绩,以保证信息安全。 3 2.3 开发环境 Apache是目前应用最广的Web服务器;PHP是一种类似ASP 的服务器端脚本语言,而MySQL是一个小巧的数据库系统软件,它们特别适用于网站建设。Apache+PHP+MySQL不仅仅是开源项目,可免费获取,而且它支持Linux、UNIX、OS/2和Windows多个操作系统,可移植性好。因此,这种组合是设计动态网站的最佳解决方案。 (1) 硬件需求:计算机(winXP系统) (2) 软件需求: 开发工具:Dreamweaver CS5 服务器端开发环境:Wampserver Version2(Apache 2.2.11+PHP 5.2.9+ MySQL 5.1.32+ phpMyAdmin 3.1.3) 4 3 设计工具及关键技术介绍 3.1 Apache简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache web服务器软件拥有以下特性: (1) 支持最新的HTTP/1.1通信协议 (2) 拥有简单而强有力的基于文件的配置过程 (3) 支持通用网关接口 (4) 支持基于IP和基于域名的虚拟主机 (5) 支持多种方式的HTTP认证 (6) 集成Perl处理模块 (7) 集成代理服务器模块 (8) 支持实时监视服务器状态和定制服务器日志 (9) 支持服务器端包含指令(SSI) (10) 支持安全Socket层(SSL) (11) 提供用户会话过程的跟踪 (12) 支持FastCGI (13) 通过第三方模块可以支持Java Servlets 3.2 PHP语言简介 PHP是英文超级文本预处理语言Hypertext Preprocessor的缩写,它是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,PHP 独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比CGI或者Perl更快速的执行动态网页。 用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。 以下罗列了PHP所具有的一些特点: (1) 开放的源代码。所有的PHP源代码事实上都可以得到。 (2) PHP是免费的。和其它技术相比,PHP本身免费。 5 (3) PHP的快捷性。程序开发快,运行快,技术本身容易学习,上手快。 嵌入HTML:因为PHP可以嵌入HTML语言,它相对于其他语言,编 辑简单,实用性强,更适合初学者。 (4) 跨平台性强。由于PHP是运行在服务器端的脚本,可以运行在UNIX、 LINUX、WINDOWS下。 (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();返回布尔型数据值 操纵数据库中的数据: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库函数还是使用ODBC接口连接,PHP对MySQL 数据库的连接方式都有两种。分别是永久连接和非永久连接方式。 (1) 永久连接方式:它的最大的优点是效率比非永久连接方式高,当客户端对MySQL服务器的连接请求非常频繁时,永久连接将更加高效。它使得每个子过程在其生命周期中只做一次连接操作,而非每次在处理一个页面时都要向MySQL服务器提出连接请求。即每个子过程将对服务器建立各自独立的永久连接。 6 (2) 非永久连接方式:即短连接方式。当客户端向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。对于大部分网站通常都使用这种连接方式,它虽然没有永久连接方式的效率高,但是可有效避免永久连接所带来的问题和提高服务器承载能力。 3.4 Ajax简介 AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。 通过AJAX,JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,JavaScript可在不重载页面的情况与Web服务器交换数据。AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。AJAX是一种独立于Web服务器软件的浏览器技术。可使因特网应用程序更小、更快、更友好。 主要包含的技术: (1) web标准(standards-based presentation)XHTML+CSS的表示; (2) 使用DOM(Document Object Model)进行动态显示及交互; (3) 使用XML和XSLT进行数据交换及相关操作; (4) 使用XMLHttpRequest进行异步数据查询、检索; (5) 使用JavaScript将所有的东西绑定在一起。 7 4 系统概要设计 4.1 系统的总体设计 根据系统的功能要求,网络考试系统中涉及两种不同的用户:考试用户、管理员,他们的职能各不相同。考试用户进入网络考试系统,可以按照学习通知完成查询考试通知,查询个人考试成绩,修改密码,在线考试。管理员能够发布学习通知,发布考试通知,设置考试时长,考试时段,考试题型比例,进行试题库维护,包括删除,添加,及时更新,按不同条件查询考生的成绩并进行分析统计。所有数据都存储在服务器的数据库中,具体应达到以下目标: (1) 采用开放、动态的系统框架,加强用户与网站的交互性。 (2) 具有空间性。被授权的用户可以在异地登陆考试系统,无须到指定地点 行进行考试。 (3) 操作简单方便,界面简洁美观。 (4) 系统提供考试倒计时功能,使考生了解考试剩余时间。 (5) 随机抽取试题。 (6) 实现自动提交试卷的功能。当考试时间到达规定时间,如果考生还未提 交试卷,系统将自动交卷,以保证考试严肃、公正地进行。 (7) 系统自动阅卷,保证成绩的真实准确。 (8) 考生可以查询自己的考试成绩。 4.2 数据库设计 数据库设计的任务是确定系统所需的数据库,它的价值在于它能够向用户提供有意义的信息,还有向系统供应所需的一切数据。在MySQL数据库系统中建立一个名为db_online的数据库,在该数据库中可以创建与实体对应的数据表,存放考试系统中与考生,管理员,考题类别,考试成绩相关的数据。下面给出数据库中所包含的数据表的结构图,如图1所示。 图1 db_online 数据库所包含数据表的结构图 8 4.3 系统结构设计 4.3.1 系统功能结构 网络考试系统的考生用户和管理员分别为前台用户和后台用户,他们的功能 职责不同,其功能结构图如图2所示。 网络考试系统 管理员功能页面考试用户功能页面 课发考题成参考查修 程布试库绩加试询改 管通管管查考通成密 理知理理询试知绩码 图2 网络考试系统功能结构图 考生功能: (1) 参加考试:选择考试课程之后,考试开始并计时,手动和自动提交试 卷,自动阅卷。 (2) 查询成绩:考生可以查询本人的成绩信息。 (3) 修改密码:考生修改自己的密码。 (4) 学习通知:考生可以查看管理员发布的考试通知。 管理员功能: (1) 发布通知:管理员进入发布通知页面,发布考试通知。 (2) 考试管理:添加、修改考试科目;修改试卷的题型比例;修改考题类 型,考题类别,确定考试日期和考试时长。 (3) 题库管理:及时对题库进行更新,删除旧的题目,插入新的题目等。 (4) 成绩查询:管理员可以查看权限范围内所有用户的成绩信息,并可以 对所有信息进行分析统计。 9 4.3.2 系统流程图 考生在网络在线考试系统中通过注册为网站用户,登录网站进行相关操作。考生登录后,可以进行在线考试、查询成绩和修改个人密码的操作。在考试前,考生需要阅读考试规则、选择考试套题后开始考试;考试时间结束时,考生提交试卷;提交试卷的同时,系统将自动返回本次考试的考试结果。网站的管理员通过登录模块可以登录到网站的后台系统,对考生信息、考试信息、管理员信息进行管理。网络在线考试系统的系统流程,如图3所示。 图3 网络在线考试系统流程图 10 5 系统详细设计 5.1 数据库设计 数据库的设计过程一般是从现实世界出发,进行需求分析、概念分析、逻辑分析和物理设计的。其中需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。需求分析做的不好,甚至会导致整个数据库设计返工重做。概念结构设计师整个数据库设计的关键,它通过对用户需求进行分析、综合、归纳与抽象,形成一个独立、具体的数据可管理系统的概念模型。逻辑结构设计师将概念转换为某个数据库管理系统所支持的数据库模型,并对其进行优化。物理结构设计是为逻辑结构设计选择一个最适合应用环境的物理结构,并对数据可进行布置。 5.1.1 数据库分析 MySQL是一个小巧的数据库系统软件,特别适用于网站建设。MySQL的设计目标是提供一个高速、可靠、可扩展、易于使用的数据库管理系统。 Apache+PHP+MySQL不仅仅是开源项目,可免费获取,而且它支持Linux、UNIX、OS/2和Windows多个操作系统,可移植性好,这种组合是设计动态网站的最佳解决方案。综上所述,本系统采用MySQL数据库。 5.1.2 概念设计 (1) 考生信息实体 考生信息实体包括编号、考生姓名、联系方式、准考证号、考试成绩、考题类别、考试时间、联系地址、考试状态和考生密码等属性。考生信息实体的E-R 图,如图4所示。 考生姓名 联系方式 编号 准考证号 考生密码 考生 考试成绩 考试状态 考题类别 考试时间 图4 考生信息实体E-R图 11 (2) 管理员实体 管理员实体包括编号、管理员名称和加密密码属性。 管理员实体的E-R图如图5所示。 管理员 编号 密码 管理员姓名 图5 管理员信息实体E-R图 (3) 考题类别实体 考题类别实体包括编号和考题类别名称。 考题类别实体的E-R图,如图6所示。 考题类别 编号 类别名称 图6 考题类别实体E-R图 (4) 考题信息实体 考题信息实体包括编号、考题类别、考试成绩、考题内容、考题答案、考题 正确答案及考题所属套题等属性。 考试题目实体的E-R图如图7所示。 考题类别 别 编号 考试成绩 考题信息 所属套题 考题内容 正确答案 考题答案 图7 考题信息实体E-R图 12 5.1.3 数据库物理结构 (1) tb_user(考生信息表) 考生信息表用来保存考生信息,主键为online_id。 该数据表结构如图8所示。 图8 考生信息结构图 (2) tb_admin(管理员信息表) 管理员信息表用来保存管理员的用户名和密码。主键为id。 该数据表结构如图9所示。 图9 管理员信息结构图 (3) tb_ktlb(考题类别信息表) 考题类别信息表用来保存考题类别。该数据表结构如图10所示。 图10 考题类别信息结构图 13 (4) tb_kt(考题信息表) 考题信息表用来保存考试题目信息和考题答案等相关信息。 该数据表结构如图11所示。 图11 考题信息结构图 在数据库系统运行过程中,必须不断地对其进行评价、调整与修改,内容包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造等。 5.2 系统详细设计与实现 根据需求分析,我们把在线考试系统分为六个模块,即数据库交互模块、功能列表模块、题库模块、试卷生成模块、考试生成模块及在线考试模块。下面来看系统的详细设计与实现。 5.2.1 系统配置 系统配置主要包括代码开发工具配置和服务器配置。本系统采用的开发工具是Dreamweaver,数据库则采用得是MySQL,Web服务器采用Apache服务器。 B/S模式系统的目录结构有一定的规律性,因此必须遵循规范,并按照需求分析建立各个模块的目录结构。整个目录结构如下图: 图12 目录结构图 首先将PHP连接到MySQl数据库服务器程序(conn.php),该程序建立与MySQL服务器的连接,打开db_online数据库,代码如下: 14 在每一个PHP程序的开头通过以下语句引用conn.php程序: require(“.../conn.php”); 5.2.2 前台详细设计与实现 前台首页设计 (1) 考生通过“考生登录”模块的验证后,可以登录到网络在线考试系统 的前台首页。前台首页主要用于实现前台功能导航,该页面主要包括考生注册、 考生登录、修改密码、成绩查询、进入考场和退出信息6个导航链接。 下面为前台首页页面,如图13所示。 图13 前台首页页面 15 (2) 网络在线考试系统前台首页主要实现了考生登录功能,考生通过准考 证号和密码进行登录。考生登录页面中所涉及到的重要表单元素如表1所示。 表1 考题信息表 名称 元素类型 重要属性 含义 form1 form method="post" action="denglu_ok.php" 表单 online_number text id="online_number" size="20" 准考证号码 online_pass password id="online_pass" size="20" 考生密码 Submit submit value="提交" “提交”按钮 (3) 考生在考生登录页面录入准确的准考证号和密码后,单击“提交”按 钮,提交表单信息到数据处理页,应用mysql_query()函数检索考生是否成功登 录。如果查询结果为真,则将准考证号存储在session变量中;否则弹出提示信 息。代码如下: alert('用户名或密码错误');history.go(-1);"; } else{ session_register("online_number"); echo ""; } ?> 16 考生信息模块设计: (1) 考生信息模块主要包括考生注册、考生登录、修改密码3个功能。考 生首先要注册为网站用户,然后才被授权登录网站进行一系列操作的权限;登录 后考生还可以修改个人的密码。考生信息模块的系统流程如图14所示。 开 始 否 考生注册 是 考生登录 否 是 结束 修改密码 图14 考生信息模块的系统流程图 (2) 在考生注册信息模块中应用到Ajax无刷新技术获取考生的准考证号码 和密码。在介绍该功能的实现过程之前,先对Ajax技术中的XmlHttpRequest对 象的属性和方法进行详细的讲解。XmlHttpRequest对象是Ajax技术的核心,有 关该对象的属性和方法的详细介绍如表2和表3所示。 表2 XmlHttpRequest对象的属性 属性 描述 readyState 返回当前的请求状态 onreadystatechange 当readyState属性改变时就可以读取此属性值 status 返回http状态码 responseText 将返回的响应信息用字符串表示 ResponseBody 返回响应信息正文,格式为字节数组 ResponseXML 将响应的domcoment对象解析成XML文档并返回 表3 XmlHttpRequest的方法 方法 描述 Open 初始化一个新请求 Send 发送请求 GetAllReponseHeaders 返回所有Http头信息 GetResponseHearder 返回指定的Http头信息 SetRequestHeader 添加指定的Http头信息 Abort 停止当前的Http请求 17 考生注册时的关键代码如下: 在考生注册页面zhuce.php 页中实现考生注册信息的提交,并且通过Ajax 的页面无刷新技术获取考生的准考证号和密码。 zhuce.php 页中的关键代码如下:
在zhuce_js.js 文件中首先定义一个createXmlHttpRequestObject()对象,并获 取XMLHttpRrequest对象,然后定义xmlHttp 用来存储将要使用的 XMLHttpRrequest 对象。关键代码如下: var xmlHttp=createXmlHttpRequestObject(); function createXmlHttpRequestObject(){ var xmlHttp; if(window.ActiveXObject){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ xmlHttp=false; } }else{ try{ xmlHttp=new XMLHttpRequest(); }catch(e){ xmlHttp=false; } } if(!xmlHttp) alert("返回创建的对象或显示错误信息"); else return xmlHttp; } 18 在网络在线考试系统首页,单击“考生注册”超链接,即可进入考生注册页面,输入个人的真实资料后,单击“注册”按钮,系统将根据输入的个人资料自动生成准考证号和考生密码,下面为考生注册的运行结果,如图15所示。 图15 考生注册运行结果 (3) 考生登录编号的生成主要应用的是mt_rand()函数和substr()函数。首先通过mt_rand()函数来获取一个100000,999999之间的随机数,然后应用substr()函数从该随机数中获取6个数字,作为考生编号。 mt_rand()函数的功能是获取随机数的值。语法格式如下: int mt_rand([int min,int max]) 下面应用mt_rand()函数来获取100000,999999 之间的随机数。代码如下: 运行结果为:321864 19 (4) 下面为考生修改密码运行结果,如图16所示。 图16 考生修改密码运行结果 在线考试模块设计: (1) 在线考试模块的主要功能是允许考生在网站上针对指定的课程进行考试。在该模块中,考生首先需要登录到本系统中,阅读考试规则,在同意所列出的考试规则后,才能选择考试类别和套题,然后进入考试页面进行答题,当考生提交试卷或者到达考试结束时间时,系统将自动对考生提交的试卷进行评分,并给出最终考试成绩。在线考试模块的系统流程如图17所示。 开始 选择考试科目 在线考试 提交试卷/到达 考试结束时间 显示本次考试成绩 图17 在线考试模块的系统流程图 结束 20 (2) 在线考试模块中最核心的功能是如何输出考题/如何对提交的答案进行 判断,并且将答案输出到当前页中,这是在线考试最关键之处。 把系统需要的全部数据库制作完成以后,将初始化模块和数据库模块联系起 来,根据题型比例,随机选出符合规格的试题,组成一张完整的试卷。考生根据 考试通知选择要考试的课程名称,然后系统根据管理员设置的考试信息,存于 tb_admin表中,从题库,即tb_kt表中随机地抽取一定量的题目,比如50个,产 生随机的一张试卷。 流程图如图18所示。 管理员设置考生选择 随题考题类别 机型 函分 选择套题数数 生成试卷 图18 试卷产生模块流程图 不同的考生抽取的题目都产生于试题库,但是由于是随机抽取所以不同的人 试卷不一样,所以,这能够更好地体现的考试的公平性。 由于上述三方面的内容都在同一页中显示,所以在技术实现的过程中这三方 面是以一个整体的形式出现。单选题输出,答案判断和考题答案输出的关键代码 如下:         ".substr($str1,0).""; echo " 正确  分数:"; echo "".$myrow1['fenzhi'].""; $fen1+=$myrow1["fenzhi"]; }else{ echo "您输入的答案 "; echo "".substr($str1,0).""; echo " 错误  "; echo "正确答案: ".substr($myrow1['ans'],0)."" ; }} ?> 22 (3) 下面为考生通过系统验证登录后,进入考场时的运行结果,如图19所示。 图19 考生进入考场时运行结果 (4) 考生阅读考试考试规则且同意后,则可进行考题的选择,运行结果如下图20所示。 图20 考生选择考题运行结果 23 (5) 考生选择好考试类别和套题之后,则可正式进入考试页面进行答题。且能进行自动倒计时。如图21所示。 图21 考生开始考试运行结果 (6) 计时模块的实现 XMLHttpRequest在浏览器中运行,将其代码保存在一个名称为xmlHttpRequest.js的文件中,然后在需要应用Ajax技术的页面中应用以下代码包含该文件。 接下来编写两个自定义的函数showtime()和sparetime(),通过showtime()函数来读取显示时间的文件showtime.php中的数据;通过sparetime()函数读取获取剩余时间的文件sparetime.php中的数据。 showtime.php文件中实现当前时间显示的原理是:获取一个在session变量中存储的考试时间戳,然后再应用mktime()函数来获取当前时间的时间戳,应用当前的时间戳减去考试开始时间的时间戳,最后应用date()函数输出获取的新时间戳的时间值。 sparetime.php中获取剩余时间的实现原理是:首先设置考试时长为30分钟,在考试开始计时的基础上加上30分钟,然后用考试时间减去系统的当前时间,获取的就是考试剩余时间,当剩余时间为零时,系统将自动提交试卷。 24 5.2.3 后台详细设计与实现 后台首页设计: (1) 网络在线考试系统的后台首页是管理员对网站信息进行管理的首页面。在该页面中,管理员可以清楚地了解网站后台管理系统包含的基本操作。网络在线考试网后台首页包含的主要模块如下: , 管理员信息管理:主要用于修改管理员信息。 , 考生信息管理:主要包括查看注册考生信息列表和考生信息查询、考试 成绩查询和删除已注册的考生信息。 , 考题类别管理:主要包括查看考题类别列表、添加考题类别信息和删除 考题类别信息。 , 考题信息添加:主要用于添加为各类套题添加单选题、多选题、问答题 和论述题,并设置每题的分数及内容。 , 考题信息管理:主要包括查看考题类别列表、修改套题信息和删除套题 信息。 , 包括查看考试题目列表、添加考试题目、修改考试题目和删除考试题目。 , 退出管理:主要用于退出后台管理系统。 (2) 下面为本系统的后台登录页面,如图22所示。 图22 后台登录首页 25 (3) 下面为管理员登录后台系统后,所显示的后台功能页面,如图23所示。 图23 后台功能主页面 考题信息管理模块设计: 考题信息管理模块主要包括查询考题信息、添加考题信息、修改考题信息和删除考题信息等4个功能。 在实现考题信息管理模块时,为了更好地管理,因此把考题类别单独存储于一个数据表tb_lb中,这样在录入考题信息时就可以把考题类别以下拉列表的形式从数据库中读取出来。这种从下拉列表中动态显示数据表某列的字段值的方法,不仅方便管理员更快捷、灵活地操作网络在线考试系统,更大大提高了工作效率,达到事半功倍的效果。 下拉列表是一种最节省空间的数据显示方式,正常状态下只能看到一个选项,单击控制按钮后,可以显示一定数量的选项,如果超出这个数量,会自动显示滚动条,管理员可以通过拖动滚动条来选择各选项。 下面介绍从下拉列表中动态显示数据表某列的字段值的方法。 首页,创建与数据库的连接。代码如下: 26 然后应用下拉列表框和select查询语句相结合实现在下拉列表中显示数据表中的online_ktlb字段的值,通过while循环语句进行输出。代码如下: (1) 下面为管理员添加考题时的运行界面,考试题目添加包含两个步骤: 一是为添加的考试题目选择专业、课程以及套题,二是将填写的考试题目信息插入到数据库中。 添加考题运行结果如图24所示。 图24 添加考题运行结果 27 考题信息添加页面涉及到的HTML表单的重要元素如表4所示。 表4 考题信息添加页面涉及到的HTML表单的重要元素 名称 类型 重要属性 含义 form2 form method=”post” action=”ktxx_tj_ok.php” 表单 kt_lb select kt_small_lb select kt_fs text size="10" 考试成绩 kt_nr textarea cols="60" rows="5" 考题内容 kt_daan textarea cols="60" rows="5" 考题答案 kt_zqdaan textarea cols="60" rows="5" 考题正确答案 Submit2 submit value="提交考题" “提交考题”按钮 添加考试题目首先要选择考题的类别,然后所择所属套题,再选择考题类型,最后根据考题类别将考题内容添加完整。 提交考题表单到数据处理页,程序处理页面首先应用变量获取到表单数据,然后应用insert…into语句将其插入到考题信息表tb_kt中。如果考题信息添加成功,则弹出提示信息,并重新定位到考题信息添加页面。 alert('考题添加成功~'); window.location.href='index.php?htgl=考题信息添加';"; } } ?> 28 (2) 管理员登录后,单击“考题信息管理”超链接,进入到查询考题信息页面,选择考题类别后,单击“考题查找”按钮,将查询出该类别下的所有考题信息。同时提供修改考题信息和删除考题信息的功能。查询考题信息页面的运行结果如图25所示。 图25 考题信息管理运行结果 在考试题目查询页面中,首先建立用于查询的表单form1,该表单中包含“考题类别”列表/菜单控件以及“考题查找”按钮。 当管理员选择考题类别后,单击“考题查找”按钮,提交考题kt_lb类别到当前页,然后根据获取到的考题类别检索考题信息表tb_kt,并将该类别下的所有考题信息输出到浏览器。 查询考题信息页面提供了修改考题信息的功能,管理员可对指定的考题信息进行编辑,单击“修改”按钮后,提交Submit2表单信息到数据处理页ktxx_gl_ok.php。 查询考题信息页面提供了删除考题信息的功能,管理员可对指定的考题信息进行删除,单击“删除”按钮后,提交Submit3表单信息到处理页ktxx_gl_ok.php。 29 6 系统测试 6.1 测试环境 服务器端:Windows XP Pro SP2、Apache、MySQL 客户端:Windows XP Pro SP2、360安全浏览器5.0正式版、IE8.0 6.2 什么是软件测试 软件测试是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终的复审,是软件质量保证的关键步骤。确切的说,软件测试就是为了发现错误而执行的过程。一般分为两个阶段: (1) 单元测试:在编完一模块后进行测试; (2) 综合测试:在开发完软件后进行综合测试。 6.3 软件测试的目标与方法 G.Myers给出了关于测试的一些规则,这些规则可以看作是测试的目标或定义: (1) 测试是为了发现程序中的错误而执行程序的过程; (2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试; (3) 成功的测试是发现了至今为止尚未发现的错误的测试。 测试任何软件都有两种方法:黑盒测试和白盒测试法。 黑盒测试法(又称功能测试法)是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否按照规格说明书的规定正常使用。 白盒测试法(又称结构测试法)是把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作。 通过测试并不能证明程序就是完全正确的,但我们的目的就是要通过测试保证软件的可靠性,因此,必须仔细设计测试方案,力争用最少的测试发现尽可能多的错误。 30 6.4 系统评估 该系统是面向学校以及社会各种形式的在线考试,所以所设置的模块基本可以满足考试的基本要求,尽可能的贴近以往的考试形式。其中涉及到管理员、管理员信息、考试信息管理、学生管理、考生信息等。 本系统使用身份验证机制,能更好的保护页面被非法的访问。当用户登录时,用户必须要有有效的身份。根据用户的类型不同其访问权限也有所不同,按权限可分为:管理员、考生。后台通过管理员的用户名和密码,前台客户端则通过考生的准考证号和密码登录,服务器经过核实后,将引导正确登录到系统上的用户进入相关页面。 31 7 总结与展望 计算机网络技术的日益成熟及校园网的逐步普及,为考试信息化提供了良好的基础。利用计算机和网络技术对考试进行管理,具有人工管理无法比拟的优点。在这次的毕业设计中主要设计一个易于管理和维护的面向教学的在线考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。为教师开展平时考核及期末考核提供一个考核平台;为学生利用网络自主学习提供条件;为不同课程的网上考试提供平台。 通过这次毕业设计,对很多东西有了新的认识和新的见解,认识问题的和思考解决办法有了本质上的进步,特别是对一个系统开发的模式有了更深的认识,对专业技能的运用更熟练。 网上考试系统的开发过程中也遇到了很多问题,开始做需求时不确定考试系统到底应该具备那些功能,只知道主要功能就是有试题能考试,但具体流程,怎样实现这些功能就很模糊,所以查看了很多资料才理清楚。数据库设计也是个难点,不明确要实现哪些功能就不能很好的把数据库设计好。设计数据库就是开发一个系统的核心。设计数据库一定要思路清晰,各个数据的流向各个表之间的关系一定要弄清楚,透彻。数据库设计出错了对以后整个系统的影响是最直接的。所以做需求时一定要做好需求分析,考虑完善,数据库设计要谨慎。总之需求分析时能做好就能降低需求变更,再加上设计时考虑到的技术可行性就可以大幅度的降低需求变更。 最终还是完成了预定的需求功能。看到自己独立完成并可以使用的系统给了我很大信心。在本系统的设计过程和论文编写过程中,很多老师、同学都给与了我许多无私的帮助,尤其是我的指导老师给我的论文提出了很多宝贵的修改意见,在这里我向这些无私帮助我的人表示衷心的感谢。 32 参考文献 [1] David Powers著.PHP与Dreamwaver基础教程,,,.北京:人民邮电出版 社,2008(1~50 [2] 聂庆鹏,毛书鹏,王志乐编著(PHP+MySQL动态网站开发与全程实例,,,(北 京:清华大学出版社,2007(30~70 [3] 王维.基于PHP和MySOL的考试系统的研究,,,.中国教青技术装备, 2010(1~7 [4] 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL,D,.计算机工程 与设计,2007(1~4 [5] 宗杰,马国强,刘冉编著(PHP网络编程学习笔记,,,(北京:电子工业 出版社,2008(1~68 [6] 王石,杨英娜编著(精通PHP+MySQL应用开发,,,(北京:人民邮电出 版社,2006(60~100 [7] Tim Boronczyk,Martin E.Psinas编著(熊伟译(PHP&MySQL范例精解—— 创建、修改、重用,,,(北京:清华大学出版社,2009(23~56 [8] 丁月光,孙更新,闫吉辉编著(PHP+MySQL动态网站开发,,,(北京:清 华大学出版社,2008(243~258 [9] 张银鹤,肖新峰,崔程编著(PHP+Ajax网站开发典型实例,,,(北京:电 子工业出版社,2009(15~50 [10] 凯文瑞克著(田佳淳改编(PHP5&MySQL5基础与实例教程,,,(北京: 中国电力出版社,2007.10~87 [11] 张仿彦,刘中华,杨丽编著(PHP项目开发全程实录,,,(北京:清华大 学出版社,2008.567~614 [12] 徐保民等编著(PHP编程基础及应用实例集锦,,,(北京:人民邮电出版 社,2001.37~54 [13] 宫垂刚,韦一,张华丰编著(PHP完全自学手册,,,(北京:机械工业出 版社,2009(1~165 33 致 谢 三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。三年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。 首先要感谢我的指导老师曾利军老师,在论文写作期间,指导老师给予了我极大的帮助,他对我的严格要求使得我的论文有了一定的成果。他深厚的理论素养、丰富的实践经验、严谨的治学态度和扎实的治学方法影响和激励着我,使我受益匪浅。在此谨致以诚挚的敬意和衷心的感谢。 其次,我要感谢专业课的所有老师们,是他们在我的专业课的学习过程中无私的教授给我许多专业知识和技能,使我能够在论文写作的过程中顺利解决难题和疑问。同时还要感谢所有给予我关心和帮助的同学和朋友们,她们在生活和学习中给了我大量的帮助,对她们的关怀和帮助致以崇高的敬意。在今后的人生道路上,我一定谨遵恩师的教诲,发挥自己的潜能。 最后,对阅读和评审本论文的各位老师表示衷心的感谢! 34 附 录 下面是本在线考试系统主要的及前文所涉及的部分代码: 数据库连接文件conn.php: 考生登录文件denglu.php: 网站登录
 
35
      
准考证号码: 密码:
   
考生登录验证denglu_ok.php: alert('用户名或密码错误');history.go(-1);"; } else{ @session_register("online_number"); $_SESSION["online_number"] = $online_number; echo "";} ?> 文档来源网络,版权归原作者。 36 如有侵权,请告知,我看到会立刻处理。 37
/
本文档为【基于php+mysql的在线考试系统 毕业设计说明书word格式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索