基于Struts2结构在线考试系统设计与实现.docVIP

基于Struts2结构在线考试系统设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Struts2结构在线考试系统设计与实现

基于Struts2结构在线考试系统设计与实现   摘要:基于Struts2和J2EE技术框架,结合MySQL数据库,设计并实现了一个基于B/ S架构的在线考试系统,重点阐述了用户答题模块的设计,并提出了一种系统随机出题的方法。   关键词:在线考试系统;Struts2技术;J2EE;随机出题   中图分类号:TP319文献标识码:A文章编号:1672-7800(2013)006-0071-02   作者简介:唐晔(1973-),男,遵义师范学院计算机科学与技术系副教授,研究方向为计算机网络。   0引言   根据市场需求,网站的开发需要高效,同时考虑到网站的盈利性,则需要降低人力成本和资源成本。目前,大部分基于Java开发的网站都采用了Struts2的框架结构,并结合MySQL数据进行开发,以降低开发成本和提高开发效率。Struts2是基于MVC模式的开发,Struts2框架为程序员的开发带了极大方便,同时也更好地满足了用户的多样化需求。   本系统是基于Struts2开发的一个在线考试系统,同时采用了J2EE技术,结合Mysql数据库,设计并实现了一个基于B/S架构的网上考试系统,并提出了一种系统随机出题的方法。   1系统总体设计   使用在线考试系统的用户必须是注册用户,使用时要先登录。当用户选择某种测试后,系统会自动给出题目进行考试。考试开始时,系统自动计时,用户必须在规定的时间内完成考试,否则时间到了则不能答题。用户答完题后可以直接提交,系统会在用户自主提交或时间超时的情况下对用户所做的题进行评分。用户信息和试题维护由管理员进行管理,当管理员进入管理时,也需要有一个登录验证功能来验证是否有权限进入管理页面。管理员可以完成录入、修改、添加、删除等功能,还可以把已保存在文本文件里的数据导入到数据库中。   本系统总体结构如图1所示。   2系统设计   2.1数据表设计   根据系统功能要求,构建如下数据表,其中有下划线的是主键:   用户表(用户标号、登录名、密码、邮箱、登录状态):建立用户的基本情况,主要用于登录网络考试系统;   管理员表(管理员标号、登录名、密码、登录状态):建立管理员的基本情况,主要用于登录数据库管理;   选择题表(编号、题干、选项1、选项2、选项3、选项4):提供考试题中的选择题,其中“选项1”为正确答案;   填空题表(编号、题干、答案):提供考试题中的填空题;   套题记录表(编号、题目类型、年号、月号):用于记录套题包含的选择题和填空题,该表信息在录入试题时由系统自动填写;   成绩表(用户标号、考试时间、成绩):记录用户考试成绩。   2.2在线考试模块程序流程   在线考试模块流程如图2所示。   2.3系统页面   整个系统由模块构成,对应的页面如表1所示。   3关键技术处理   3.1选择题选项随机出现算法   选择题选项随机出现可以有效防止考试作弊的发生,维护考试的公平性。为了让选择题选项随机出现,需要有一个产生随机排列的函数,同时要建立一个临时的随机表。系统将值“1、2、3、4”与选项“A、B、C、D”建立一一映射,由随机排列函数对每一道题的值“1、2、3、4”进行重新排序,然后存储到临时的随机表。   随机排列函数是没有参数但有返回类型的函数,返回类型为整型数组,该数组中存储排好序的数字。系统中定义了两个大小为4的整型一维数组a和b,a数组初始赋值为{1,2,3,4},是数据库中原选择题的选项,b数组用来存放重排后的数字。每次从a中随机选一数字(选项),并在a中将该数字删除,然后存入b,循环4次后b中就是重排的顺序,然后将b放入临时的随机表。C#实现随机排列函数的代码如下:   static protected int[] RandomIntArray(){   int[] a = new int[4] { 1, 2, 3, 4 };   int[] b = new int[4];   Random random = new Random();   for (int j = 3, n = 0; j = 0; j--, n++) {   int i;   i = random.Next(0, j + 1);   b[n] = a[i];   for (; i j; i++) {   a[i] = a[i + 1]; }   }   return b;}   3.2抽题不重复性   为了避免系统在一套考题中抽题出现重复现象,系统采用排除法进行抽题:将所有备选试题号n存放在数组Topic中,随机生成抽取的序号m,1≤m≤n,选出试题号Topic(m);然后将Topic(m)与Topic(n)

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档