基于WEB的在线模拟考试系统设计论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

立 一 个 用 户 权 限(user_privilege)视 图 ,它 表 示 了 一 个 用 户 所 拥 有
的全部权限。 这样能够便于在系统中直接查询用户所拥有的权
限。 当一个用户成功登陆系统后,我们将其登陆信息,即 users 表
中的 user_id 信息写入会话 Session 中, 一旦用 户 需 要 进 行 某 种
操作的时候, 我们就可以从 Session 中提取用户信息, 并与 us-
er_privilege 视图中的权限进行比较, 如果有对应的权限就进行
相应操作,否则不予操作。 通过此种方式就实现了角色的权限管
理,保证了系统的安全性。
动态出题的实现
动态出题是学生模块中试题练习的一部分, 它要求在选定
的范围内随机挑选出一定数量的不重复题目以供学生练习。 其
【关键词】: WEB;模拟考试;Struts;Hibernate
引言 计算机和网络的发展推动了远程教学例如网络教学的应用
和发展。 传统的教学模式已经不能完全适合需求,利用网络教学 学生可以更及时的发现自己的问题, 交互的学习方式也更能引 起学生的兴趣。 为此我们应用 JSP 技术,结合 Struts 和 Hibernate 设 计 了 一 个 基 于 Web 模 式 的 在 线 模 拟 考 试 系 统 ,该 系 统[1]具 有 在线模拟考试、动态出题、试卷管理、用户管理等功能。 它使用方 便,操作简单,客户端采用浏览器就可完成相应的功能,即客户 端零安装。 克服了传统的 C/S 模式应用开发难于升级,可伸展性 差等问题,使得该系统具有广阔的应用空间。 1.系 统 的 功 能 介 绍
在线模拟考试系统从功能上分为四个模块部分: 管理员模 块、教师模块、学生模块、通信模块。 其各个模块[2]的功能如下图 所示:
图 1.系统功能模块 1.管 理 员 模 块 教师管理:管理员在核实教师的注册信息后,赋予教师相应 的管理的权限, 并能够对教师的部分或全部信息进行修改或删 除。 学生管理:管理员可以对学生的部分资料进行修改,能够删 除过期学生用户。 系统配置:对整个系统进行一些基本的设置,如学科属性的 设置,过期信息的删除,页面排版显示的设置等。 2.教 师 模 块 个人信息:教师在注册并通过审核后可以进入该模块,能够 更改部分资料信息,如联系方式、登陆密码等个人信息,但关键 信息不得修改如姓名等。 题库管理:完成对习题的添加、修改、删除,对习题所属的学 科进行分类等,并能够选择习题生成模拟试卷。 试题分析:查询学生的实际做题情况,有效了解学生的选题 信息和做题情况,并可按一定的条件统计出题目的难易度,即答 题正确率,并针对试题进行详细的分析。 3.学 生 模 块 个人信息:学生在填写相应的信息注册后,可以选择相应学 科或课程练习。 注册后同样可以修改部分信息。 知识查找: 学生能够在系统中通过关键词查找相关的试题 或答案。 试题练习:学生可以自主的选择习题进行练习,也可以由系 统随机抽取习题以供练习。 错题回顾:学生在练习中做错的题将会被系统记录下来,以
பைடு நூலகம்便日后反复练习,达到巩固知识点的效果。 个人题库:学生在学习的过程中,遇到自己想保留的习题,
可以保存到个人题库里面,以便复习。 同时学生也可自己上传补 充习题以供复习。 补充的习题可以设置公开或个人属性,其中属 性为公开的补充习题经过相关教师审核后可添加到题库中以供 其他的学生学习。
4.通 信 模 块 包括教师与教师、学生与学生、教师与管理员、教师与学生 之间的信息交流与沟通。 2.系 统 的 架 构 Hibernate 和 Struts 是 J2EE 领域中应用最广泛的框架,基于 这两种框架开发,能够使得 Web 系统开发更简单、流程 更 清 晰 、 维 护 更 方 便 ,因 此 本 系 统 采 用 基 于 Struts 和 Hibernate 的 框 架 进 行开发。 Struts 框架 就 WEB 应用程序开发来说,采用 MVC 模式[3](Model 模 型 , View 视图,Controller 控制器)是最基本最常用的一种设计模式 。 它通过 把 应 用 程 序 分 成 三 个 层--模 型 层 、视 图 层 、控 制 层 ,其 中 模型层用于业务的逻辑处理;视图层是 Web 应用程 序 中 用 户 界 面相关的部分,主要由 JSP 负责产生;控制层则对用户的输入请 求做出处理,即调用特定的模型进行处理,最后将模型处理的结 果返回给特定的视图以供数据的显示。 MVC 模式通过三者之间 的分离达到层与层之间的松散藕合, 实现了代码的重用性和易 于修改, 提高系统的可维护性。 Struts 作为 Web 系统广泛流行 的 应 用 框 架 ,正 是 因 为 它 是 一 种 基 于 MVC 模 式 的 框 架 ,简 化 了 Web 应用程序的开发,并使得开发出的系统稳定并易于维护。 在 Struts 框 架 中 , 我 们 可 以 通 过 配 置 文 件 struts-config.xml 把 握 整 个系统各部分之间的相互关联, 清晰地掌握整个系统的体系结 构。 同时 Struts 对 Taglib 标签库进行了扩展,使得我们不但可以 通过 Taglib 可以简化 JSP 页面的开发, 同时也能够更方便灵活 地在 Struts 中控制程序的流程。 Hibernate 框架 Hibernate 是一个开放源码的 ORM(Object Relation Mapping 对象-关系的映射) 持久层框架。 Hibernate 框架提供了对象到关 系型数据库的持久化服务, 使得我们可以用面向对象的设计进 行持久层开发。 它采用持久化类与数据库表相映射,每个持久化 类实例均对应于数据库表中的一条记录。 当我们采用面向对象 的方法操作此持久化类实例,就可完成对数据库表数据的插入、 删除、修改、读取等操作。 Hibernate 主要通过 hibernate.properties 配置文 件 及 类 映 射 文 件(*.hbm.xml)将 实 体 类 映 射 到 数 据 库 中 的 表,为应用程序提供持久化服务。 同时 Hibernate 将原 本 分 散 的 JDBC 和 SQL 配合产生的接口变成了对象化的接口, 定义了自 己的基于面向对象设计的 HQL(Hibernate Query Language)查询 语 言 ,通 过 它 生 成 实 际 的 SQL 语 句 传 递 到 数 据 库 执 行 的 ,大 幅 度减少开发时人工使用 SQL 和 JDBC 处理数据的时间。 基于 Struts 和 Hibernate 框架的系统架构 本 系 统 采 用 Struts 与 Hibernate 两 种 框 架 相 结 合 的 架 构,其
模拟考试系统,并以 Struts 作为表现层框架、Hibernate 为数据持
久层框架,在网络应用中体现出了安全、高效的优势,并克服了
传统的 C/S 模式应用开发 难 于 升 级 ,可 伸 展 性 差 等 问 题 。 更 为
重要的是,本系统能够激发学生的学习兴趣,对提高了学生的学
152
福建电脑
2009 年第 4 期
系统的框架如图 2 所示:
图 2 系统框架图 在这种结构中,当客户端发送 HTTP 请求后,其请求被送到 控 制 器 ActionServlet,ActionServlet 根 据 数 据 请 求 发 给 指 定 的 一 个 ActionBean 进行处理。 ActionBean 根据业务逻辑将会调用 相 应 的 JavaBean。 如 果 需 要 访 问 数 据 库 ,JavaBean 则 会 通 过 Hibernate 进 行 访 问 , 因 为 在 本 系 统 中 模 型 层 用 Hibernate 实 现 。 Hibernate 采用 ORM 实现数据 库 与 对 象 的 映 射 , 通 过 操 纵 对 象 即可操纵数据库。 当 ActionBean 通过调用相应的 JavaBean 完成 业 务 逻 辑 处 理 后 , 将 会 返 回 一 个 ActionForward 对 象 给 控 制 器 ActionServlet,其中 ActionForward 对象封装了下一个目标页面的 信息。 ActionServlet 根据 ActionForward 对象信息,查找配置文件 中相应的映射信息, 并将原客户发送的 HTTP 请求再 次 转 发 到 对应的视图 JSP 页面,最后响应客户端的 HTTP 请求。 3.系 统 关 键 点 的 实 现 在整个系统,重要的部分很多,不能一一对所有部分的实现 进行说明, 这里仅就最关键的部分角色权限的实现及动态出题 的实现进行详细的设计说明。 角色权限的实现 在 Web 应用程序中,角色的权限验证是保证系统信息 安 全 的关键技术。 只有对所有的系统访问者分配一定的角色,并赋予 相应的权限,才能够保证系统的安全性和信息的完整性。 为此, 我们设计 5 张表用于实现系统的角色权限管理[4]。 如下图所示: users:user_id, user_name, password privilege_define:privilege_id, privilege_description role:role_id, role_description role_privilege:role_id(fk), privilege_id(fk) uesr_role:user_id(fk), role_id(fk), users 表 为 用 户 表 , 用 于 保 存 登 陆 系 统 用 户 的 个 人 信 息 ; privilege_define 表 为 权 限 定 义 表 , 即 把 系 统 的 每 一 个 功 能 都 映 射为一个权限;role 表为角色定义 表 ,用 于 保 存 系 统 中 各 种 不 同 的角色;privilege_right 表为角色权限表,用于保存不同的角色所 能够拥有的权限;user_role 表为用户角色定义表,用于保存用 户 分别所属的角色。 根据 role_privilege 和 uesr_role 表我们可以建
关键的类方法代码如下:
public ArrayList randomNumber (int begin,int end,int number ){//begin,end 表
示起止范围,number 表示要产生的随机数的个数
ArrayList numberList=new ArrayList();
int size = end-begin+1;
//随机数产生的基础范围
if(begin>end||number>size)
return numberList;//条件限制的判断
for(int i=0;i<number;i++){
int r = (int)(Math.random()*size)+begin;//随机数的生成
if(numberList.contains(r))//重复随机数的判断
i--;
else numberList.add(r);//非重复随机数被保存
}
return numberList;//结果的返回
}
通过对起止范围以及随机数的个数的限定, 并对产生的随
机数作是否重复的判断,实现了动态出题的基本功能。
4.小 结
随着计算机技术的飞速发展, 利用计算机进行辅助学习是
必然趋势。我们应用 Web 开发技术设计了一种基于 Web 的在线
2009 年第 4 期
福建电脑
151
基于 WEB 的在线模拟考试系统设计
王 萍 1, 游强华 1, 王 霞 2
(1、川北医学院 四川 南充 637100 2、成都医学院 四川 成都 610083 )
【摘 要】: 基于 Web 的在线模拟考试系统具有使用方便、易于维护的特性,并能够激发学生的学习兴趣。 文章重点介 绍了系统实现的功能,以及如何利用 Struts 和 Hibernate 框架构建该系统 ,并 对 系 统 的 框 架 流 程 和 系 统 关 键 部 分 的 实 现 进 行 了详细说明。
相关文档
最新文档