版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、核准通过,归档资料。 未经允许,请勿外传! 20122012 届毕业设计说明书届毕业设计说明书 无纸化在线考试系统 系 、 部: 计算机与信息科学学院 学生姓名: 贺玲玲 指导教师: 曾利军 职称 讲师 9jwkffwvg#tym*jg timely reading; based on the php; mysql i 目 录 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 设计工具及关键技术介绍.
2、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 ii 5.1.3 数据库物理结构.13 5.2 系统详细设计与实现.14 5.2
3、.1 系统配置.14 5.2.2 前台详细设计与实现.15 5.2.3 后台详细设计与实现.25 6 系统测试.31 6.1 测试环境.31 6.2 什么是软件测试.31 6.3 软件测试的目标与方法.31 6.4 系统评估.32 7 总结与展望.33 参考文献.34 致 谢.35 附 录.36 1 1 绪 论 1.1 系统开发的现状 世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会 中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把 信息技术应用于教育,采取措施推进教育信息化。美国政府在 1996 年提出了 “教育技术规划” ,指出到 21 世纪初让全美国的
4、每间教室和每个图书馆都将联 上信息高速公路,让每个孩子都能在“21 世纪教师”网络服务。澳大利亚国家公 共资源管理局已于 1995 年 4 月建立“澳大利亚教育网” ,并联通 internet,该网 络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小学。 网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国 外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别 是 internet 业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技 术条件和经济条件上己经成熟。例如在美国,一些著名的考试就采用了网上在 线考试的形式包括 microsoft 公司的 mcs
5、e(微软系统工程师认证考试)gmat(工 商管理硕士入学考试)、托福考试、gre(美国研究生入学考试)等等,并己在全 范应用。 在国内,普遍地看绝大多数远程教育的考试还停留在传统考试方式。在此 方式下,组织一次考试至少要经过 5 个步骤,即人工出卷、考生考试、人工阅 卷、试卷分析和成绩评估。显然,随着考试类型的不断增加及考试要求的不断 提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容 易出错的事情。但是对互联网的真正应用仅限于网上报名工作和网上成绩查询, 还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考 试已经相当普及了。所以说传统的考试方式已经不能适应
6、现代考试的需要。 近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络 应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人 们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客 观性,减轻组织及保障工作的负担,提高工作效率。于是许多教育教学类的课 程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用 的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一 批优秀的在线考试软件产品。比如全国计算机等级考试软件、职称计算机能力 考试等等。有力地推动了我国网络化在线考试的发展水平,并积累了大量有价 值的经验。 2 1.2 系
7、统开发的目的 信息技术的发展对教育的影响是巨大的,随着信息技术和网络技术的迅速 发展,教育信息化和网络化也将成为必然的趋势。作为教育评价和衡量学生能 力的考试也正经历着无纸化和网络化的飞跃。网络的开放性和分布性的特点以 及基于互联网的巨大计算能力使得考试突破了时间和空间的限制。基于网络技 术的考试系统正成为人们的研究热点之一,其中,基于 web 技术的考试系统已 成为互联网的重要应用之一。 目前教师采用在线考试系统的还不多见,因为教师个体精力确实有限。但 随着教研组制度的完善和教学交流活动的增加。对题库的创建将提上议事的日 程,在线考试系统将大有用武之地,且能确保考风考纪的根本好转。 在线考试
8、具有动态出题、自动阅卷、成绩分析等优点,不仅大大减轻了教 师人工组卷繁琐的工作量,提高资源利用率,其运行过程中,组卷速度较快, 较少出现重复的现象,而且有利于教考分离的实施,符合目前教学改革的目标。 更节省纸张资源,增强环保意识。因此,在线考试系统具有潜在的巨大商机和 研究价值,是未来数字化校园系统研究的热点内容。 1.3 系统开发的意义 很多学校学生的期末考试仍采用任课教师(个人或集体)考前出题的方式。 为解决学生压题,考前漏题,补(缓)考试题与正式考试试题题量及难度差异 问题,教务管理部门通常要求教师同时出多套试卷,其题量与难度要求相同, 并且要同时给出答案和评分标准。 若建立题库,每次考
9、试前由题库中题目随机生成试卷,则可较好地解决考 教分离的问题,也可将广大教师从每学期末繁重的命题工作中解放出来。近年 来,部分学校陆续开发了一些基于微机的题库系统,并作为成果向其它学校推 广,但这些题库一般都是结合本校具体情况,针对单一课程的小型题库,甚至 某些学校购得的题库系统中的题目本身是不可维护的,即使题目已不适合自己 的学生考试使用,也无法更新题库中的题目。 为解决题库系统中存在的这些问题,作者经过研究几种不同的网上系统, 经充分的考虑,最后给出了一个较为理想的题库系统解决方案,并结合当前比 较使用的 b/s 结构开发一个功能较完备的网上考试系统。 3 2 系统分析 2.1 可行性分析
10、 可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否 能够解决。通过分析解法的利弊,来判定系统目标和规模是否现实,系统完成 后所能带来的效益是否达到值得去投资开发这个系统的程度。网络在线考试系 统的可行性可从以下两方面考虑。 2.1.1 经济可行性 定期的组织考试是各个院校及时掌握学生学习成绩的有效方式,利用网络 在线考试系统,一方面可以节省人力资源,降低考试成本。另一方面,在线考 试系统能够快速进行考试和评分,体现出考试的客观与公正性。 2.1.2 技术可行性 开发一个网络在线考试系统,涉及到的最核心的技术问题就是如何实现在 不刷新页面的情况下实时显示考试时间及剩余时间,并做到
11、到达考试结束时间 时自动提交试卷的功能。通过 ajax 技术可以轻松实现这些功能,这为网络在线 考试系统的开发提供了技术保障。 2.2 需求分析 随着计算机技术的发展和网络技术的日益成熟,通过网络进行信息交流已 成为一种快捷的交互方式。在这种网络环境下,学校或考试机构希望通过建立 网络在线考试网站来扩大知名度、降低管理成本和减少人力物力的投资,从而 为考生提供更全面、更灵活的服务,并全面、准确地对考试进行跟踪和评价。 与此同时,考生希望根据自己的学习情况进行测试,并能够得到客观、科学的 评价;教务人员希望能够有效地改进现有的考试模式,提高考试效率。 通过实际情况的调查,要求网络在线考试系统具有
12、以下功能: 界面设计美观大方、方便、快捷、操作灵活,树立企业形象。 要求实现在线考试功能,自动核算考试成绩。 要求提供考试时间倒计时功能,使考生实时了解考试剩余时间。 要求系统自动阅卷,保证考试成绩真实有效。 要求考生凭准考证号查询考试成绩,以保证信息安全。 4 2.3 开发环境 apache 是目前应用最广的 web 服务器;php 是一种类似 asp 的服务器端 脚本语言,而 mysql 是一个小巧的数据库系统软件,它们特别适用于网站建 设。apache+php+mysql 不仅仅是开源项目,可免费获取,而且它支持 linux、unix、os/2 和 windows 多个操作系统,可移植性
13、好。因此,这种组合 是设计动态网站的最佳解决方案。 (1) 硬件需求:计算机(winxp 系统) (2) 软件需求: 开发工具:dreamweaver cs5 服务器端开发环境:wampserver version2(apache 2.2.11+php 5.2.9+ mysql 5.1.32+ phpmyadmin 3.1.3) 5 3 设计工具及关键技术介绍 3.1 apache 简介 apache 是世界使用排名第一的 web 服务器软件。它可以运行在几乎所有 广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 web 服务器端软件之一。apache web 服务器软件拥有
14、以下特性: (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 是英文超级文本预处理语
15、言 hypertext preprocessor 的缩写,它是一种 html 内嵌式的语言,是一种在服务器端执行的嵌入 html 文档的脚本语言, php 独特的语法混合了 c、java、perl 以及 php 自创新的语法。它可以比 cgi 或者 perl 更快速的执行动态网页。 用 php 做出的动态页面与其他的编程语言相比,php 是将程序嵌入到 html 文档中去执行,执行效率比完全生成 html 标记的 cgi 要高许多;php 还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 php 具有非常强大的功能,所有的 cgi 的功能 php 都能实现,而且支持几乎
16、所有流行的数据库以及操作系统。 以下罗列了 php 所具有的一些特点: (1) 开放的源代码。所有的 php 源代码事实上都可以得到。 (2) php 是免费的。和其它技术相比,php 本身免费。 6 (3) php 的快捷性。程序开发快,运行快,技术本身容易学习,上手快。 嵌入 html:因为 php 可以嵌入 html 语言,它相对于其他语言, 编辑简单,实用性强,更适合初学者。 (4) 跨平台性强。由于 php 是运行在服务器端的脚本,可以运行在 unix、linux、windows 下。 (5) 效率高。php 消耗相当少的系统资源。 (6) 图像处理。用 php 动态创建图像 (7)
17、 面向对象。在 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();返回布尔型数据值 操纵数据库中的数据:my
18、sql_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
19、库函数还是使用 odbc 接口连接,php 对 mysql 数据库的连接方式都有两种。分别是永久连接和非永久连接方式。 (1) 永久连接方式:它的最大的优点是效率比非永久连接方式高,当客户 端对 mysql 服务器的连接请求非常频繁时,永久连接将更加高效。它使得每 个子过程在其生命周期中只做一次连接操作,而非每次在处理一个页面时都要 向 mysql 服务器提出连接请求。即每个子过程将对服务器建立各自独立的永 久连接。 7 (2) 非永久连接方式:即短连接方式。当客户端向 web 服务器请求网页时, 服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开, 直到浏览器发出下一个请求。
20、对于大部分网站通常都使用这种连接方式,它虽 然没有永久连接方式的效率高,但是可有效避免永久连接所带来的问题和提高 服务器承载能力。 3.4 ajax 简介 ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更 强的 web 应用程序的技术。 通过 ajax,javascript 可使用 javascript 的 xmlhttprequest 对象来直接与 服务器进行通信。通过这个对象,javascript 可在不重载页面的情况与 web 服 务器交换数据。ajax 在浏览器与 web 服务器之间使用异步数据传输(http 请求) ,这样就可使网页从服务器请求少量的信息,而不是整
21、个页面。 web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它 们更易安装及维护,也更易开发。ajax 是一种独立于 web 服务器软件的浏览 器技术。可使因特网应用程序更小、更快、更友好。 主要包含的技术: (1) web 标准(standards-based presentation)xhtml+css 的表示; (2) 使用 dom(document object model)进行动态显示及交互; (3) 使用 xml 和 xslt 进行数据交换及相关操作; (4) 使用 xmlhttprequest 进行异步数据查询、检索; (5) 使用 javascript 将所有的
22、东西绑定在一起。 8 4 系统概要设计 4.1 系统的总体设计 根据系统的功能要求,网络考试系统中涉及两种不同的用户:考试用户、 管理员,他们的职能各不相同。考试用户进入网络考试系统,可以按照学习通 知完成查询考试通知,查询个人考试成绩,修改密码,在线考试。管理员能够 发布学习通知,发布考试通知,设置考试时长,考试时段,考试题型比例,进 行试题库维护,包括删除,添加,及时更新,按不同条件查询考生的成绩并进 行分析统计。所有数据都存储在服务器的数据库中,具体应达到以下目标: (1) 采用开放、动态的系统框架,加强用户与网站的交互性。 (2) 具有空间性。被授权的用户可以在异地登陆考试系统,无须到
23、指定地点 行进行考试。 (3) 操作简单方便,界面简洁美观。 (4) 系统提供考试倒计时功能,使考生了解考试剩余时间。 (5) 随机抽取试题。 (6) 实现自动提交试卷的功能。当考试时间到达规定时间,如果考生还未提 交试卷,系统将自动交卷,以保证考试严肃、公正地进行。 (7) 系统自动阅卷,保证成绩的真实准确。 (8) 考生可以查询自己的考试成绩。 4.2 数据库设计 数据库设计的任务是确定系统所需的数据库,它的价值在于它能够向用户 提供有意义的信息,还有向系统供应所需的一切数据。在 mysql 数据库系统 中建立一个名为 db_online 的数据库,在该数据库中可以创建与实体对应的数据 表
24、,存放考试系统中与考生,管理员,考题类别,考试成绩相关的数据。下面 给出数据库中所包含的数据表的结构图,如图 1 所示。 图 1 db_online 数据库所包含数据表的结构图 9 4.3 系统结构设计 4.3.1 系统功能结构 网络考试系统的考生用户和管理员分别为前台用户和后台用户,他们的功 能职责不同,其功能结构图如图 2 所示。 网络考试系统 管理员功能页面考试用户功能页面 发 布 通 知 课 程 管 理 考 试 管 理 题 库 管 理 成 绩 查 询 参 加 考 试 考 试 通 知 查 询 成 绩 修 改 密 码 图 2 网络考试系统功能结构图 考生功能: (1) 参加考试:选择考试课
25、程之后,考试开始并计时,手动和自动提交试 卷,自动阅卷。 (2) 查询成绩:考生可以查询本人的成绩信息。 (3) 修改密码:考生修改自己的密码。 (4) 学习通知:考生可以查看管理员发布的考试通知。 管理员功能: (1) 发布通知:管理员进入发布通知页面,发布考试通知。 (2) 考试管理:添加、修改考试科目;修改试卷的题型比例;修改考题类 型,考题类别,确定考试日期和考试时长。 (3) 题库管理:及时对题库进行更新,删除旧的题目,插入新的题目等。 (4) 成绩查询:管理员可以查看权限范围内所有用户的成绩信息,并可以 对所有信息进行分析统计。 10 4.3.2 系统流程图 考生在网络在线考试系统
26、中通过注册为网站用户,登录网站进行相关操作。 考生登录后,可以进行在线考试、查询成绩和修改个人密码的操作。在考试前, 考生需要阅读考试规则、选择考试套题后开始考试;考试时间结束时,考生提 交试卷;提交试卷的同时,系统将自动返回本次考试的考试结果。网站的管理 员通过登录模块可以登录到网站的后台系统,对考生信息、考试信息、管理员 信息进行管理。网络在线考试系统的系统流程,如图 3 所示。 图 3 网络在线考试系统流程图 11 5 系统详细设计 5.1 数据库设计 数据库的设计过程一般是从现实世界出发,进行需求分析、概念分析、逻 辑分析和物理设计的。其中需求分析是整个设计过程的基础,是最困难、最耗
27、费时间的一步。需求分析做的不好,甚至会导致整个数据库设计返工重做。概 念结构设计师整个数据库设计的关键,它通过对用户需求进行分析、综合、归 纳与抽象,形成一个独立、具体的数据可管理系统的概念模型。逻辑结构设计 师将概念转换为某个数据库管理系统所支持的数据库模型,并对其进行优化。 物理结构设计是为逻辑结构设计选择一个最适合应用环境的物理结构,并对数 据可进行布置。 5.1.1 数据库分析 mysql 是一个小巧的数据库系统软件,特别适用于网站建设。mysql 的 设计目标是提供一个高速、可靠、可扩展、易于使用的数据库管理系统。 apache+php+mysql 不仅仅是开源项目,可免费获取,而且
28、它支持 linux、unix、os/2 和 windows 多个操作系统,可移植性好,这种组合是设计 动态网站的最佳解决方案。综上所述,本系统采用 mysql 数据库。 5.1.2 概念设计 (1) 考生信息实体 考生信息实体包括编号、考生姓名、联系方式、准考证号、考试成绩、考 题类别、考试时间、联系地址、考试状态和考生密码等属性。考生信息实体的 e-r 图,如图 4 所示。 考试成绩 准考证号 考题类别 考试时间 考生 考生密码 考试状态 图 4 考生信息实体 e-r 图 考生姓名联系方式 编号 12 (2) 管理员实体 管理员实体包括编号、管理员名称和加密密码属性。 管理员实体的 e-r
29、图如图 5 所示。 管理员 密码编号 管理员姓名 图 5 管理员信息实体 e-r 图 (3) 考题类别实体 考题类别实体包括编号和考题类别名称。 考题类别实体的 e-r 图,如图 6 所示。 考题类别 编号类别名称 图 6 考题类别实体 e-r 图 (4) 考题信息实体 考题信息实体包括编号、考题类别、考试成绩、考题内容、考题答案、考 题正确答案及考题所属套题等属性。 考试题目实体的 e-r 图如图 7 所示。 考题内容 考题信息 考题类别 别 考试成绩 考题答案正确答案 所属套题 编号 图 7 考题信息实体 e-r 图 13 5.1.3 数据库物理结构 (1) tb_user(考生信息表)
30、考生信息表用来保存考生信息,主键为 online_id。 该数据表结构如图 8 所示。 图 8 考生信息结构图 (2) tb_admin(管理员信息表) 管理员信息表用来保存管理员的用户名和密码。主键为 id。 该数据表结构如图 9 所示。 图 9 管理员信息结构图 (3) tb_ktlb(考题类别信息表) 考题类别信息表用来保存考题类别。该数据表结构如图 10 所示。 图 10 考题类别信息结构图 14 (4) tb_kt(考题信息表) 考题信息表用来保存考试题目信息和考题答案等相关信息。 该数据表结构如图 11 所示。 图 11 考题信息结构图 在数据库系统运行过程中,必须不断地对其进行评
31、价、调整与修改,内容 包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监 督、分析和改进、数据库的重组织和重构造等。 5.2 系统详细设计与实现 根据需求分析,我们把在线考试系统分为六个模块,即数据库交互模块、 功能列表模块、题库模块、试卷生成模块、考试生成模块及在线考试模块。下 面来看系统的详细设计与实现。 5.2.1 系统配置 系统配置主要包括代码开发工具配置和服务器配置。本系统采用的开发工 具是 dreamweaver,数据库则采用得是 mysql,web 服务器采用 apache 服务 器。 b/s 模式系统的目录结构有一定的规律性,因此必须遵循规范,并按照需 求分析
32、建立各个模块的目录结构。整个目录结构如下图: 图 12 目录结构图 首先将 php 连接到 mysql 数据库服务器程序(conn.php) ,该程序建立与 mysql 服务器的连接,打开 db_online 数据库,代码如下: 15 在每一个 php 程序的开头通过以下语句引用 conn.php 程序: require(“./conn.php”); 5.2.2 前台详细设计与实现 前台首页设计 (1) 考生通过“考生登录”模块的验证后,可以登录到网络在线考试系统 的前台首页。前台首页主要用于实现前台功能导航,该页面主要包括考生注册、 考生登录、修改密码、成绩查询、进入考场和退出信息 6 个导
33、航链接。 下面为前台首页页面,如图 13 所示。 图 13 前台首页页面 16 (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 va
34、lue=提交 “提交”按钮 (3) 考生在考生登录页面录入准确的准考证号和密码后,单击“提交”按 钮,提交表单信息到数据处理页,应用 mysql_query()函数检索考生是否成功登 录。如果查询结果为真,则将准考证号存储在 session 变量中;否则弹出提示信 息。代码如下: ?php session_start(); include(conn/conn.php); $online_number=isset($_postonline_number); $online_pass=isset($_postonline_pass); $sql=select * from tb_user wher
35、e online_number=$online_number and online_pass=$online_pass; mysql_query($sql); $result=mysql_affected_rows(); if($result1) echo alert(用户名或密码错误);history.go(-1); else session_register(online_number); echo alert(登录成功!); window.location.href=index.php?online=进入考场; ? 17 考生信息模块设计: (1) 考生信息模块主要包括考生注册、考生登录
36、、修改密码 3 个功能。考 生首先要注册为网站用户,然后才被授权登录网站进行一系列操作的权限;登 录后考生还可以修改个人的密码。考生信息模块的系统流程如图 14 所示。 开 始 考生注册 考生登录 结束 修改密码 是 否 否 是 图 14 考生信息模块的系统流程图 (2) 在考生注册信息模块中应用到 ajax 无刷新技术获取考生的准考证号 码和密码。在介绍该功能的实现过程之前,先对 ajax 技术中的 xmlhttprequest 对象的属性和方法进行详细的讲解。xmlhttprequest 对象是 ajax 技术的核心, 有关该对象的属性和方法的详细介绍如表 2 和表 3 所示。 表 2 x
37、mlhttprequest 对象的属性 属性 描述 readystate 返回当前的请求状态 onreadystatechange 当 readystate 属性改变时就可以读取此属性值 status 返回 http 状态码 responsetext 将返回的响应信息用字符串表示 responsebody 返回响应信息正文,格式为字节数组 responsexml 将响应的 domcoment 对象解析成 xml 文档并返回 表 3 xmlhttprequest 的方法 方法 描述 open 初始化一个新请求 send 发送请求 getallreponseheaders 返回所有http头信息
38、getresponsehearder 返回指定的http头信息 setrequestheader 添加指定的http头信息 abort 停止当前的 http 请求 18 考生注册时的关键代码如下: 在考生注册页面 zhuce.php 页中实现考生注册信息的提交,并且通过 ajax 的页面无刷新技术获取考生的准考证号和密码。 zhuce.php 页中的关键代码如下: 在 zhuce_js.js 文件中首先定义一个 createxmlhttprequestobject()对象,并 获取 xmlhttprrequest 对象,然后定义 xmlhttp 用来存储将要使用的 xmlhttprreques
39、t 对象。关键代码如下: 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(返回创建的对象或显示错误信
40、息); else return xmlhttp; 19 在网络在线考试系统首页,单击“考生注册”超链接,即可进入考生注册 页面,输入个人的真实资料后,单击“注册”按钮,系统将根据输入的个人资 料自动生成准考证号和考生密码,下面为考生注册的运行结果,如图 15 所示。 图 15 考生注册运行结果 (3) 考生登录编号的生成主要应用的是 mt_rand()函数和 substr()函数。首 先通过 mt_rand()函数来获取一个 100000999999 之间的随机数,然后应用 substr()函数从该随机数中获取 6 个数字,作为考生编号。 mt_rand()函数的功能是获取随机数的值。语法格式
41、如下: int mt_rand(int min,int max) 下面应用 mt_rand()函数来获取 100000999999 之间的随机数。代码如下: 运行结果为:321864 20 (4) 下面为考生修改密码运行结果,如图 16 所示。 图 16 考生修改密码运行结果 在线考试模块设计: (1) 在线考试模块的主要功能是允许考生在网站上针对指定的课程进行考 试。在该模块中,考生首先需要登录到本系统中,阅读考试规则,在同意所列 出的考试规则后,才能选择考试类别和套题,然后进入考试页面进行答题,当 考生提交试卷或者到达考试结束时间时,系统将自动对考生提交的试卷进行评 分,并给出最终考试成绩
42、。在线考试模块的系统流程如图 17 所示。 开始 结束 在线考试 选择考试科目 显示本次考试成绩 提交试卷/到达 考试结束时间 21 图 17 在线考试模块的系统流程图 (2) 在线考试模块中最核心的功能是如何输出考题/如何对提交的答案进行 判断,并且将答案输出到当前页中,这是在线考试最关键之处。 把系统需要的全部数据库制作完成以后,将初始化模块和数据库模块联系 起来,根据题型比例,随机选出符合规格的试题,组成一张完整的试卷。考生 根据考试通知选择要考试的课程名称,然后系统根据管理员设置的考试信息, 存于 tb_admin 表中,从题库,即 tb_kt 表中随机地抽取一定量的题目,比如 50
43、个,产生随机的一张试卷。 流程图如图 18 所示。 选择套题 题 型 分 数 生成试卷 随 机 函 数 考生选择 管理员设置 考题类别 图 18 试卷产生模块流程图 不同的考生抽取的题目都产生于试题库,但是由于是随机抽取所以不同的 人试卷不一样,所以,这能够更好地体现的考试的公平性。 由于上述三方面的内容都在同一页中显示,所以在技术实现的过程中这三方 面是以一个整体的形式出现。单选题输出,答案判断和考题答案输出的关键代 码如下: 分 ?php 22 $array1=explode(*,$myrow1options); if($_postsubmit!=) for($a=0;$acount($a
44、rray1);$a+) if($array1$a!=) if($array1$a=$_post$myrow1kt_id) $str1=$_post$myrow1kt_id; for($a=0;$a input type=radio name= value= ?php if($_post$myrow1kt_id=true) if($myrow1ans=$str1) echo 您输入的答案; echo .substr($str1,0).; echo 正确分数:; echo .$myrow1fenzhi.; $fen1+=$myrow1fenzhi; else echo 您输入的答案; echo .
45、substr($str1,0).; echo 错误; echo 正确答案:.substr($myrow1ans,0). ; ? 23 (3) 下面为考生通过系统验证登录后,进入考场时的运行结果,如图 19 所示。 图 19 考生进入考场时运行结果 (4) 考生阅读考试考试规则且同意后,则可进行考题的选择,运行结果如 下图 20 所示。 图 20 考生选择考题运行结果 24 (5) 考生选择好考试类别和套题之后,则可正式进入考试页面进行答题。 且能进行自动倒计时。如图 21 所示。 图 21 考生开始考试运行结果 (6) 计时模块的实现 xmlhttprequest 在浏览器中运行,将其代码保存
46、在一个名称为 xmlhttprequest.js 的文件中,然后在需要应用 ajax 技术的页面中应用以下代码 包含该文件。 接下来编写两个自定义的函数 showtime()和 sparetime(),通过 showtime()函 数来读取显示时间的文件 showtime.php 中的数据;通过 sparetime()函数读取获 取剩余时间的文件 sparetime.php 中的数据。 showtime.php 文件中实现当前时间显示的原理是:获取一个在 session 变量 中存储的考试时间戳,然后再应用 mktime()函数来获取当前时间的时间戳,应 用当前的时间戳减去考试开始时间的时间戳
47、,最后应用 date()函数输出获取的新 时间戳的时间值。 sparetime.php 中获取剩余时间的实现原理是:首先设置考试时长为 30 分钟, 在考试开始计时的基础上加上 30 分钟,然后用考试时间减去系统的当前时间, 获取的就是考试剩余时间,当剩余时间为零时,系统将自动提交试卷。 25 5.2.3 后台详细设计与实现 后台首页设计: (1) 网络在线考试系统的后台首页是管理员对网站信息进行管理的首页面。 在该页面中,管理员可以清楚地了解网站后台管理系统包含的基本操作。网络 在线考试网后台首页包含的主要模块如下: 管理员信息管理:主要用于修改管理员信息。 考生信息管理:主要包括查看注册考
48、生信息列表和考生信息查询、考 试成绩查询和删除已注册的考生信息。 考题类别管理:主要包括查看考题类别列表、添加考题类别信息和删 除考题类别信息。 考题信息添加:主要用于添加为各类套题添加单选题、多选题、问答 题和论述题,并设置每题的分数及内容。 考题信息管理:主要包括查看考题类别列表、修改套题信息和删除套 题信息。 包括查看考试题目列表、添加考试题目、修改考试题目和删除考试题 目。 退出管理:主要用于退出后台管理系统。 (2) 下面为本系统的后台登录页面,如图 22 所示。 图 22 后台登录首页 26 (3) 下面为管理员登录后台系统后,所显示的后台功能页面,如图 23 所示。 图 23 后
49、台功能主页面 考题信息管理模块设计: 考题信息管理模块主要包括查询考题信息、添加考题信息、修改考题信息 和删除考题信息等 4 个功能。 在实现考题信息管理模块时,为了更好地管理,因此把考题类别单独存储 于一个数据表 tb_lb 中,这样在录入考题信息时就可以把考题类别以下拉列表的 形式从数据库中读取出来。这种从下拉列表中动态显示数据表某列的字段值的 方法,不仅方便管理员更快捷、灵活地操作网络在线考试系统,更大大提高了 工作效率,达到事半功倍的效果。 下拉列表是一种最节省空间的数据显示方式,正常状态下只能看到一个选 项,单击控制按钮后,可以显示一定数量的选项,如果超出这个数量,会自动 显示滚动条
50、,管理员可以通过拖动滚动条来选择各选项。 下面介绍从下拉列表中动态显示数据表某列的字段值的方法。 首页,创建与数据库的连接。代码如下: 27 然后应用下拉列表框和 select 查询语句相结合实现在下拉列表中显示数据 表中的 online_ktlb 字段的值,通过 while 循环语句进行输出。代码如下: option value= (1) 下面为管理员添加考题时的运行界面,考试题目添加包含两个步骤: 一是为添加的考试题目选择专业、课程以及套题,二是将填写的考试题目信息 插入到数据库中。 添加考题运行结果如图 24 所示。 图 24 添加考题运行结果 28 考题信息添加页面涉及到的 html
51、表单的重要元素如表 4 所示。 表 4 考题信息添加页面涉及到的 html 表单的重要元素 名称 类型 重要属性 含义 form2 form method=”post” action=”ktxx_tj_ok.php” 表单 kt_lb select option value=” 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 c
52、ols=60 rows=5 考题正确答案 submit2 submit value=提交考题 “提交考题”按 钮 添加考试题目首先要选择考题的类别,然后所择所属套题,再选择考题类 型,最后根据考题类别将考题内容添加完整。 提交考题表单到数据处理页,程序处理页面首先应用变量获取到表单数据, 然后应用 insertinto 语句将其插入到考题信息表 tb_kt 中。如果考题信息添加 成功,则弹出提示信息,并重新定位到考题信息添加页面。 ?php include(./conn/conn.php); if($submit2=提交考题) $queryes=mysql_query(insert into
53、tb_kt (kt_lb,kt_lx,kt_fs,kt_nr,kt_daan,kt_zqdaan,kt_small_lb)values($kt_lb,$kt_lx,$kt_fs, $kt_nr,$kt_daan,$kt_zqdaan,$kt_small_lb); if($queryes) echo alert(考题添加成功!); window.location.href=index.php?htgl=考题信息添加; 29 ? (2) 管理员登录后,单击“考题信息管理”超链接,进入到查询考题信息 页面,选择考题类别后,单击“考题查找”按钮,将查询出该类别下的所有考 题信息。同时提供修改考题信息和
54、删除考题信息的功能。查询考题信息页面的 运行结果如图 25 所示。 图 25 考题信息管理运行结果 在考试题目查询页面中,首先建立用于查询的表单 form1,该表单中包含 “考题类别”列表/菜单控件以及“考题查找”按钮。 当管理员选择考题类别后,单击“考题查找”按钮,提交考题 kt_lb 类别到当 前页,然后根据获取到的考题类别检索考题信息表 tb_kt,并将该类别下的所有 考题信息输出到浏览器。 查询考题信息页面提供了修改考题信息的功能,管理员可对指定的考题信 息进行编辑,单击“修改”按钮后,提交 submit2 表单信息到数据处理页 ktxx_gl_ok.php。 查询考题信息页面提供了删
55、除考题信息的功能,管理员可对指定的考题信 息进行删除,单击“删除”按钮后,提交 submit3 表单信息到处理页 ktxx_gl_ok.php。 30 6 系统测试 6.1 测试环境 服务器端:windows xp pro sp2、apache、mysql 客户端:windows xp pro sp2、360 安全浏览器 5.0 正式版、ie8.0 6.2 什么是软件测试 软件测试是在软件投入运行前,对软件需求分析、设计规格说明书和编码 的最终的复审,是软件质量保证的关键步骤。确切的说,软件测试就是为了发 现错误而执行的过程。一般分为两个阶段: (1) 单元测试:在编完一模块后进行测试; (2
56、) 综合测试:在开发完软件后进行综合测试。 6.3 软件测试的目标与方法 g.myers 给出了关于测试的一些规则,这些规则可以看作是测试的目标或 定义: (1) 测试是为了发现程序中的错误而执行程序的过程; (2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试; (3) 成功的测试是发现了至今为止尚未发现的错误的测试。 测试任何软件都有两种方法:黑盒测试和白盒测试法。 黑盒测试法(又称功能测试法)是把程序看成一个黑盒子,完全不考虑程 序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否 按照规格说明书的规定正常使用。 白盒测试法(又称结构测试法)是把程序看成装在一个透明的白盒子里, 也就是完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑测试程 序,检验程序中的每条通路是否都能按照预定要求正确工作。 通过测试并不能证明程序就是完全正确的,但我们的目的就是要通过测试 保证软件的可靠性,因此,必须仔细设计测试方案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021年贵州省安顺市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 湖南省张家界市(2024年-2025年小学六年级语文)部编版摸底考试(上学期)试卷及答案
- 2024年ATM机项目资金需求报告代可行性研究报告
- 2025年PS铝合金板项目立项申请报告模板
- 2025年L-苹果酸项目立项申请报告模稿
- 2024年锅炉板项目资金需求报告
- 园林绿化项目延期还款协议
- 食品安全监管融资管理办法
- 电视剧主题曲演唱合同
- 电信配电房改造施工协议
- 慢病管理服务电话回访话术
- GB/T 1741-2020漆膜耐霉菌性测定法
- 400V开关柜操作及维护手册(双语)
- 教师业务档案(表格模板)
- 装修施工人员出入证汇总表
- 招标项目评分表
- 政治学原理-【综合版】-复旦大学
- 全国应急管理普法知识竞赛题库及答案
- 工程结算申请书范文
- 安全生产检查记录表样本
- 粒子探测技术复习
评论
0/150
提交评论