无纸化考试系统研究与开发毕业论文.doc_第1页
无纸化考试系统研究与开发毕业论文.doc_第2页
无纸化考试系统研究与开发毕业论文.doc_第3页
无纸化考试系统研究与开发毕业论文.doc_第4页
无纸化考试系统研究与开发毕业论文.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无纸化考试系统研究与开发毕业论文无纸化考试系统研究与开发毕业论文 目目 录录 1 引言 1 2 主要技术介绍 2 2 1 JSP 技术 2 2 2 Java Bean 技术 3 2 3 JDBC 技术 4 2 4 Javascript 技术 5 2 5 SQL Server2000 数据库 5 3 系统分析 6 3 1 无纸化考试系统的需求 6 3 2 技术可行性 6 系统设计 7 4 1 无纸化考试系统的概要设计 7 4 1 1 无纸化考试系统的综合系统框架图 7 4 1 2 本系统包含的两个子系统 8 4 2 系统结构设计 8 4 3 系统数据库设计 9 4 4 系统 web 服务器执行流程 10 5 无纸化考试系统功能实现 11 5 1 数据连接 11 5 2 无纸化考试系统设计 12 5 2 1 数据库连接公用模块 12 5 2 2 首页 index jsp 16 5 2 3 无纸化考试模块 17 5 2 4 系统管理模块 28 总结 35 参考文献 36 致 谢 37 1 1 引言引言 计算机网络技术的飞速发展以及计算机技术的发展及计算机的日益普及 现在 很多国内外的大学和社会其他部门都已经开设了远程教育 通过计算机网络实现异 地教育和培训 从而为无纸化考试系统发展提供了坚实的基础 现在 计算机硬件 技术的发展已经达到了相当高的水平 但是 在我国远程教育软件的开发目前还处 于起步阶段 随着这项技术的不断深入发展 就要求有更好 更完善的软件系统应 用到远程教育当中去 这就给软件设计人员提出了更高的设计要求 在二十一世纪的新时代 随着计算机技术的发展及计算机的日益普及 基于在 线考试与无纸化办公一样已成为大势所趋 无纸化考试系统也越来越成为学校的好 帮手 它的优势不但体现在人力上也体现在物力上 无纸化考试系统的采用自动评 阅 计分 成绩存档功能将有效地避免资源的浪费 有利于环保 减少人员 提高 效率 相比传统的考试方式 无纸化考试系统的主要好处是一方面可以动态地管理各 种考试信息 只要准备好足够大的题库 从该题库中抽取一定数量的考题生成考试 试卷 从而有效地避免了考试作弊 相互抄袭的避端 另一方面 考试时间灵活 可以在规定的时间段内的任意时间参加考试 另外计算机化的考试的最大特点是阅 卷快 系统可以在考试结束时当场给考生成绩 计算机阅卷给了考生最大的公平感 网络考试系统极大地提高了教学的灵活性 现在在许多领域已经有了广泛的应 用 最有影响的案例就是ETS 美国教育考试中心 举办的GRE 美国研究生入学考 试 的计算机化考试 它使考试由原来的每年只能有两次参加考试的机会变成了每 个工作日都可以参加的考试 本设计讲述的是一个基于SQL Server 2000 JSP javabean的无纸化考试系统的 综合实现 该系统基本上可以满足学校及现代信息化企业的内部考试要求 可以实 现学校低成本投入 高效率办公的宗旨 例如 一个学校如果使用了本系统 无需 老师阅卷 评卷 而直接由系统自动判卷 使老师从传统的繁琐的阅卷过程中解脱 出来 为广大老师省去不少的时间 从而有更大的精力致力于日常的教学过程中 极大地提高了办公效率 网上无纸化考试系统已成为时代发展的趋势 本课题的设 计正是顺应时代潮流 为众多师生考试中提供便捷 公平 当今时代是一个追求公 平 公正的时代 是一个效率第一的时代 传统的考试系统在未来的发展中逐渐退 出历史舞台 网上无纸化考试系统必将在未来的考试过程发挥更重要的作用 众多 优势为网上无纸化考试系统在我国顺利普及打下良好的基础 从而使得我国的网络 信息迅速普及 使得中国的高速信息化战略顺利进行 2 2 主要技术介绍主要技术介绍 2 12 1 JSPJSP 技术技术 JSP JavaServer Pages 是由Sun Microsystems公司倡导 许多公司参与一起建立的 一种动态网页技术标准 其网址为 页HTML文件 htm html 中加入Java程序片段 Scriptlet 和JSP标记 tag 就构成了 JSP网页 jsp Web服务器在遇到访问JSP网页的请求时 首先执行其中的程序片段 然后将执行结果以HTML格式返回给客户 程序片段可以操作数据库 重新定向网 页以及发送 email 等等 这就是建立动态网站所需要的功能 所有程序操作都在服 务器端执行 网络上传送给客户端的仅是得到的结果 对客户浏览器的要求最低 可以实现无Plugin 无ActiveX 无Java Applet 甚至无Frame JSP JavaServer Pages 是一种基于Java的脚本技术 在JSP 的众多优点之中 其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来 用 JSP 访问可重用的组件 如 Servlet JavaBean 和基于 Java 的 Web 应用程序 JSP 还支持在 Web 页面中直接嵌入 Java 代码 可用两种方法访问 JSP 文件 浏 览器发送 JSP 文件请求 发送至 Servlet 的请求 1 JSP 文件访问 Bean 或其它能将生成的动态内容发送到浏览器的组件 图 2 1说明了该 JSP 访问模型 当 Web 服务器接收到一个 JSP 文件请求时 服务器 将请求发送至 WebSphere应用服务器 WebSphere应用服务器 对 JSP 文件进行语 法分析并生成 Java 源文件 被编译和执行为 Servlet Java 源文件的生成和编译 仅在初次调用 Servlet 时发生 除非已经更新了原始的 JSP 文件 在这种情况下 WebSphere应用服务器 将检测所做的更新 并在执行它之前重新生成和编译 Servlet 浏览器发送 JSP 文件请求如图2 1所示 图 2 1 浏览器发送 JSP 文件请求 2 发送至 Servlet 的请求生成动态内容 并调用 JSP 文件将内容发送到浏览 器 图2 2说明了该访问模型 该访问模型使得将内容生成从内容显示中分离出来更 为方便 WebSphere应用服务器支持 HttpServiceRequest 对象和 HttpServiceResponse 对象的一套新方法 这些方法允许调用的 Servlet 将一个对象 放入 通常是一个 Bean 请求对象中 并将该请求传递到另一个页面 通常是一个 JSP 文件 以供显示 调用的页面从请求对象中检索 Bean 并用 JSP 来生成客户 机端的 HTML 发送至 Servlet 的请求如图2 2所示 图 2 2 发送至 Servlet 的请求 2 22 2 JavaJava BeanBean 技术技术 简单地说 JavaBean是用Java语言描述的软件组件模型 其实际上是一个类 这 些类遵循一个接口格式 以便于使函数命名 底层行为以及继承或实现的行为 可 以把类看作标准的JavaBean组件进行构造和应用 JavaBean一般分为可视化组件和 非可视化组件两种 可视化组件可以是简单的GUI元素 如按钮或文本框 也可以 是复杂的 如报表组件 非可视化组件没有GUI表现形式 用于封装业务逻辑 数 据库操作等 其最大的优点在于可以实现代码的可重用性 JavaBean又同时具有以 下特性 1 易于维护 使用 编写 2 可实现代码的重用性 3 可移植性强 但仅限于Java工作平台 4 便于传输 不限于本地还是网络 5 可以以其他部件的模式进行工作 对于有过其他语言编程经验的读者 可以将其看作类似微软的ActiveX的编程组 件 但是区别在于JavaBean是跨平台的 而ActiveX组件则仅局限于Windows系统 总之 JavaBean比较适合于那些需要跨平台的 并具有可视化操作和定制特性的软 件组件 avaBean组件与EJB Enterprise JavaBean 企业级JavaBean 组件完全不同 EJB 是J2EE的核心 是一个用来创建分布式应用 服务器端以及基于Java应用的功 能强大的组件模型 JavaBean组件主要用于存储状态信息 而EJB组件可以存储业务 逻辑 JavaBean是描述Java的软件组件模型 有点类似于Microsoft的COM组件概念 在Java模型中 通过JavaBean可以无限扩充Java程序的功能 通过JavaBean的组合可 以快速的生成新的应用程序 对于程序员来说 最好的一点就是JavaBean可以实现 代码的重复利用 另外对于程序的易维护性等等也有很重大的意义 JavaBean通过 Java虚拟机 Java Virtual Machine 可以得到正确的执行 运行JavaBean最小的需求是 JDK1 1或者以上的版本 JavaBean传统的应用在于可视化的领域 如AWT下的应用 自从Jsp诞生后 JavaBean更多的应用在了非可视化领域 在服务器端应用方面表现 出来了越来越强的生命力 使用JavaBean的原因是程序中往往会有大量重复使用的段落 JavaBean就是为 了能够重复使用而设计的程序段落 而且这些段落并不只服务于某一个程序 而且 每个JavaBean都具有特定功能 当需要这个功能的时候就可以调用相应的 JavaBean 从这个意义上来讲 JavaBean大大简化了程序的设计过程 也方便了其 他程序的重复使用 2 32 3 JDBCJDBC 技术技术 JDBC API用于连接Java应用程序与各种关系数据库 这使得人们在建立客户 服 务器应用程序时 通常把Java作为编程语言 把任何一种浏览器作为应用程序的友 好界面 把Internet或Intranet作为网络主干 把有关的数据库作为数据库后端 以下 是使用JDBC的优缺点 优点如下 1 JDBC API与ODBC十分相似 有利于用户理解 2 JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来 可以致力 于应用程序中的关键地方 3 JDBC支持不同的关系数据库 使得程序的可移植性大大加强 4 用户可以使用JDBC ODBC桥驱动器将JDBC函数调用转换为ODBC 5 JDBC API是面向对象的 可以让用户把常用的方法封装为一个类 备后用 缺点如下 6 使用JDBC 访问数据记录的速度会受到一定程度的影响 7 JDBC结构中包含了不同厂家的产品 这就给更改数据源带来了很大的麻烦 2 42 4 JavascriptJavascript 技术技术 为了使网页能够具有交互性 能够包含更多活跃的元素 就有必要在网页中嵌 入其它的技术 如 Javascript VBScript Document Object Model 文件目标模块 Layers 和 Cascading Style Sheets CSS CSS 和 Lyaer 图层 技术已作过专题介 绍 因此在这里主要讲 Javascript 那么 Javascript 是什么呢 Javascript 就是适应动 态网页制作的需要而诞生的一种新的编程语言 如今越来越广泛地使用于 Internet 网 页制作上 Javascript 是由 Netscape 公司开发的一种脚本语言 scripting language 或者称为描述语言 在 HTML 基础上 使用 Javascript 可以开发交互式 Web 网页 Javascript 的出现使得网页和用户之间实现了一种实时性的 动态的 交互性的关系 使网页包含更多活跃的元素和更加精彩的内容 运行用 Javascript 编写的程序需要 能支持 Javascript 语言的浏览器 Netscape 公司 Navigator 3 0 以上版本的浏览器都 能支持 Javascript 程序 微软公司 Internet Explorer 3 0 以上版本的浏览器基本上支 持 Javascript 微软公司还有自己开发的 Javascript 称为 JScript Javascript 和 Jscript 基本上是相同的 只是在一些细节上有出入 Javascript 短小精悍 又是在 客户机上执行的 大大提高了网页的浏览速度和交互能力 同时它又是专门为制作 Web 网页而量身定做的一种简单的编程语言 虽然 在 Dreamweaver 的 Behaviors 可以为我们方便地使用 Javascript 程序而不 用编写代码 但我们自己了解了 Javascript 的编程方法后 将能更加方便灵活地应用 也使 Javascript 的代码更简练 本专题通过对一系列典型程序的剖析 使你快速地掌 握 Javascript 的编程技巧 设计出质量上乘的动态网页打下坚实的基础 2 52 5 SQLSQL Server2000Server2000 数据库数据库 SQL Server是由Microsoft开发和推广的关系数据库管理系统 DBMS 它最初 是由Microsoft Sybase和Ashton Tate三家公司共同开发的 并于1988年推出了第一 个OS 2版本 SQL Server近年来不断更新版本 1996年 Microsoft 推出了SQL Server 6 5版本 1998年 SQL Server 7 0版本和用户见面 SQL Server 2000是 Microsoft公司于2000年推出的最新版本 3 3 系统分析系统分析 3 13 1 无纸化考试系统的需求无纸化考试系统的需求 无纸化考试系统是在网上模拟考试的应用程序 它维护着一个数据库 存储着 考生 题库 管理员等信息 主要包括教师出题 学生无纸化考试 自动判卷以及 相关的系统维护功能 3 23 2 技术可行性技术可行性 现代社会 由于网络技术的飞速发展 从而给我们的社会生活带来的极大的方 便 而无纸化考试系统网站的建设 使得用户可以不出远门 在家庭或网吧 就可 以完成一项考试 从而免去不必要的麻烦 本网站建设使用了JSP开发技术 SQL SERVER大型数据库 JAVA开发技术 从而实现了无纸化考试系统的实用性和可靠 性 本网站运用JSP技术和SQL SERVER数据库原理 我们开发的一个无纸化考试系 统网站 该网站主要采用JSP HTML JavaScript SQL SERVER2000等技术和工具 整体设计包括前台页面的设计与后台的开发 并将两者很好的结合在一起 实现了无 纸化考试系统的可用性 系统设计系统设计 4 14 1 无纸化考试系统的概要设计无纸化考试系统的概要设计 4 1 14 1 1 无纸化考试系统的综合系统框架图无纸化考试系统的综合系统框架图 在 线 考 试 系 统 管 理 员 考 生 考生信息管理 考题管理 判卷系统 成绩查询 自动选题 考生登录 管理员添加 图 4 1 综合系统框架图 其功能模块大致分为 1 考生信息模块 考生信息是由管理员用户添加生成的 其中包括对考生信息的添加和删除功能 2 题目管理模块 主要包括对考试题目的添加和修改以及删除的功能 3 成绩查询功能 其功能包括对所有考生成绩的显示以及各个分数段考生人数的统计 4 管理员添加 其功能是添加和删除后台管理员 5 无纸化考试模块 考生考试主要经过三个步骤 首先考生登录 登录成功后进入考试 将所有问 题答完后提交将成绩显示出来 4 1 24 1 2 本系统包含的两个子系统本系统包含的两个子系统 1 学生登录界面的子系统流程图 见图4 2 考生登录 准备考试 答题并提交 查看考试结果 图 4 2 学生登录界面的系统流程图 2 后台管理的子系统功能模块图 见图4 3 管理员 学 生 管 理 考 题 管 理 成 绩 查 询 管 理 员 添 加 图 4 3 后台管理的系统功能模块图 4 24 2 系统结构设计系统结构设计 JSP服务器响应客户端的工作过程 如图4 4所示 图 4 4 本系统的概要逻辑表示图 Sql2000 Java bean 技术 JSP 技术 JavaScript 技术 数据 客户端 服务器 数据库 本系统属于跨平台的多层Web应用程序 在开发过程中采用了Java的跨平台解 决方案作为程序的整体开发框架 从整体上采用了B S结构 分成三层 即 客户层 服务器层 数据库层 其中数据库层采用了中型SQL数据库服务器SQL2000 检索 速度快是它最大的优势 以完成对数据的存储和维护 在服务器层中采用了Java中 的JavaBean技术作为中间层开发手段和JSP技术用以完成对Java服务器页面的调用 在客户层中采用了JavaScript等技术来实现复杂的动态界面展示 4 34 3 系统数据库设计系统数据库设计 根据用户角色和系统实现的功能 本系统数据库设计了一个数据库Exam数据库 采用的数据库是Microsoft SQL SERVER 包含如下几个表文件 admin表 用于管理员的管理 admin表的结构 如表4 1所示 表 4 1 admim 的结构 字段名称类型可否为空长度缺省值主键说明 idbigintN8 是管理员 id namevarcharN50 管理员用户名 passwordvarcharN50 管理员密码 score表 用于实现对学生成绩的查询 score表的结构 如表4 2所示 表 4 2 score 的结构 字段名称类型可否为空长度缺省值主键说明 idbigintN8 是Id 号 S idbigintN8 学生 id scorebigintN8 学生成绩 Student表 用于实现对学生信息的添加 修改和删除 Student表的结构 如表 4 3所示 表 4 3 Student 的结构 字段名称类型可否为空长度缺省值主键说明 idbigintN8 是Id 号 S idbigintN8 学生 id S namevarcharN50 学生姓名 S pswvarcharN20 学生密码 sexcharY10 学生性别 majorvarcharY50 学生系别 gradevarcharY50 学生年级 Tiku表 用于实现对题库的添加 修改和删除操作 Tiku表的结构 如表4 4所 示 表 4 4 Tiku 的结构 字段名称类型可否为空长度缺省值主键说明 idbigintN8 是问题 Id 号 questionvarcharN300 问题 keyavarcharN200 选项 A keybvarcharN200 选项 B keycvarcharN200 选项 C keydvarcharN200 选项 D answercharN10 答案 4 44 4 系统系统 webweb 服务器执行流程服务器执行流程 图 4 5 本系统 Web 服务器详细执行流程 如上图4 5所示 本次毕业设计是用典型的B S Browser Server 结构完成的 它的整个框架分为三层 客户层 服务器层 数据层 在数据层采用了SQL Server 2000数据库 服务器层使用了Java的JavaBean和JSP技术 客户层使用了JavaScript相 关技术 整个程序开始运行后 处于服务器层层Apache Tomcat应用服务器支持的 Servlet会在得到前台页面请求时通过JDBC向后台数据库通过动态查询并索取数据 然后将结果由JSP页面通过HTTP协议向前台发送 通过浏览器根据接受到的JSP页面 传递过来的结果将考试信息展示在前台 在JSP页面的制作上 为了增加特效 我又 编写了几段JavaScript代码 Javascript Jsp 页面转化 Jsp 文件 JavaBean 数据的读写 数据源 客户端 服务器端 数据端 5 5 无纸化考试系统功能实现无纸化考试系统功能实现 5 15 1 数据连接数据连接 数据库作为无纸化考试系统的核心 在建立之后要和前台应用程序建立连接才 能发挥它的作用 5 1 1建立数据库连接建立数据库连接 JSP程序通过JDBC来连接和操作数据库 JDBC是一组API 可以协助编程人员 轻松地处理程序与数据库之间的连接和操作动作 进行数据库连接时 需要使用java sql套件中的类 在正式连接数据库时 首先 必须使用java sql Class类中的forName方法加载驱动程序类 语法如下 Class forName String 驱动程序类描述 对于SQL SERVER数据库 使用如下语句加载驱动程序类 Class forName com microsoft jdbc sqlserver SQLServerDriver newInstance 注释 对于tomcat 就确保msbase jar mssqlserver jar msutil jar三个文件拷贝到 tomcat路径下的comm lib目录下 加载驱动程序类后 就可以使用DriverManager类来打开数据库连接 其语法如 下 Connection 连接对象 DriverManager getConnection String 数据库名称 String 用户名称 String 用户密码 对于SQL Server数据库 一个示例如下 String url jdbc microsoft sqlserver localhost 1433 DatabaseName exam username sa password sa Connection conn DriverManager getConnection url id passworcd 相应地 关闭数据库连接使用连接对象的close方法 其语法如下 连接对象 close 5 5 1 1 2 2安全策略安全策略 本系统用两个方法来加强用系统的安全性 首先 使用Session限制未经登录的访问 当考生从登录界面登录 JSP程序进行 用户名称和密码的检查后 如果数据符合则成功登录 将用户的ID值写到Session对 象中 对以后的页面都会先检查Session对象保存的数据 从而判断用户是否可浏览 页面 以达到安全控制的目的 如果检查失败都会导向登录界面 要求用户重新登 录 第二 防止考生任意刷新页面 起到了防止作弊的作用 5 25 2 无纸化考试系统设计无纸化考试系统设计 我们的无纸化考试系统由一个公用模块和两个主要功能模块组成 1 数据库连接公用模块 2 无纸化考试模块 考生登录系统后 进行无纸化考试 提交试卷后自动判卷 显示成绩 3 系统管理模块 包括考生信息 题目 分数查询和管理员添加 5 2 15 2 1 数据库连接公用模块数据库连接公用模块 在本考试系统中 我们把数据库参数写入一个名为jdbcsql properies的配置文件 中 这样在程序运行时如果环境变化 可以方便地修改数据库配置 jdbcsql properies内容如下 driver com microsoft jdbc sqlserver SQLServerDriver 驱动程序 url jdbc microsoft sqlserver localhost 1433 DatabaseName exam 连接字符串 username sa 用户名 password 密码 javaBean是一种基于java的软件组件 JSP对于在Web应用中集成JavaBean组 件提供了完善的支持 这种支持不仅能缩短开发时间 可以直接利用通过测试可信 任的已有组件 避免了重复开发 也为JSP应用带来了更多的可伸缩性 JavaBean 组件可以用来执行复杂的计算任务 在本例中 我们通过使用缩写JavaBean读取配 置文件 jdbcsql properies 来连接数据库 文件名为DBConnectionBean java的代码 如所示 DBConnectionBean java 用在jsp网页里的数据库桥接bean package examinline import java util import java sql import java io public class DBConnectionBean 成员变量初始化 定义变量并初始化 Connection dbcon null 数据库连接 Statement stmt null JDBC声明 ResultSet result null 记录集 String driver 数据库驱动程序 String url 连接字符串 String user 用户名 String password 密码 public DBConnectionBean try 配置输入流读取配置文件 InputStream fis getClass getResourceAsStream jdbcsql properties Properties ps new Properties ps load fis 读取配置文件参数 driver ps getProperty driver url ps getProperty url user ps getProperty username password ps getProperty password Class forName this driver 注册数据库驱动程序 catch Exception e System out println e 为方便调试程序 出错打印e就知道在什么地方出错了 设置驱动程序 public void setdrivername try Class forName this driver 注册数据库驱动程序 System out println 加载数据驱动成功 输出结果 方便调试 catch ClassNotFoundException e System out println jdbc driver error 抛出异常 加载数据驱动失败 打开连接 public Connection getopenConnection try 建立数据库连接 this dbcon DriverManager getConnection this url this user this password System out println 桥接数据库成功 catch SQLException e2 System out println e2 异常处理 return dbcon executeQuery方法用于进行记录的查询操作 入口参数为sql语句 返回 ResultSet对象 public ResultSet executeQuery String query throws SQLException this stmt dbcon createStatement 创建一个JDBC声明 this result stmt executeQuery query 获得SQL指令执行返回结果 return result executeUpdate方法用于进行add或者update记录的操作 入口参数为SQL语句 成功返回true 否则为false public void executeUpdate String query throws SQLException this stmt dbcon createStatement 创建一个JDBC声明 stmt executeUpdate query 执行指令 if stmt null stmt close 操作成功时关闭声明 根据列号读取数据 入口参数为int型数据表列号 返回string类型的数据 public String getData int index throws SQLException return result getString index 根据列号读取数据 入口参数为int型数据表列号 返回int类型的数据 public int getIntData int index throws SQLException return result getInt index 根据列号读取数据 入口参数为int型数据表列号 返回float类型的数据 public float getFltData int index throws SQLException return result getFloat index 判断数据库中的记录是否已到记录尾 返回值为boolean值 若到记录尾 返回值为false 否则为true public boolean next throws SQLException return result next 清空SQL指令执行结果 public void resetResult throws SQLException this result null 关闭数据库连接 关闭JDBC声明 清空结果 public void close throws SQLException if dbcon null dbcon close if stmt null stmt close if result null result close 系统公共函数 实现字符的替换 public void finalize throws Throwable this close public String replaceString String str 转换入口参数String类型的str为数组 char tempArray str toCharArray int iCurr new int 10 int j 0 for int i 0 i tempArray length i int temp int tempArray i if temp 92 iCurr j i j final int temp2 j 1 String strArray new String temp2 strArray 0 str substring 0 iCurr 0 strArray temp2 1 str substring iCurr j 1 1 for int m 1 m strArray length 1 m strArray m str substring iCurr m 1 1 iCurr m str for int k 0 k strArray length 1 k str str strArray k 5C str str strArray temp2 1 return str 5 2 25 2 2 首页首页 index jspindex jsp 考试系统首界页图5 1所示 图5 1考试系统首界页 5 2 35 2 3无纸化考试模块无纸化考试模块 该模块实现用户登录 信息确认 考试 显示成绩等功能 该部分文件包括 Login jsp 考试登录页面 Reading jsp 考生信息显示 Begin jsp 开始考试 Result jsp 显示考试成绩 考生登录页面是考生登录系统第一个页面 是进入考试状态的接口 在考生登 录页面 login jsp 中 提供给考生进入考试时所必须的ID和密码 考生登录 处输 入考生ID和密码 然后按 登录 按钮转到reading jsp页面对ID和密码进行验证 Login jsp代码执行 其显示界面图5 2所示 图 5 2 考生登录界面 在登录页面中 我们用JavaScript创建一个数据检查函数numericCineck 来检查 考生的 ID 考生ID只能为数字 这样可以把一部分检测工作放在客户端来执行 降低 服务器的压力 下面给出这段javaScript的代码 function numericCheck 取得页面中ID输入文本框中的值 nr1 document formloginD userid value flg 0 str spc arw for var i 0 i nr1 length i cmp 0123456789 tst nr1 substring i i 1 if cmp indexOf tst 1 str 和空格 alert 这里只接受数字 发现 flg 个不可接受的字符 n str return false 相应地在login jsp代码中的ID文本框中做如下更改 其中onblur numericCheck 的作用为 当输入完ID并且ID文本框失去焦点时调 用numericCheck 函数进行验证 以检验考生输入的ID是否符合要求 在本程序中判 断输入文本框的是否全为数字 登录页面login jsp程序不包含和数据库的交互操作 因为主要代码为html和 javascript 对用户登录信息进行验证的页面在reading jsp中 如果用户存在密码正确 则显示该考生资料 然后单击按钮进入begin jsp界面 Reading jsp代码如下 设置数据库驱动程序 登陆成功 您的相关信息 学号 姓名 性别 年级 专业 input name S id type hidden id S id value input name S name type hidden id S name value 你已经参加过考试了 你的上次考试成绩为 警告 答题过程不能中断 如果您试图进行作弊或 者超过答题时间 您将被强令在24小时后进行补考 补考时间 到期前 您不能参加考试 如果您准备完毕 点按钮开始答题 Else 若用户名不存在或者用户密码错误 给出登录错误信息返回重新登录 out print 用户ID不存在或密码错误 返回 考生成功登录界面如图5 3所示 图 5 3 考生成功登录界面 3 考试页面begin jsp实现随机出题 防止刷新页面 通过javaScript来实现 超时处理 通过调用Servlet来实现 和考试时间显示 通过javaScript来实现 等功 能 在考试开始页面中将会随机抽取50道题供考生做答 并且在考生进入答题时即 生成 为了防止考生反复刷新页面 进行重新选题 利用客户端javaScript限制考生 刷新 采用cookie存储用户登录时间和url 比较url如果发现相同值则认为用户登录后 刷新了页面 抛出错误 其代码实现如下 Begin var cookID 获取cookie值 var username GetCookie username 从cookie中读取用户名 pathname location pathname 读取页面url myDomain pathname substring 0 pathname lastIndexOf 截取当前路径 的上url var largeExpDate new Date 定义时间变量 largeExpDate setTime largeExpDate getTime 24 3600 1000 if username cookID 判断考生是否刷新页面 若刷新则进行错误处理 window alert 警告 你曾经对网页进行了刷新 属于作弊行为 24小时内你被 禁止参加考试 window location servlet CTimeOut chaoshiID 1 username cookID 存储当前用户名 SetCookie username username largeExpDate myDomain function getCookieVal offset var endstr document cookie indexOf offset 取得客户端的cookie值 if endstr 1 endstr document cookie length return unescape document cookie substring offset endstr function GetCookie name 取得客户端cookie名称 var arg name var alen arg length var clen document cookie length var i 0 while i 2 argv 2 null var path argc 3 argv 3 null var domain argc 4 argv 4 null var secure argc 5 argv 5 false document cookie name escape value expires null expires expires toGMTString path null path path domain null domain domain secure true secure End 用户登录系统答题时间超过预定时间后会显示答题超时 我们采用Servlet处理 代码如下 CTimeOut java 验证密码 验证是否以参加考试 传送参数 import java io import javax servlet import javax servlet http import java util public class CTimeOut extends HttpServlet 定义doPost方法用来接受数据 public void doGet HttpServletRequest req HttpServletResponse res throws ServletException IOException 定义输出流 req setCharacterEncoding gb2312 设置输入编码格式 res setContentType text html charset gb2312 设置输出编码格式 PrintWriter out res getWriter 定义输出流 String chaoshiID req getParameter chaoshiID 取得url参数 try 输出跳转页 out println out println out println out println 无标题文档 out println out println out println out println out println out println out close catch Exception e 异常处理 System out println e toString 在考生答题过程中 要实时显示考生答题已经消耗时间 并在即将交卷时给出 提示 Begin jsp页面是考生进入答题系统的主界面 给考生提供了一个网络答题交流 平台 begin jsp将从tiku表中抽取50道题 在规定时间范围内回答完毕并提交给系统进 行评分 此程序也是整个系统的一个难点 其中随机数的产生 相同随机数的处理 方法 Begin jsp执行界面如图5 4所示 图 5 4 开始答题界面 其产生随机数代码如下 产生50个随即数 int randnum new int 50 boolean isexsit false for num 0 num 50 num randnum num 0 Random rand new Random while true 判断随机数是否重复并进行处理 isexsit false i rand nextInt maxid for num 0 num j num if randnum num i isexsit true break 4 成绩显示页面result jsp主要为根据考生的答题结果 计算考生成绩并显示 执行代码显示界面如图5 5所示 图 5 5 考生成绩显示界面 计算答对题的数量 并计算分数 代码如下 int i int score 0 总分 String selectvalue String id for i 1 i 50 i selectvalue request getParameter select i id request getParameter h i ps conn prepareStatement select from tiku where id and answer ps setInt 1 Integer parseInt id ps setString 2 selectvalue rs ps executeQuery 判断用户做出的答案是否正确 如果正确score 1 if rs next score score 1 System out println id selectvalue score score score 2 每题两分 按百分制计算 到这里 前台考生登录 考试模块均已经设计完毕 这些是最终要展现给用户 的界面信息 5 2 45 2 4 系统管理模块系统管理模块 该模块主要实现如下功能 管理员登录 考生信息管理 题目管理 管理员添 加等功能 主要包含以下文件 Login jsp 管理员登录页面 Main jsp 主窗体 后台管理的主要框架 Zuo jsp 主窗体中左边的导航页面 You jsp 主窗体中右边的显示页面 Addobject jsp 对考生信息的管理 Addadmin jsp对管理员信息的管理 Addq jsp 对考题的管理 Search jsp 成绩统计 1 管理员登录 Login jsp管理员登录页面 它是后台管理的首页面 根据输入的用户名和密码 验证该管理员是否存在及密码是否正确 当输入的用户名和密码正确时 自动跳转 到main jsp页面 从而最终选择对考生信息 管理员信息 考题和成绩的管理 管理 员登录界面 如图5 6所示 图 5 6 管理员登录界面 2 main jsp主窗体 main jsp起到一个导航的作用 采用框架结构 通过它管理员可以进行对考生信 息 管理员信息 考题和成绩的管理操作并可以实现退出管理选项 最终实现退出 管理系统 主窗架界面 如图5 7所示 图 5 7 主窗架界面 3 addobject jsp考生管理 管理员选择学生管理 可以实现对学生信息的管理 如考生信息的删除和添加 操作 其中对考生的添加包括添加考生学号 密码 姓名 性别 专业和年级等各 项 其中学号 密码和姓名是必选项 考生管理界面 图5 8所示 图 5 8 考生管理界面 4 addp jsp考题管理 实现对考题的维护操作 用于实现对考题的添加和删除操作 其中对考题的添 加包括对考试题目和四个选项的添加 考题管理界面 如图5 9所示 图 5 9 考题管理界面 5 addadmin jsp管理员的管理 该程序的功能是对系统管理员进行维护 包括添加和删除功能 管理员管理界 面 如图5 10所示 图 5 10 管理员管理界面 6 search jsp考试成绩显示 该程序的主要功能是对成绩进行统计 其中包括各个分数段的人数及平均分 最高分和最低分 以及可以看到各个考生的考试成绩 成绩显示界面 如图5 11所示 图 5 11 成绩显示界面 代码实现如下 80 取得80分以上的考生数 量 ps con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论