基于JAVA的在线考试系统.doc_第1页
基于JAVA的在线考试系统.doc_第2页
基于JAVA的在线考试系统.doc_第3页
基于JAVA的在线考试系统.doc_第4页
基于JAVA的在线考试系统.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

基于JAVA的在线考试系统班级:03041 学号:0304137 姓名:李 逸 杰摘要:在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统JAVA在线考试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能。本论文主要介绍了对JAVA在线考试管理子系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线管理子系统的设计过程进行详细的说明。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与还原。关键字: JSP,JAVA,SQL Server 2000数据库,B/S模式1、 引言 现今,不管是国内还是国外的各大厂家,都在不断的推出一系列的考试、认证。如微软的MCSE、Cisco的CCNA等。我们国家的自考或是成考,以及各省市的各种考试,现在都在朝着信息化的道路前进在走。我们相信在今后这一系列的考试将会走向网络化考试的。这样才是符合信息发展的。所以我们考虑这是一个机会。我们要给不同的考试一个好的解决方案。 这个方案在技术上来讲我们是采用B/S模式。 在Windows平台上,使用IE浏览器,完成抽题、考试、交卷等考试任务。2、 系统设计2.1、设计原则2.1.1项目目的在线考试系统的总体目标:、 在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作。、 所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。、 考试数据的存放和处理必须对考试保密,需要一定的安全性保障。对考试的系统目标:、 这个软件是分布式的,这意味着只要有考试客户端可以连接到考试应用服务器,任何考生在任何地方进行身份确认,都能完成考试。、 题目最好有一定的稳定性和随机性。稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。、 考试的部分结果在考生考完之后就可以知道,同时提供一个机会让考生知道自己哪里做错了,并给出反馈信息说明理由。对教师的系统目标:、 提供一个功能全面的考核管理客户端,可以进行考试设计和安排。、 通过管理客户端,教师可以进行考试的身份管理。、 考生的考试结果可以被保存下来,供教师进行分析统计和察看。2.1.2方案选择开发在线考试系统,提出以下解决方案:选择SQL Server 2000作为后台的数据库,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计。2.1.3开发框架技术对于框架技术,我们采用Struts+ Spring+Hibernate的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用Java技术在web的应用。Struts是应用比较广泛的一种表现层框架Struts是一个为开发基于模型(Model)视图(View)控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。Spring 服务层框架它也是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 Hibernate通过持久层的框架将数据库存储从服务层中分离出来它是O/R Mapping的一种实现是目前在JAVA界使用非常广泛的O/R Mapping的一种实现,可以实现关系型数据库和对象之间的映射。用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如Ibatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。Hibernate的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一 些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。Hibernate提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL2.2、功能模块划分2.2.2子系统分为以下功能模块:在线考试管理子系统信息管理评卷管理试卷管理题库管理 成绩管理考试管理用户管理权限管理题库管理:用于对单个试题的增、删、改、查等基本维护,还可对题库进行数据备份和数据还原。我们针对不同题型、不同应用范围及不同科目对试题进行维护。试卷管理:可进行三种组卷方式的维护:随机组卷、人工组卷、综合组卷。还可对考生的基本信息进行维护。考试管理:对考试分配试卷,并对考试的基本信息进行维护。相当于人工安排考试的过程评卷管理:对试卷的客观题分配评卷人,并对评卷人基本信息进行管理。成绩管理:对每次考试的学生成绩的基本信息进行维护,并提供学生成绩的统计管理。用户管理:对使用本系统的用户基本信息进行维护,用户多数为:系统管理员、老师、教务处人员、其他权限管理:对系统的访问权限进行管理,并对用户可进行权限的分配。系统应该具备的基本功能各模块需完成以下功能:题库管理试卷管理试卷其他维护试卷信息维护其它维护试题维护基本维护综合组卷人工组卷随机组卷题型维护科目维护范围维护题型维护:对试题的题型进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。范围维护:对试题的应用范围进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。科目维护:对试题的科目进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。试题维护:对试题的基本信息进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。其他维护:对试题信息的批量查询,并可进行数据导出、数据备份、数据恢复。随机组卷:用户只需对试卷题型进行设置就可组卷的方式。人工组卷:可使用户选择试卷的题型中的试题的组卷方式。综合组卷:是随机组卷与人工组卷的混合组卷方式,即用户对某一类型的试题可进行选择,也可对试题不进行选择。试卷其他维护:对试卷信息的批量查询,对试题的数据备份与还原。考试管理考试信息维护分配评卷人评卷管理成绩管理评卷人评卷考生信息维护考生成绩维护成绩其他维护考试信息维护:对考试的时间、地点、监考人、考试用的试卷、试卷总分数及答卷总时间等考试的基本要素进行设置。考生信息维护:对考试的学生的基本信息进行增、删、改、查操作,在操作之后会自动刷新主页,以使信息更新。分配评卷人:对考试所用试卷的客观题分配评卷人,并对评卷的基本信息进行维护。评卷人评卷:对分配试卷的评卷人可以在此进行评卷。考生成绩维护:对考试的考生成绩信息进行统计与汇总,对有权限的人可进行成绩的增、删、改、查操作。成绩其他维护:对考生成绩信息的批量查询,并可进行数据导出、数据备份、数据恢复。用户管理权限管理信息管理权限信息维护用户基本信息信息基本维护用户分配权限用户基本信息维护:对使用本系统的用户进行维护,而用户的权限由权限管理进行维护,并分配给用户,使用户只能访问自己拥有的权限内。权限信息维护:对基本的权限进行维护,用户可自定义维护权限。用户分配权限:对未分配权限的用户进行权限的分配,即对 分配权限的增、删、改、查操作。信息基本维护:我们的信息除了有关考试的信息外,还有公告、新闻、留言信息需要我们维护,其中公告、新闻由后台有权限的人进行增、删、改、查操作,而留言是由前台的用户(学生)或游客录入的,我们要防止垃圾数据显示,即对留言有权更改等操作。3、 系统设计3.1、实现技术3.1.1、系统工程的流程思想我们在系统开发过程中,采用软件工程的开发管理,在开发的过程中也遵循软件工程的思想,软件工程的主要环节有:人员管理(自己模拟)、项目管理(我的小组模拟)、可行性与需求分析、系统设计、程序设计、测试、维护等,如下所示。人员管理项目管理维护测试程序设计系统设计可行性与需求分析软件工程的主要环节3.1.2、面向对象机制的设计思想所有计算机均由两种元素组成:代码和数据。精确的说,有些程序是围绕着什么正在发生而编写,有些则是围绕谁正在受影响而编写的。第一种编程方式叫做面向过程的模型,按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码。如 C 等过程化语言。第二种编程方式叫做面向对象的模型,按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象、封装、继承和多态的好处。3.1.3、代码分层思想由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用Java语言开发Web应用程序,提供String+Hibernate+Spring框架对系统的程序代码结构进行分层。分层的策略如下:serviceLocator表示层StrutsStruts Action,ActionForm,Jsp,Struts-config.xml,etc.DAO Classes业务层SpringHibernate session Management持久层HibernateDataSource/Connection PoolTransactionsBusiness Service ClassesQueryLanguage Support and other Hibernate ServicesDomain Model Business ObjectsStruts-Spring-Hibernate 架构3.1.4系统结构图本系统分为学生前台子系统和考试管理子系统,整个系统的结构图如下在线考试系统考生前 台后台管 理题库管理 评卷管理考试管理试卷管理成绩管理用户管理权限管理学生登陆3.1.5数据库设计(1)、主要数据库表的介绍 根据系统需要和考试需要,设立了如下数据库表:试题类型表(questionType_table):其中包括了试题的类型的基本信息,如类型名称、答题方式、说明信息等字段;录入时,我们将答题方式确定为大概几种类型:填空方式,选择方式,问答方式,判断方式,综合方式。试题范围表(questionBound_table):用于控制试题应用的范围,如同样的科目语文,在小学、初中、高中、大学都有,由此我们设定了此表,此表中有范围名称、范围说明等基本信息;所属科目表(questionSubject_table):用于录入试题相关的科目应用,它可以有不同的应用范围。如上所述,我们只需录入一次的科目,就可方便我们在录入试题时每次都录。各种题库表:我们采用一种类型的题存储在一个表中,由此我们会有填空题表(question_blanc_table)、单选题表(question_selectone_table)、多选题表(question_selectMany_tabel)一题多问表(question_askone_table)、一题多问表(question_askMany_table)、判断题表(question_judge_table)等试题表 试卷表(exam_table):用于报存考试中试卷的基本信息,如出卷方式(有随机出卷、人工出卷、综合出卷)、试卷名称、试卷应用范围(与试题范围相对应)、试卷所属科目(与试题科目相对应)、试题标题级别、试题标题内容、试题总类型、试题个数、试题总ID等基本信息。学生表(student_table):用于保存学生的考试的用户名及登陆密码。成绩表(grade_table):用于存储学生的考试成绩。评题表(appraiser_question_table):对于主观题的答案我们须要评卷人(有权限的用户)进行手工评卷,本表用来存储评卷人评卷的一些信息。答案表(student_answer_table):用于存储学生问答题的答案,如试卷ID,学生ID及各种试题类型的答案字段。用户表(user_table):用于保存用户的登陆的基本信息及分配的权限。权限表(purview_table):用于存储用户组织的的权限,通过分配操作模块的权限组织权限。信息表(info_table):用于保存除了试卷以外的信息,主要是为了学生与教师更好的沟通。有信息类型(有公告、新闻、留言)、信息名称、信息内容等基本字段。游客表(testuser_table):用于保存游客登陆或注册的基本信息。(2)、主要数据库表的结构定义(数据词典):、数据库表名的定义使用:重点字_table;重点字可以是多个英文单词的组合,从组合的第二单词起首字母大写,字段命名是能表达字段内容的英文单词的组合,组合方式同表名重点字相同。、NN 表示not null 不填表可为空。、数据类型不使用固定数据库的类型,标识大众类型,如字符串、字符、数字等。这样在更改数据库时需求的数据是可移植的、输写数据表在数据库中的物理名称,可用自己熟悉的语言再定义表名称,方便沟通。、长度定义又数据类型决定:如字符串可选8000以下,数字可在50位之间,字符只允许一位。、输入方式表示数据的来源:生成表由程序或数据库的索引自动生成,而不需人工录入;输入表示通过文本框等输入的数据;选择表单选框、复选框、下拉列表等通过选择输入的数据;自定获取是为外码的

温馨提示

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

评论

0/150

提交评论