基于Struts2结构的在线考试系统设计与实现
- 格式:doc
- 大小:15.50 KB
- 文档页数:4
基于J2EE S2SH架构的在线考试系统详细设计说明书1.1.1引言1、编写目的本文档是对“蓝梦教育集团”整个教育系统下的在线考试评价子系统(产品质量度量管理系统)的一个总体的把握,以便在下一步的开发设计中更好的控制开发,并且对其他教育系统有良好的接口。
本文档根据用户的需求对系统加以描述,同时建立特定领域模型。
它说明了本系统的各项功能需求、性能需求和数据需求,明确标识出各功能的实现过程,为进行后面的详细设计和实现做准备。
2、本文档的预期读者(1)系统分析人员(2)软件设计人员(3)软件实现人员(4)软件测试人员3、术语与缩略语(1)用户泛指本系统的具有系统操作权限的使用者。
(2)系统管理员对本系统进行技术支持、维护管理的具有特定权限的用户,其工作内容包括对系统参数配置、权限管理、系统软/硬件维护管理。
(3)功能权限系统对各个功能进行了定义,用户只有具有相应功能的权限,才能使用该功能,目前系统中展现的功能菜单受功能权限控制,即如果用户未被授予该项功能权限,相关的功能菜单不可见。
(4)数据权限用户能够对哪些数据具有访问权限,即用户可访问的数据范围的定义。
4、参考资料(1)J2EE项目实训Hibernate框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(2)J2EE项目实训Spring框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(3)J2EE项目实训UML及设计模式(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(4)J2EE项目实训Struts框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社2008 年10月(5)《精通Struts设计与开发》孙卫琴编著电子工业出版社(6)《Spring从入门到精通》郭锋编著清华大学出版社(7)《Hibernate开发技术祥解》孙卫琴编著电子工业出版社(8)《J2EE应用开发技术祥解》刘晓华编著电子工业出版社(9)《设计模式》Erich Gamma 等编著机械工业出版社1.1.2系统程序模块设计说明1、登录模块(1)程序描述验证登录到系统的管理员的身份。
基于Struts2结构的在线考试系统设计与实现作者:唐晔来源:《软件导刊》2013年第06期摘要:基于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”为正确答案;填空题表(编号、题干、答案):提供考试题中的填空题;套题记录表(编号、题目类型、年号、月号):用于记录套题包含的选择题和填空题,该表信息在录入试题时由系统自动填写;成绩表(用户标号、考试时间、成绩):记录用户考试成绩。
【关键词】Struts2;信息系统;系统设计;系统实现0 引言21世纪是一个信息时代,谁拥有信息,谁就拥有优势。
想要提高信息管理水平,最大限度发挥信息资源优势,以获得最大经济效益目标,离不开对信息管理系统的应用。
信息管理系统是利用现代管理思想和方法,以电子计算机为载体,采用计算机软件和网络通讯技术,对各种信息进行收集、处理、存储、分析、管理的系统。
基于Struts2的信息管理系统结构研究,能够实现信息资源采编、交流、维护、发布、管理等功能的一体化,能够有效提高信息发布的时效性、准确性,更有利于信息资源管理和开发,目前已广泛应用到了各个领域,研究Struts2的信息管理系统设计与实现具有重要意义。
1 信息管理系统信息管理系统是随着信息技术、计算机技术、网络技术的普及发展起来的新型产物。
通过信息管理系统便能够对相关信息进行收集、加工、处理、传递、储存、共享、利用、交流、管理。
以当代处理信息方法为依据,附加进电子计算机技术,来进行进一步的信息分析。
信息管理系统的应用能够充分利用信息资源获得最大信息资源利用率。
该系统涉及经济学、管理学、计算机科学等很多学科,具有辅助决策功能。
信息管理系统作为一种新型的信息集成中心而存在,它不仅可以提供当前信息的分析与处理,还可以对未来一段时间内的信息进行合理性预测。
这样的系统可以作为企业信息的核心来工作,并在企业发展中起到非常重要的作用。
在信息化的时代,企业需要这种信息系统来为企业的运行指引方向,同时信息管理系统也可以在企业的竞争当中起到至关重要的积极作用。
目前在医疗、教育以及企业等方面,信息管理系统已经得到广泛应用。
不同类型的信息管理系统设计思路不同,系统结构不同,功能不同,特征不同,所以适用范围也不同。
目前市面上常见的信息管理系统绝大多数是从社会活动需要和将来发展战略角度出发进行设计,以提高系统的针对性和科学性。
如企业信息管理系统,往往针对企业实际情况而设计,无法应用于医院管理或校园管理当中。
基于J2EE的在线学习考试系统的设计与实现的开题报告一、选题的背景和意义随着科技的不断进步,互联网的普及,网络学习和在线考试已经成为一种趋势。
考试是学校教育中必不可少的一个环节,而在线考试能够解决传统考试中面临的许多问题,例如时间和空间限制、后期管理等。
本项目旨在实现一个基于J2EE的在线学习考试系统,建立一个统一的考试平台,可以让学生随时随地进行在线学习和考试,同时可以帮助老师进行考试管理、题库维护等工作。
这样的系统不仅有利于提高学生自主学习的能力,而且也可以提高考试的公平性和科学性,能够帮助提高学校教育质量和学生学习水平,具有重要的现实意义。
二、研究的目的和内容本项目旨在设计和实现一个基于J2EE的在线学习考试系统,包括以下几个方面的内容:1、需求分析:进行对在线学习考试系统的需求分析,明确系统所需的功能和性能要求,确定系统的主要模块和进行模块设计。
2、系统设计:进行系统的总体设计和详细设计,采用J2EE技术进行设计,并使用UML进行建模分析。
3、系统实现:使用Java语言和J2EE技术实现系统的各个模块,进行代码编写和单元测试。
4、系统测试:对系统进行全面测试,包括功能测试、性能测试和安全测试等。
5、系统部署:将系统部署到服务器上,并进行网络测试和系统维护。
三、技术路线和预期成果本项目将采用J2EE技术进行设计和实现,在具体实现中涉及的技术有:1、Spring框架:用于实现系统的业务逻辑层和控制层,提供事务管理和依赖注入等功能。
2、Struts2框架:用于实现系统的MVC框架,提供模型层和视图层。
3、Hibernate框架:用于实现系统的数据持久层,提供对象关系映射和数据访问等功能。
4、MySQL数据库:用于保存系统的数据。
5、HTML、CSS和JavaScript:用于实现系统的前端页面和交互效果。
本项目的预期成果是:实现一个基于J2EE技术的在线学习考试系统,包含学生登录、考试、练习、成绩查询等功能,同时有管理员管理学生信息、试题、课程等功能。
基于J2EE S2SH架构的在线考试系统单元测试报告说明书1.1.1引言1、编写目的编写本单元测试报告的目的在于:(1)对单元测试结果进行整理和汇总,形成正式的测试文档;(2)为软件单元的评审验收提供依据;(3)纳入软件产品配置管理库。
2、本文档的预期读者(1)软件设计人员(2)软件实现人员3、测试说明测试环境与实际运行环境之间可能存在的差异:数据库的大小。
测试时只是调用相对较小的数据库,而实际应用中将会使用较大的数据库;差异对测试结果的影响:数据库大小并不影响数据库操作的实现,可能在性能上有所差异,但是功能实现是相同的。
4、参考资料(1)J2EE项目实训Hibernate框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(2)J2EE项目实训Spring框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(3)J2EE项目实训UML及设计模式(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(4)J2EE项目实训Struts框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社2008 年10月(5)《精通Struts设计与开发》作者:孙卫琴电子工业出版社(6)《Spring从入门到精通》作者:郭锋清华大学出版社(7)《Hibernate开发技术祥解》作者:孙卫琴电子工业出版社(8)《J2EE应用开发技术祥解》作者:刘晓华电子工业出版社(9)《设计模式》作者:Erich Gamma等机械工业出版社1.1.2软件单元描述管理员功能, 教师功能, 学生功能。
1.1.3测试结果1、代码审查结果在表格中列出代码审查中查出的问题,下面为代码审查结果表:2、测试用例统计——测试用例执行结果统计表。
基于J2EE在线考试系统的设计与实现作者:韩高峰,张健来源:《电脑知识与技术》2010年第20期摘要:随着计算机技术和通信技术的迅猛发展,学校教学和管理的信息化发展也有长足的进步,这就要求各个环节都均衡发展,从软硬件双方面把学校建设成一流的信息管理、教育教学的平台。
该文设计开发的在线考试系统也是其中重要的一个方面。
本系统以减轻教师工作负担、提高工作效率、防止试题泄露、优化考试流程为目的,采用J2EE平台三层架构开发模式,采用一种新的工作流模型设计并实现在线考试系统功能,开发出具有跨平台、功能完善、安全稳定的网上在线考试系统,从而使系统具有较高的运行效率、良好的可扩展性和可维护性。
本系统分为两大模块:后台管理模块和考试功能模块。
其中后台管理模块是对考生信息、试题、试卷和考务进行管理。
考试功能模块是考生对自己的基本信息的修改、登录、考试和成绩查询进行操作。
关键词:J2EE;Struts+JavaBean;在线考试系统中图分类号:TP313文献标识码:A文章编号:1009-3044(2010)20-5472-02随着信息技术的发展,电子政务[8]应用也得到迅速发展,针对当前高校考试繁重的工作任务、纸质的试卷不安全等问题,为了解决高校繁重的考试工作任务;为了提高工作效率,本系统采用J2EE平台三层架构开发模式,并结合工作流技术,采用一种新的工作流模型设计并实现在线考试系统功能,开发出具有跨平台、功能完善、安全稳定的网上在线考试系统,从而使系统具有较高的运行效率、良好的可扩展性和可维护性。
1 相关技术1.1 J2EEJ2EE[2] 既Java2平台企业版(Java 2 Platform,Enterprise Edition),是一种利用Java2平台简化与企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
基于Struts2结构的在线考试系统设计与实现
唐晔
【期刊名称】《软件导刊》
【年(卷),期】2013(012)006
【摘要】基于Struts2和J2EE技术框架,结合MySQL数据库,设计并实现了一个基于B/S架构的在线考试系统,重点阐述了用户答题模块的设计,并提出了一种系统随机出题的方法.
【总页数】2页(P71-72)
【作者】唐晔
【作者单位】遵义师范学院计算机科学与技术系,贵州遵义563002
【正文语种】中文
【中图分类】TP319
【相关文献】
1.基于B/S结构模式的在线考试系统的设计与实现 [J], 芦海燕
2.基于Authorware的《数据结构》在线考试系统的设计与实现 [J], 雷小朋;王长清
3.基于Struts2结构的在线考试系统设计与实现 [J], 唐晔;
4.基于B/S结构在线考试系统的设计与实现 [J], 刘莉莉
5.基于B/S结构的在线考试系统的设计与实现 [J], 李果;胡彩明
因版权原因,仅展示原文概要,查看原文内容请购买。
《J2EE系统架构和程序设计》课程设计实训项目——基于Struts +Hibernate架构的在线考试系统详细设计说明书1.1.1在线考试系统中的表示层的设计1、在线考试系统表示层功能在在线考试系统中的表示层使用Struts框架,该层所负责的主要功能如下:1)管理用户的请求,做出相应的响应2)提供一个流程控制器,委派调用业务逻辑和其他上层处理3)处理异常4)为显示提供一个数据模型5)用户界面的验证以下内容,不该在Struts表示层中出现,因为它们应该是与表示层无关的。
1)与数据库直接通信2)与应用程序相关联的业务逻辑及校验3)事务处理因为,如果我们在表示层引入这些功能的实现代码,将会给系统带来高耦合和难以维护的后果。
2、在线考试系统表示层主要组成在线考试系统表示层由UI(User Interface)和UI控制逻辑组成:(1)UI(User Interface)主要由JSP页面来体现,UI是客户端的用户界面,负责从用户方接收命令,请求,数据,传递给业务层处理,然后将结果呈现出来。
(2)UI控制逻辑主要由JavaBean来实现,UI控制逻辑负责处理UI和业务层之间的数据交互,UI之间状态流程的控制,同时负责简单的数据验证和格式化等功能,在线考试系统表示层采用Struts框架,为了更好的实现实现表示和业务的分离分层原则,JSP实现尽可应该做到:1)利用标签技术标准的做法是尽可能的使用struts标签,一方面即可以使用Struts中所提供的各个标签库的标签,同时页根据项目的实际需要定制了自己的标签库的标签,只有这样一来,提高了系统设计的规范性和代码的可重用性,为后期升级提供方便。
2)利用View Help组件(JavaBean)实现业务逻辑标准的做法是尽可能的使用Java Bean,这样可以完成将某些复杂数据格式化或者数据转换的功能,才能够把业务逻辑和页面表示彻底分开,符合MVC设计原则和方法。
下图为在线考试系统表示层架构图:在线考试系统中的表示层中的用户登陆组件类的类图以及它们之间的关系的图示如下图所示:3、在线考试系统表示层用主要技术——客户端的JavaScript脚本的应用(1)应用JavaScript时的要点在Struts的应用中,一般是不再鼓励使用客户端的校验技术,而改用服务器端的校验技术以提高项目的安全性和更好的兼容性。
基于Struts的在线考试系统的设计与实现的开题报告一、选题背景随着互联网技术的不断发展,网络教育越来越受到人们的关注。
在线考试系统是网络教育中不可或缺的组成部分之一。
在线考试系统可以方便学生随时随地参加考试,减轻考试的考点安排和监考工作,提高了考试效率和质量。
本课题选取 Struts 框架技术进行在线考试系统的设计与实现,旨在提高学生和教师的参与感,更好地开展在线教学。
二、研究内容和目标本项目的目标是实现一个基于 Struts 的在线考试系统,具备以下功能:1. 教师可以创建考试试卷和题目,并设置考试时间和考生限制;2. 考生可以注册账户,并参加教师创建的考试;3. 考生在考试过程中可以在线查看考试试卷并回答试题;4. 系统可以自动判卷,生成考试成绩;5. 教师可以查看学生的考试成绩和答题情况。
三、研究方法本项目采用经典的MVC架构模式,基于 Struts 框架进行设计和开发。
具体研究方法如下:1. 调研相关技术,包括 Struts 框架、Java Web 编程、MySQL 数据库等;2. 按照MVC架构模式设计系统框架,并根据需求进行详细设计;3. 基于 Struts 框架进行开发,实现系统的各项功能和特性;4. 存储考试数据和用户信息,设计合理的数据库结构,并进行开发和调试;5. 进行系统测试和性能优化,确保系统稳定、高效运作。
四、项目意义和创新点本项目的意义在于:1. 采用Struts 框架进行开发,体现了面向对象的设计思想和模块化、组件化的开发方法,提高了代码的可维护性和可扩展性;2. 实现了在线考试系统的多项功能,有利于提高教育教学的效率和质量,方便学生和教师的参与和管理;3. 创新性地采用了自动化判卷的技术,提高了考试的效率和准确性,方便教师的评分和管理。
五、预期成果本项目的预期成果为:一个基于 Struts 的在线考试系统。
该系统具备如下特点:1. 针对人力、物力和时间的约束,使考试变得高效、快捷和智能;2. 创建、发布、答题、批改全程在线化处理,使考试变得珍贵而严谨;3. 可选题目数量、题目分类、答题时间的灵活性,使考试变得个性化而富有挑战;4. 监考人工一定程度上的减少,考试的安全性大大提高。
基于J2EE在线考试系统的设计与实现作者:郑碧虹来源:《中国新技术新产品》2011年第11期摘要:在线考试系统可以利用网络,随时随地对学生进行考试,是传统考场的延伸,课题是在分析在线考试系统现状的基础上,结合软件工程的思想,详细分析了在线考试系统的总体结构。
在线考试系统是在结合先进的教学管理方法和现代网络技术基础上,采用JSP、JavaBean等技术构建,实现题库管理、试卷的手动/自动生成、考试管理、考试控制、考试结果的公布与查询等功能。
关键词:JSP;在线考试;数据库系统中图分类号:TP393 文献标识码:A绪论.1研究背景与意义现代社会随着社会的不断发展对劳动者和技术人员的职业技能要求越来越高,考试作为衡量人的能力的一种重要手段,从传统的纸质的考试到计算机辅助考试,到现在最新的基于网络的在线考试,如何运用网络化信息化的成果,从而可以较客观、准确地评估人的知识与能力水平,已经成为一个研究的热点。
本课题的意义在于在线考试平台是实现网络教育的一个重要组成部分,通过在线考试平台你可以及时测试自己的学习进度、自己对己学习知识的掌握程度。
在线考试与传统考试相比有着明显的优势,考生和教师可以从世界的任何角落,通过浏览器接入因特网来使用考试系统,不受地域的限制,同时也使得用户可以更加灵活地安排考试时间,可以在任何时候使用在线考试系统进行自测,快速查询考试成绩。
1.2国内外研究概况目前的在线考试系统都是针对不同考试内容的要求开发出来的,系统种类繁多,各成一家,总的特点是专用性强,考试过程管理功能弱。
1.3论文的主要研究工作本课题的主要研究工作包括:(1)研究在线考试系统技术在国内外发展的概况;(2)提出适合学校现有条件符合实际需求的在线考试的解决方案;(3)分析并设计系统的结构及子系统;(4)解决在线考试系统的各种技术问题。
2、关键技术研究2.1 J2EE的核心技术J2EE的核心技术包括servlet(服务端小程序)、JSP(JavaServerpages,Java服务器端页面)、JDBC(Java Database Connection,Java数据库连接)、EJB(Java Bean,企业级Java Bean)、RMI、XML、JMS、IDL、JTA、JTS。
基于J2EE架构的在线考试系统的设计与实现的开题报告1. 选题背景与意义随着信息化时代的到来,网络技术和计算机技术的不断发展和普及,网络应用越来越广泛,而在线考试系统也逐渐成为了在线教育的重要组成部分,适用于各种教育和测试场景。
在线考试系统能够提高考试的效率和公平性,改善教育教学的质量,提高学生学习成绩和知识水平。
因此,设计和实现一款基于J2EE架构的在线考试系统具有重要的意义。
2. 研究现状近年来,随着计算机技术和网络技术的不断发展,各类在线考试系统层出不穷。
当前,国内外基于J2EE架构的在线考试系统的设计和实现已经有一定的研究成果。
但是,现有的系统在稳定性、功能性、安全性、用户体验等方面还存在一定的问题和不足。
因此,本项目旨在设计和实现一款更加完善和优化的基于J2EE架构的在线考试系统。
3. 研究内容和方法本项目将通过以JSP和Servlet技术为基础,利用MVC架构设计和实现一款基于J2EE架构的在线考试系统,着重研究以下几个方面:(1)系统的整体设计:选取适宜的J2EE框架实现在线考试系统的各个模块,如用户登录、考试题目的添加、试卷生成、考试答题、成绩统计等。
(2)系统的安全性设计:加强系统的数据安全性、系统身份认证和权限控制等方面的研究和实现,以确保用户信息和系统数据的安全。
(3)系统的优化设计:提高系统的交互和用户体验,完善系统的功能,解决系统在考试高并发时的稳定性问题。
4. 预期成果和意义本项目将设计和实现一款基于J2EE架构的在线考试系统,具有如下预期成果和意义:(1)提高在线考试的效率和公平性,改善教育教学的质量。
(2)提高学生学习成绩和知识水平,为学生提供更好的学习体验。
(3)积累和总结一定的J2EE开发经验,为后续类似系统的开发提供参考。
(4)提高个人软件开发水平,增加自身的竞争力。
综合以上三方面因素,本项目设计和实现的基于J2EE架构的在线考试系统具有一定的研究和应用价值。
《J2EE系统架构和程序设计》课程设计实训项目——基于Struts + Hibernate框架技术的在线考试系统设计和实现1.1.1在线考试系统设计1、系统概述由于这次实训也做了一个web在线考试系统,所以把这次实训的整个过程记录下来,完成实用开发技术的这个大作业。
经过一个学期的实用开发技术的学习,使我了解到了一些比较流行的开发技术,也在实践中锻炼了自己。
在线考试系统主要功能是提供一个在线的考试平台,教师可以利用此平台输入试卷,学生可以选择试卷考试,另外,系统也提供用户管理功能。
系统总体用例如下图所示。
2、系统总体用例3、系统模块划分为方便系统的功能实现,系统模块按业务功能与平台功能划分为如下几个模块,以包的形式加以区分:4、设计系统的DAO组件为业务层提供通用数据访问接口,本系统采用一般DAO实现模式,现样,为了减少耦合度,采用了工厂模式,客户端要得某个具体DAO实现类,必须通过工厂类。
5、设计系统中的用户信息管理相关的程序类6、设计系统中的试卷信息管理相关的程序类7、分别根据用户设计模块和试卷功能模块设计对应的数据库表结构(1)权限相关表设计(2)用户相关表设计(3)试卷相关表设计8、创建数据库表的过程和文档drop table if exists tbl_admin;drop table if exists tbl_class;drop table if exists tbl_question;drop table if exists tbl_student;drop table if exists tbl_teach;drop table if exists tbl_teacher;drop table if exists tbl_test;create table tbl_admin(adm_id int not null auto_increment, adm_name varchar(10),adm_password varchar(15),primary key (adm_id));create table tbl_class(cls_id int not null auto_increment, cls_name varchar(20),primary key (cls_id));create table tbl_question(qst_id int not null auto_increment, tst_id int,qst_title varchar(100),qst_answer char(1),qst_score int,primary key (qst_id));create table tbl_student(stu_id int not null auto_increment, cls_id int,stu_name varchar(10),stu_password varchar(15),primary key (stu_id));create table tbl_teach(tch_id int not null,cls_id int not null,primary key (tch_id, cls_id));create table tbl_teacher(tch_id int not null auto_increment, tch_name varchar(10),tch_password varchar(15),primary key (tch_id));create table tbl_test(tst_id int not null auto_increment, tch_id int,tst_name varchar(15),tst_time varchar(10),primary key (tst_id));alter table tbl_question add constraint FK_has foreign key (tst_id)references tbl_test (tst_id) on delete cascade on update cascade;alter table tbl_student add constraint FK_belong_to foreign key (cls_id)references tbl_class (cls_id) on delete cascade on update cascade;alter table tbl_teach add constraint FK_teach foreign key (tch_id)references tbl_teacher (tch_id) on delete cascade on update cascade;alter table tbl_teach add constraint FK_teached_by foreign key (cls_id)references tbl_class (cls_id) on delete cascade on update cascade;alter table tbl_test add constraint FK_test foreign key (tch_id)references tbl_teacher (tch_id) on delete cascade on update cascade;9、在数据库表中添加测试相关的测试数据insert into tbl_teacher (tch_id, tch_name, tch_password) values (0, 't1', 't1'); insert into tbl_teacher (tch_id, tch_name, tch_password) values (0, 't2', 't2'); insert into tbl_admin (adm_id, adm_name, adm_password) values (0, 'admin','admin');insert into tbl_class (cls_id, cls_name) values (0, 'class1');insert into tbl_class (cls_id, cls_name) values (0, 'class2');insert into tbl_test (tst_id, tch_id, tst_name, tst_time) values (0, 0, 'addition', '60');insert into tbl_test (tst_id, tch_id, tst_name, tst_time) values (0, 1, 'subtration', '60');insert into tbl_test (tst_id, tch_id, tst_name, tst_time) values (0, 0,'multiplication', '60');insert into tbl_test (tst_id, tch_id, tst_name, tst_time) values (0, 1, 'division', '60');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 0, '11+1=12','1', '3');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 0, '13+21=32','0', '3');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values(0, 1, '11-1=10','1', '3');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 1, '20-0=19','0', '3');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 2, '10*0=0','1', '5');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 2, '11*1=12','0', '5');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 3, '11/1=11','1', '5');insert into tbl_question (qst_id, tst_id, qst_title, qst_answer, qst_score) values (0, 3, '13/2=5.5','0', '5');insert into tbl_student (stu_id, cls_id, stu_name, stu_password) values (0, 0, 'xrj', 'xrj');insert into tbl_student (stu_id, cls_id, stu_name, stu_password) values (0, 0, 'ljk', 'ljk');insert into tbl_student (stu_id, cls_id, stu_name, stu_password) values (0, 1, 'zcj', 'zcj');insert into tbl_student (stu_id, cls_id, stu_name, stu_password) values (0, 1, 'dwy', 'dwy');insert into tbl_student (stu_id, cls_id, stu_name, stu_password) values (0, 1, 'zlt', 'zlt');insert into tbl_teach (tch_id, cls_id) values (0, 0);insert into tbl_teach (tch_id, cls_id) values (0, 1);insert into tbl_teach (tch_id, cls_id) values (1, 0);insert into tbl_teach (tch_id, cls_id) values (1, 1);1.1.2在线考试系统实现——管理员功能分类说明1、修改密码2、增加教师3、教师信息列表显示4、对教师列表中的某个教师信息进行修改5、删除某个教师信息6、班级信息管理和维护教师与班级是多对多关系,可通过此界面进行维护。
基于Struts2结构的在线考试系统设计与实现
作者:唐晔
来源:《软件导刊》2013年第06期
摘要:基于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)交换,再从备选试题号n-1中抽题,这时随机生成抽取的序号m,1≤m≤n-1;重复以上操作,直到抽题数量达到要求。
4结语
随着网络技术的飞速发展,无纸化的在线考试突破时间和空间的限制,成为当今考试的发展方向。
本文探讨了在线考试系统的设计与实现,并提出了一种系统随机出题的方法,具有一定的应用价值。
参考文献:
[1]H M DEITLEL,P J DEITEL.Java大学基础教程[M].刘晓莉,周璐,钱方,等,译.北京:电子工业出版社,2007.
[2]DONALD BROWN,CHAD MICHAEL DAVIS,SCOTT STANLICK. Struts2实战[M]北京:人民邮电出版社,2010.
[3]迪布瓦.MySQL cookbook:中文版[M].北京:电子工业出版社,2008.
[4]VIVEK CHOPRA,SING LI,JEFF GENENDER.Apache tomcat6高级编程[M].北京:人民邮电出版社,2009.。