基于BS的在线考试系统


     摘 要 传统考试方式一直都是C/S结构,即客户机和服务器结构。随着互联网技术的飞速发展,C/S结构已经不足以满足用户的需求,基于B/S(浏览器/服务器)结构的在线考试系统随之出现。基于浏览器/服务器的在线考试系统日益成为越来越多高校及企业考试的首选。 本文中的在线考试系统采用具有强大功能、灵活高效的MySQL架构和全B/S 模式,它具有高度的可扩展性,使用在线考试系统时,被授权的考试用户不管在什么地方,只要可以上网使用浏览器 ,就可以通过网络登录该系统,参加在线练习、考试、单元测评等;该设计实现了按照各个科目随机抽题组卷、题库管理、系统管理、在线考试的功能,可以对客观题在线评分。用户登录成功后,首先需要阅读考试须知,然后选择需要的考试科目进入考试页面,并且完成相应科目考试,最后计算机会自动判卷显示成绩,大大提高了考试效率。在线考试系统的系统管理功能,初步实现了管理题库、管理考生信息、查询考试成绩、管理考试科目等功能。系统中的题库管理功能,初步实现了对试题的只能加、修改、删除、查询功能。服务器端的平台采用windows7系统,数据库平台采用MySQL,整个工程采用Struts&Hibernate架构设计。采用管理员,学生两级授权方式,使系统更安全更方便简洁。 关键词:在线考试;B/S;J2EE Online Examination System Based on B/S Abstract The traditional examination method has always been C / S structure, that is, client and server structure. With the rapid development of Internet technology, C / S structure is not enough to meet the needs of users, based on B / S (browser / server) structure of the online examination system followed. Internet-based online exam system based on browser / server is increasingly becoming the first choice for more and more colleges and universities. The online exam system in this article uses a powerful, efficient and flexible MySQL architecture and full B / S mode, with a high degree of scalability, authorized test users no matter where they are, as long as you can use the web browser, you can Network registration online examination system, to participate in online examinations, online practice, etc .; the design to achieve a random subject by subject, online examination, the title of the library management, system management functions, to the objective title online rating. After the user logs in successfully, read the examination notes, then select the examination subjects to enter the examination page, complete the corresponding subject examination, the computer automatically sentenced to show the results, greatly improving the efficiency of the examination. System management, to achieve the exam, candidates information, test scores, examination subjects management. The question bank management, to achieve the questions to add, edit, delete function. Server-side platform using windows7 system, the database platform using MySQL, the entire project using Struts & Hibernate architecture design. The use of administrators, students two levels of authorization, the system more secure and more convenient and concise. Key Words:Online Exam;B/S;J2EE 目 录 摘 要 I Abstract II 1 文献综述 1 1.1 项目背景 1 1.1.1 在线考试系统的背景 1 1.1.2 在线考试系统的发展 2 1.2 相关技术介绍 3 1.2.1 Tomcat技术介绍 3 1.2.2 jQuery技术介绍 5 1.2.3 jQuery EasyUI技术介绍 6 1.2.4 J2EE技术介绍 7 1.3 系统可行性分析 9 1.3.1 技术可行性 9 1.3.2 经济可行性 10 1.3.3 社会可行性 10 2 需求分析 11 2.1 功能需求分析 11 2.1.1 学生/管理员登录需求分析 11 2.1.2 学生在线考试需求分析 11 2.1.3 管理员管理系统需求分析 11 2.1.4 随机抽题动态生成考卷 11 2.2 用例图及用例说明 12 2.2.1 在线考试系统用例图 12 2.2.2 在线考试系统用例说明 14 3 概要设计 18 3.1 在线考试系统功能结构 18 3.2 系统流程 19 4 详细设计及实现 23 4.1 数据库设计及实现 23 4.2 持久层设计及实现 26 4.3 视图层设计及实现 28 4.4 控制层设计及实现 29 5 系统测试 30 5.1 单元测试 30 5.2 集成测试 30 5.3 系统测试 30 结 论 31 参 考 文 献 32 致 谢 33 1 文献综述 1.1 项目背景 1.1.1 在线考试系统的背景 在当今时代,科学技术发展日益加快,信息技术已经深入到每个人的学习生活中,原来的知识传播方式已经远远无法满足现在人们对知识的索求量及索求速度。飞速发展的信息技术,使得互联网与教育完美连结到了一起,它们连结的产物就是远程教育。远程教育是一种新的的教学模式,它经常使用互联网等传播媒体,这种模式划破了时间和空间的阻碍,不同于以往在校上课的教学模式。这种教学模式针对的对象就是那些想在业余时间充实自己的人群。因为远程教育的特点所在,他们不需要到固定的时间和地点去上课,而是任何空余的时间和地点都可以。他们也能通过互联网、电视、教育辅导专线等多种不同的渠道来互相学习。远程教育是互联网技术和教育连结后产生的新概念,也就是采用互联网技术与社会个人需求开展的教育。而且该教育方法针对的学生年龄和学历都没有太大限制,这就为普遍的人民群众提供了学习跟多知识提升自我的机会。 远程教育是一种个人与个人之间或者个人与某个教学机构之间组织的地点分离的教学活动。它的特点是:采用新媒体新技术新渠道和系统进行教学;人们选择学习的时间地点方式自主化;不受传统教育中时间地点固定教学方式的限制;可以给更多年龄段和不同行业的人提供学习机会;有很大的扩展性,教学规模可大可小,教学成本低廉,教学质量更易提高。而现代远程教育则良好的实现并加强了这些特点,它的特点和优势注定了它的发展意义的巨大和发展前景的广阔。 在国内,远程教育的发展经历了三个阶段:第一阶段是函授教育,在这个家阶段,函授教育培养了很多人才,为国内社会发展、经济发展做出了不小的贡献,但是由于该教育方式有比较大限制性,所以很快就淘汰了;第二阶段是广播电视教育,这种教育方式出现在上世纪八十年代,并且在这一方式的教育上走到了世界的前列,因此中央电视大学以及广播电视教育在海内外都享有盛誉;第三阶段是现代远程教育,它出现在上世纪九十年代,正是信息技术和互联网飞速发展的时间,最主要的是当时的国家和政府也大力支持远程教育的发展:1994年底,国内第一个采用TCP/IP协议的公共计算机网在当时国家教委的主持下由清华大学等高校共同承建,即“中国教育和科研计算机网师范工程”,该工程是现代远程教育的起点,紧随其后,现代远程教育在国家的支持下发展迅速,涌现除了一大批为发展远程教育做出巨大贡献的人们,2000年,现代远程教育的试点高校已经达到31所,而且这些高校在招生标准、招生制度及开设网络课程等方面有很大的自主性,远程教育的学历文凭也被国家所认可。随着现代远程教育的发展,各高校之间的交流日益频繁,更有利于教育资源的共享,直至如今,现代远程教育的规模一步步扩大,教育方式和教育制度也日渐成熟。 1.1.2 在线考试系统的发展 古往今来,人才一直是各个时代最稀缺的资源,而考试是最简单实用同时也是最重要最普遍的人才选拔方式,古有科举考试制度,今有高考已经大大小小的各种考试,教育制度如同一个巨大的筛选机器将其中真正的人才筛选出来,优胜劣汰。现如今的社会更是竞争激烈,但是现在普遍高校依旧沿用以往的考试方式,教师出题印刷,学生到固定的时间地点去参加考试,人工阅卷给出考试成绩,人工做试卷分析得出考试效果。但是这种考试方式所带来的问题也是非常明显的:考试过程繁杂,组织进行一场考试需要动用的物质资源已经人力资源是巨大的;教师从出题到阅卷亲历亲为,使得教师们在考试前后工作效率十分低下;对学生的考察不全面;考试的保密现和安全性也不能保证等。 信息技术的发展往往带来一些潜移默化的影响,其中传统的考试方式也在渐渐的发生着改变,互联网的普及让人们看到了网上在线考试的新型考试方式,将计算机技术投入使用到考试中,让以往过程繁杂的纸质考试向更方便更快捷更有效的在线测评转型,考试方式的改革在所难免。另外,将大量的教育济源存使用新的数据库技术存放管理,则更加方便安全,节省了劳力财力。当网上在线考试系统这种考试方式普及之后,老师们在考试前后的压力就大大减少,也会有更多的心思精力投入到不止教学更应自我学习的工作中;学生也不需要兴师动众,定时定点的去参加考试,利处远远大于弊端。 在线考试系统是互联网兴起后现代的、全新的考试模型。该系统由传统的考试方式和互联网结合的新型考试,可根据用户需求快速构建考试、练习、测评、调查、分析及管理等,是一种综合的网络化考试平台。 在线考试系统是现代远程教育中重要的一环,上世纪九十年代,在网上考试系统的开发上,美国走在了世界的前列,实现了网上考试的在线性和同步性。在此之后,各国都开始自主研发网上考试系统,来开拓这个还少有人涉足的领域。我国的网上考试系统的发展起点较晚,但是发展速度确实相当迅速,在国内外网上在线考试技术已经趋于完善的情况下,国内各高校、企业及单位陆续尝试着开始使用在线考试系统进行学业考试,技能认证及人才选拔等。尤其是计算机互联网这方面的企业或者学校的学部,更是早早就投入测试并稳定使用了,如全国计算机考试,英语测试等考试,均采用网上在线考试的方式,因为这种考试方式易于组织,且工作效率很高。但是网上考试系统也存在一些比较明显的弊端,如初期投入考试系统的资金比较大,系统维护相对麻烦;网上考试系统大多只能对一些客观题进行判别对错,但是对于主观题却无能为力,因此题型要求也比较高等,所以在线考试系统适用于一些标准化的,客观性强的考核中。 1.2 相关技术介绍 1.2.1 Tomcat技术介绍 Tomcat是一个轻量级的应用服务器,他是完全开源免费的。Jakarta Tomcat的日益流行是无可争辩的,它不但是Sun公司Servlet和JSP规范的参考实现,也是世界上使用最为广泛的额Servlet和JSP容器。在应用于成百上千的Web站点中,不论是个人网站、非营利组织网站还是商务网站,它的表现都是非常出色的。 本篇设计中使用的是Tomcat 8.0版本,该版本支持Servlet 3.1、JSP 2.3及EL 3.0.Servelet 3.1版本它的性能改进比较大,工作效率大大提高,因为第一大改进为该版本的I/O通信模式是非阻塞式的。Servlet 3.1中的数据传输的管理不是正常的同步管理,而是异步管理,传输接口为ReadListener和WriteListener。其次Servlet 3.1中用户可以自行选择网络通信所用的网络协议,升级了HTTP协议。JSP 2.3版本只是完善了清理维护的功能,没有什么新特性加入。EL 3.0版本主要有三个方面的改进:EL的运行方式增加了新特性,那就是他可以用“独立模式”操作,也就是脱离Servlet和JSP页面运行,这个改进使得开发者在Servlet容器内或者容器外,都可以放心的直接调用ELProcessor类;EL的表达式扩展了许多,新增加支持表达式Lambda,使用这类表达式,使得程序更加简洁明了,易于查看学习,表达式包括:参数集、Lambda操作符、函数体;其中集合操作符允许构造一些集合类型,比如Set、List和map等;Java EL流式API可以获得一些集合或者List列表,可以进行字符串调用,可以在运行List表时,在其外部运行过滤器和聚合函数;EL能够进行上下文的导入,对于任何类的静态字段或者方法,开发者都能够直接调用,方便快捷。所以通过这些新特性来看,EL 3.0版本新增的内容不仅很多,而且功能更加强大,开发更加迅速。 Tomcat拥有十分复杂的功能结构,但是,Tomcat模块化的设计使得它的工作方式,数据传输,内部逻辑等都一目了然。Tomcat中不同的模块有着其特定的功能。各模块之间独立工作且其功能互相弥补,协调工作,共同构成了一个简单实用,性能优越的Web服务器。 Tomcat的内部结构如图1.1所示: 图 1.1 Tomcat结构图 上图较完整的展示了Tomcat的内部结构,组件种类大小也比较齐全,由大到小有Server服务器,Servic服务,Connector核心组件和Container核心组件等。其中最为核心的两个组件为Connector核心组件和Container核心组件。Connector核心组件是一个连接器,主要负责接收外部传来的消息请求,然后传到容器里。Container核心组件是一个Servlet容器,它的结构是多层的,分别是Engine、Host、Context、Wrapper.。其中最大的容器为Engine,它代表的是一个Servlet引擎,另外的Host代表一个虚拟机,代表应用的是Context,Wrapper代表一个Servlet。当服务器外部传过来一个请求时,这个请求首先被连接器收到,然后移交到容器Container,按照上面的容器顺序Engine->Host->Context->Wrapper往下传递,最终处理该请求的是一个Servlet即Wrapper。 Tomcat整体工作环境是,Server服务器为最大的组件,它是其他组件能正确运行的前提条件,它可以同时管理一个Service服务,也可以管理多个。Server的下一级是Service服务,Service服务保证了整个Tomcat可以应付对外的正常请求,它由一个Container连接器和一个或者多个Connector容器组成的。 1.2.2 jQuery技术介绍 jQuery是一套快速、简洁的JavaScript脚本库. jQuery有很多特性,这些之中的核心特性有三种:具有强大的功能函数,以及特有的小型链式语法以及多功能接口短小而清晰;css选择器比其他选择更加灵活,效率也更高;具有非常高的扩展性,因为它的插件扩展机制十分方便,所以其中的插件越来越丰富,能实现多种多样的UI。其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)、优雅处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹。 jQuery整体架构如图1.2所示: 图 1.2 jQuery整体架构图 1.2.3 jQuery EasyUI技术介绍 jQuery EasyUI是一组UI插件集合,顾名思义它是基于jQuery技术而存在的。jQuery EasyUI插件可以为开发者提供很多便利,使得开发者能够更加轻松快速的完成UI界面的设计,并且这些UI界面是美观大方的,满足大多数开发所需的功能集合。传统的界面设计开发,执行者需要编写复杂的JavaScript,对css样式也需要有比较深入的理解,但是使用jQuery EasyUI,开发者只需要了解一些简单的html标签。 jQuery EasyUI中有大多数的UI控件,为开发者提供的十分大的便利,开发者不用耗费时间耗费精力去找各种各样不同UI界面设计所需的控件,它包括的控件有:accordion,window,combobox,menu,dialog,tabs,validatebox,datagrid,tree等。相对于extjs来讲,jQuery EasyUI更加轻量级,适合个人或者中小公司所做的中小项目,它的功能相对extjs来讲弱一下,但是用起来也十分顺利便捷,一般性开发所需的功能基本具有,还能满足不同开发者对于UI界面设计不同的风格偏向。 jQuery EasyUI 提供了用于创建跨浏览器网页的完整的组件集合,包括功能强大的 datagrid(数据网格)、treegrid(树形表格)、 panel(面板)、combo(下拉组合)等等。 用户可以单独使用其中一个,也可以组合使用这些组件。 插件列表如表1.1所示: 表1.1 jQuery EasyUI插件列表 分类 插件 Base(基础) Parser(解析器) Easyloader(加载器) Draggable(可拖动) Droppable(可放置) Resizable(可调整尺寸) Pagination(分页) Searchbox(搜索框) Porgressbar(进度条) Tooltip(提示框) Layout(布局) Panel(面板) Tabs(标签页/选项卡) Accordion(折叠面板) Layout(布局) Menu(菜单)与Button(按钮) Menu(菜单) Linkbutton(链接按钮) Menubutton(菜单按钮) Splitbutton(分割按钮) Form(表单) Form(表单) Validatebox(验证框) Combo(组合) Combobox(组合框) Combotree(组合树) Comborid(组合网络) Numberbox(数字框) Datebox(日期框) Datetimebox(日期时间框) Calendar(日历) Spinner(微调器) Numberspinner(数值微调器) Timespinner(时间微调器) Slider(滑块) Window(窗口) Window(窗口) Dialog(对话框) Messager(消息框) DataGrid(数据网格)与Tree(树) Datagrid(数据网络) Propertygrid(属性网格) Tree(树) Treegrid(树形网格) 1.2.4 J2EE技术介绍 J2EE是一个以Java技术为基础的技术规范和标准,它是Java技术在各个企业不断使用和发展的结果,在不断的发展过程中,J2EE越来越契合企业级的开发。J2EE平台中包含的最多的是组件和容器。不同功能的应用程序对应不同的组件,再将这些组件根据功能封装到不同的容器中,这样使得企业开发应用程序时更加快捷,程序逻辑更加清晰,易于操作以及查漏补缺。J2EE的安全性和可靠性,相比以往的开发平台更好,更放心。J2EE平台的数据流向为先从企业信息系统层的EIS服务区里的数据库将需要的数据传过来,传到商业逻辑层,即EJB容器中,再传到Web层的Web服务器,Web服务器中有JSP和Servlet,JSP将数据传到客户端的浏览器,如Pure Html,Java Applet,而Servlet将数据传到客户机中。使用J2EE后的B/S结构如图4所示: 图 1.3 J2EE结构图 J2EE定义了一个框架和相关的规范,下面介绍J2EE的13种核心技术。 1. JDBC(Java Database Connectivity,Java数据库连接) JDBC是Java数据库连接的英文缩写,它是跨平台的,使用已有的SQL标准并支持与其他数据库的连接标准。JDBC实现了所有这些面向标准并且具有简单、严格类型定义且高性能实现的接口。它有三种产品组件:JDBC驱动程序管理器;JDBC驱动程序测试工具包;JDBC-ODBC桥。 2. JNDI(Java Naming and Directory Interface,Java命名和目录接口) JNDI用于名字和目录服务,为了便于查找、挂载、卸载及其他操作,JNDI将各个被命名的信元组成树状的目录,为定位用户、资源与服务提供了一个标准的接口,他由两部分组成:应用程序编程接口和服务供应商接口。 3. EJB(Enterprise Java Bean,企业级JavaBean) EJB组件由容器开管理EJB组件的事务、安全和资源链接问题,是一个可以开发分布式商务逻辑的框架。 4. RMI(Romote Method Invocation,远程方法调用) RMI一种被EJB使用的更底层的协议,它为分布式计算提供了一种高级的通用解决方案,而且它使用了连续序列方式在客户端和服务器端传递数据,将面向对象编程模型扩展到了客户机/服务器系统。 5. JSP(Java Server Page,Java服务器端页面) JSP是对HTML的一种扩展,通常是大多数的HTML代码中嵌入少量的Java代码,它的扩展机制还允许开发人员编写自己的标签和相应的实现方法。JSP由四个关键的组件组成:指令、动作、脚本和标签库。 6. Servlet(服务器端小程序) Servlet采用请求响应的工作方式,它作为Web服务器功能的增强器,其功能涵盖了从客户端请求相应动态生成文档到保证会话安全,访问后台数据库服务器等。Servlet是运行在服务器端,用来响应客户端请求的Java代码模块。 7. XML(eXtensible Markup Language,可扩展标记语言) 8. JMS(Java Messageing Service,Java信息服务) 9. IDL(Interface Description Language,接口描述语言) 在Java IDL的支持下,可以将Java和CORBA集成在一起,创建Java对象并使之可在CORBA ORB中使用。 10. JTA(Java Transaction Architecture,Java事务框架) JTA定义了一种标准的API,它指定事务管理器与分布式事务中设计的其他系统组件之间的各种高级接口,这些系统组件有应用程序、应用程序服务器和资源管理器等。 11. JTS(Java Transaction Service,Java事务服务) JTS规定了事务管理器的实现方式,该事务管理器是在高层支持JTA规范,为应用服务器、资源管理器、独立的应用及通信资源管理器提供了事务服务。 12. JavaMail(Java邮件) JavaMail是用于存放邮件服务的接口,提供了一套邮件服务器的抽象类。 13. JAF(JavaBean Activation Framework,JavaBean服务框架) JavaMail利用JAF来处理不同编码的邮件附件 1.3 系统可行性分析 1.3.1 技术可行性 从开发环境来讲,在线考试系统基于windows7操作系统,使用J2EE中Struts2和Hibernate组合开发框架,需要开发者清楚开发框架之间各层分工及应用组件功能,熟悉各函数之间的调用,数据传输过程。同时需要开发者遇到问题能够在网上、各论坛及时找到相应的解决办法。 在代码实现方面,开发者需要熟练掌握Java语言,jQuery技术,HTML语言进行开发,熟悉数据库的安装、使用,熟练使用数据库进行数据库设计。 在系统逻辑方面,开发者需要对考试流程有一个清晰的认知,对在线考试系统的各业务,业务逻辑非常清楚。 从这些方面来看,只要开发者有一定的程序开发基础,熟悉开发所需各种技术,即可进行开发,因此该系统的技术可行性很高。 1.3.2 经济可行性 在线考试系统采用的开发框架、开发语言、开发平台都是开源免费的,从经济上来看,该系统的经济可行性很高。 1.3.3 社会可行性 传统的考试一直存在,随信息技术的飞速发展,在线考试系统必定会成为今后各高校、企业及各部门的首选考试方式,在线考试系统的功能也日益完善,因此该项目的市场非常大,前景也十分广阔。从现在考试系统的发展来看,该项目社会可行性也十分高。 1.4 论文结构 本篇论文的正文部分总共分为八个章节,分别为: 第一章 :在线考试系统的开发背景、发展历程,开发所关联到的技术简介。 第二章 :对在线考试系统进行需求分析。 第三章 :对在线考试系统进行概要设计,包括数据库设计,各实体之间的业务逻辑设计。 第四章 :对在线考试系统进行详细设计和功能实现。 第五章 :对该系统进行系统测试,包括对不同实体的功能测试及性能测试。 第六章 :该章节主要为开发在线考试系统的结论,主要描述了该系统的完成情况,项目特色以及对该项目的未来展望。 第七章 :本文所引用的参考文献。 第八章 :本文的致谢。 2 需求分析 2.1 功能需求分析 2.1.1 学生/管理员登录需求分析 该部分要求系统登录界面简洁明了,能够正常登录系统,当学生学号,管理员编号填错提示“用户名输入有误”,请重新登录;当学生登录或者管理员登录密码输入错误时,提示“密码输入有误”,请重新登录。 2.1.2 学生在线考试需求分析 该部分要求学生正确登录考试系统之后,阅读考试注意事项,并选择需要进行的考试科目,点击开始考试即可进入考试界面。一旦进入考试界面,考试时间倒计时就会开始,计算机自动从题库中抽取试题进行组卷,并呈现在考生面前。考生需在规定的考试时间内答题,答题完成后点击提交考卷考试即可结束,如果考生在规定的时间内没有提交考卷,那么考试时间倒计时结束后系统会强制交卷,并给出最后成绩。 2.1.3 管理员管理系统需求分析 该部分功能主要有,管理员管理考生信息,考试题库,在线考试以及考生成绩。管理考生信息包括管理员能通过考生学号或者姓名查询考生个人信息,能够增加考生信息,并且能对个人信息进行修改或者删除。管理考试题库包括对考试科目的修改,对题库中的题目进行增加、修改、删除及查询,并且对各题型进行管理。管理在线考试部分需要管理员拟定考试科目内容及时间。管理考生成绩部分包括管理员能够录入学生成绩以及通过考生学号或者姓名查询考生的各科目成绩以及考试状态。 2.1.4 随机抽题动态生成考卷 传统考试一直存在一个最大的弊端,那就是所有人的考试试卷都一模一样,有非常大的作弊可能性和作弊操作性,那么在线考试系统就需要解决这个最大的弊端。而从题库随机抽题组成试卷恰好能比较好的解决考试时考生作弊的操作性,即便考生坐在相邻的座位,他们的试题也是不完全相同的,这样就大大避免了考试作弊,为在线考试提供了可靠性和公平性的保证。 2.2 用例图及用例说明 2.2.1 在线考试系统用例图 在线考试系统的用例图如图2.1所示: 图2.1 在线考试系统用例图 在线考试系统中总共分为四个用例,即管理试题库,管理试卷,登录系统,参加考试,系统中的角色分别为系统管理员和学生。管理员可以登录系统,管理试题库,管理试卷,管理考生信息;学生可以登录系统,参加考试。 在线考试系统的管理员子用例的用例图如图2.2所示: 图2.2 管理员子用例图 管理员子用例中用例共有登录系统,管理题库,管理试卷及管理考生信息。系统管理员在进行管理之前必须先登录系统,验证身份成功后才能进行管理系统操作;对于一场考试中管理员可以管理考生信息,包括对考生信息的增删改查;一场考试所用到的试卷也由管理员进行组织,包括设置考试科目,设置考试时间等;对于平时系统的管理和维护,管理员有权对已在系统的题目进行修改,也可以新增不在系统中的新题目。 在线考试系统学生子用例的用例图如图2.3所示: 图2.3 学生子用例图 在线考试系统中的学生子用例总共有三个用例即登录系统,参加考试,查询考试成绩。学生要参加考试之前必须先登录系统,验证身份成功后才能进行后续操作;在有考试的时候考生可选择科目参加即将进行的考试;考试结束后会自动显示成绩,考生也可以后续自主查询考试成绩。 2.2.2 在线考试系统用例说明 在线考试系统总共分为四个用例,分别为:管理试题基本信息、管理试卷、登录和参加考试。 管理试题基本信息用例,主要内容是管理员对试题的增删改查。 表2.1 管理试题基本信息 用例ID U01 用例名称 管理试题基本信息 执行者 管理员 描述 管理员在组织试卷之前,要先添加试题,然后再组织试卷所包含的试题,同时在必要的情况下对已存在试题进行查询、修改及删除 前置条件 管理员已登录在线考试系统 后置条件 管理员已经设定了某个试题的基本信息 基本事件流 1. 管理员请求添加试题的基本信息 2. 系统显示已有的试题 3. 管理员填写试题的基本信息 4. 管理员提交试题的基本信息 5. 系统验证提交的试题基本信息 6. 系统保存提交的试题基本信息 7. 系统返回保存成功的信息 备选事件流 a.验证失败 a1.系统提示验证不通过的信息 a2.管理员重新填写验证不通过的信息 a3.返回带第4步 关键性 高 业务规则 a1.试题名称和试题类型必须填写 管理试题用例,主要内容是试题添加完成后,管理员组织试卷的步骤,包括试卷的名称,试题的种类、数量、分数等信息。 表2.2 管理试卷 用例ID U02 用例名称 管理试卷 执行者 管理员 描述 试题添加完成后,管理员组织试卷,包括试卷的名称,试题的种类、数量、分数等信息 前置条件 管理员已经登录在线考试系统 后置条件 系统记录了试卷的信息 基本事件流 1. 管理员请求设定试卷 2. 系统显示已有的试卷 3. 管理员填写试卷的基本信息 4. 管理员提交试卷的基本信息 5. 系统验证提交的试卷基本信息 6. 系统显示提交成功 7. 系统记录了用户提交的试卷基本信息 备选事件流 a. 验证失败 a1.系统提示验证不通过的信息 a2.管理员重新填写验证不通过的信息 a3.返回到第4步 关键性 高 业务规则 5.所有信息必须填写 登录用例,主要内容为注册用户的登录步骤。 表2.3 登录 用例ID U03 用例名称 登录 执行者 学生,管理员 描述 学生要进行考试,管理员要管理试题,必须先登录 前置条件 用户访问登录系统 后置条件 系统显示可以参加或者管理的考试 基本事件流 1. 用户请求登录 2. 系统显示登录页面 3. 用户填写登录信息 4. 用户提交登录信息 5. 系统验证登录信息 6. 系统显示登录成功 7. 系统显示可以参加和管理的考试 备选事件流 a.验证失败 a1.系统提示验证不通过的信息 a2.管理员重新填写验证不通过的信息 a3.返回到第4步 关键性 高 业务规则 5.工号和密码必填 参加考试用例,主要内容为学生填写并提交、查看考试结果的步骤。 表2.4 参加考试 用例ID U04 用例名称 参加考试 执行者 学生 描述 学生填写并提交、查看考试结果 前置条件 用户已经登录系统 后置条件 系统显示考试分数 基本事件流 1. 用户选择要参加考试的试卷 2. 系统显示该试卷的信息 3. 用户填写试题答案 4. 用户提交试题答案 5. 系统验证试题答案 6. 系统显示考试分数 7. 退出考试 备选事件流 a.验证失败 a1.系统提示验证不通过的信息 a2.管理员重新填写验证不通过的信息 a3.返回到第4步 关键性 高 业务规则 4.只能提交一次 5. 所有的试题必须填写 3 概要设计 3.1 在线考试系统功能结构 在线考试系统所应具有的功能为,学生方面为学生登录,选择考试科目,参加考试,查阅考试成绩四个功能,管理员方面为管理员登录,管理员管理试题,管理试卷,组织考试,管理考生信息四个功能。功能结构图如图3.1所示: 图3.1 在线考试系统功能结构图 在线考试系统的功能结构分为两个大模块:学生模块和管理员模块。管理员身份登录系统可以进行的操作有对试题库的管理,包括试题的编号,科目,内容,答案等的管理;可以对试卷进行管理,包括对试卷编号,科目等的管理;可以组织考卷进行考试,设置考试科目,考试时间等;可以管理考生信息,包括对考生信息的增删改查,查看考生成绩等。 学生模块主要功能有以学生身份登录系统之后,可以选择需要参加的考试科目,然后进行考试,考试结束后可以查询自己的考试成绩。 3.2 系统流程 在线考试系统的系统流程图如图3.2所示: 图3.2 系统流程图 从系统流程图来看,在线考试系统分为两大部分,登录分为学生登录和管理员登录,管理员登录成功之后可以进行一系列管理操作,登录失败则返回到登录界面重新登录,操作完成之后退出系统。学生登录成功后可以选择考试科目,选择完之后参加考试,提交试卷并跳转到显示成绩界面。 系统管理员管理系统又分为三大功能模块,管理学生信息,管理试题,组织试卷及管理试卷。 管理学生信息子流程如图3.3所示: 图3.3 管理学生信息子流程 管理员成功登录系统后,可以对考生信息进行管理,输入学生学号或者姓名可以查询到考生信息,如果考生参加过考试,则可以查询考生考试成绩,管理员也可以对学生的登录密码进行修改。同时管理员可以录入一个或者多个学生信息到系统中。 管理试题子流程如图所示: 图3.4 管理试题子流程 管理员成功登录系统后,可以对系统中的试题进行管理。管理操作包括录入试题信息,通过试题编号查询试题信息,修改试题内容答案等。 管理试卷子流程如图所示: 图3.5 管理试卷子流程 管理员成功登录系统之后,可以进行管理试卷的操作。管理员可以组织一套试卷,组织试卷之前必须先填写试卷的基本信息,试卷科目,试卷总分,考试时间等,设置完之后组织试卷,试卷组织完成后可以查询已存在的试卷信息,可以修改已存在的试卷信息。 4 详细设计及实现 4.1 数据库设计及实现 在线考试系统功能需求分析得出主要又学生,管理员,试卷三大部分,那么数据库的设计也主要从这几方面考虑。 首先创建一个名字为examol的数据库,数据库下分为五个表项,分别为studentinfro,admin,javapaper,englishpaper,historypaper五个表。 数据库设计的实体—关系图如图4.1所示: 图4.1 系统E-R图 由于本次设计所用数据库平台为MySQL,数据库设计如图4.2所示: 图4.2 examol数据库 下面来分别详细设计这五个表。 admin表中需要包含的信息为管理员的ID已经管理员的登录密码,要求主键非空为ID,密码也是非空。表结构如下: 表4.1 admin表结构 Column Name Datatype Collation ad_id Int(11)  Principal key;Not null password Varchar(45) Not null Studentinfro表为考生信息表,它包括学生的基本信息:学生学号,学生姓名,年龄,性别,联系电话,所在班级以及登录密码。学生学号为学生信息表主键,学生学号以及年龄为整型,其他均为字符串型,所有信息均非空。学生信息表表结构如下: 表 4.2 学生信息表 Column Name Datatype Collation s_id Int(11) Principal key;Not null s_name Varchar(45) Not null s_class Varchar(45) Not null s_age Int(11) Not null s_gender Varchar(45) Not null telephone Varchar(45) Not null password Varchar(45) Not null Javapaper为Java考试的试卷信息表,其中包含了java试卷的试卷编号,试卷类型,试卷中的试题编号,试题类型,试题题目,备选答案,正确答案及试卷分数。其中试卷编号ja_id为javapaper表的非空主键,其他表项除成绩的数据类型为Float型非空外均为字符串类型且非空。Java考试信息表表结构如下: 表4.3 Java试卷信息表 Column Name Datatype Collation ja_id Varchar(45) Principal key;Not null ja_course Varchar(45) Not null ja_proid Varchar(45) Not null ja_problem Varchar(255) Not null ja_answerA Varchar(255) Not null ja_answerB Varchar(255) Not null ja_answerC Varchar(255) Not null ja_answerD Varchar(255) Not null ja_rightans Varchar(255) Not null score Float Not null Englishpaper为english考试的试卷信息表,其中包含了English试卷的试卷编号,试卷类型,试卷中的试题编号,试题类型,试题题目,备选答案,正确答案及试卷分数。其中试卷编号e_id为englishpaper表的非空主键,其他表项除成绩的数据类型为Float型非空外均为字符串类型且非空。English考试信息表表结构如下: 表4.4 英语试卷信息表 Column Name Datatype Collation e_id Varchar(45) Principal key;Not null e_course Varchar(45) Not null e_proid Varchar(45) Not null e_problem Varchar(255) Not null e_answerA Varchar(255) Not null e_answerB Varchar(255) Not null e_answerC Varchar(255) Not null e_answerD Varchar(255) Not null e_rightans Varchar(255) Not null score Float Not null Historypaper为history考试的试卷信息表,其中包含了history试卷的试卷编号,试卷类型,试卷中的试题编号,试题类型,试题题目,备选答案,正确答案及试卷分数。其中试卷编号h_id为historypaper表的非空主键,其他表项除成绩的数据类型为Float型非空外均为字符串类型且非空。History考试信息表表结构如下: 表4.5 历史试卷信息表 Column Name Datatype Collation h_id Varchar(45) Principal key;Not null h_course Varchar(45) Not null h_proid Varchar(45) Not null h_problem Varchar(255) Not null h_answerA Varchar(255) Not null h_answerB Varchar(255) Not null h_answerC Varchar(255) Not null h_answerD Varchar(255) Not null h_rightans Varchar(255) Not null score Float Not null 4.2 持久层设计及实现 根据上面的数据库设计,在线考试系统的工程需要设计与此相对应的五个实体类,分别为Admin,Student,Javapaper,Englishpaper,Historypaper这五个Java类。实体类中需要定义数据库对应表中的表项,并给出get及set方法,同时写出实体类对应的.xml文件,用来实现这些实体类所涉及到的数据。 实体类设计如图4.3所示: 图4.3 实体类设计及实现 Admin.xml的关键代码如下: <hibernate-mapping package=“com.ExamOL.bean“> <class name=“Admin“ table=“admin“> <id name=“ad_id“ column=“ad_id“ type=“java.lang.Integer“> <generator class=“assigned“/> </id> <property name=“password“ type=“java.lang.String“ column=“password“/> 其次我们将设计与实体类相对应的数据库数据操作DAO类,共对应五个DAO类,即AdminDao,StudentDao,JavapaperDao,EnglishpaperDao,HistorypaperDao这五个Java类。实体类所对应的DAO类主要作用为各个类的数据传输,即与数据库之间的数据操作。DAO类的实现如图4.4所示: 图4.4 DAO类设计及实现 AdminDao类需要实现的是管理员登录时候从数据库调用管理员的基本信息,是否能够与数据库信息匹配,关键实现代码如下: //管理员登录 public boolean adminLogin(Integer ad_id,String password) { String hql = “from Admin a where a.ad_id=? and a.password=?“; SessionFactory sf= new Configuration().configure().buildSessionFactory(); session = sf.openSession(); Transaction tx = session.beginTransaction(); Query query=session.createQuery(hql); query.setParameter(0, ad_id); query.setParameter(1,password); List list=query.list(); if(list!=null&&list.size()!=0){ return true; } StudentDao类主要实现的是学生登录,学生信息增删改查,已经学生密码的修改,学生信息获取包括通过学生学号来查询学生信息和通过学生姓名来查询学生信息。 JavapaperDao类主要实现的是Java试卷信息的获取,包括通过试卷编号获取试卷信息,通过试题编号获取某一道试题的信息,以及试题的增删改。 EnglishpaperDao类主要实现的是英语试卷信息的获取,包括通过试卷编号获取试卷信息,通过试题编号获取某一道试题的信息,以及试题的增删改。 HistorypaperDao类主要实现的是历史试卷信息的获取,包括通过试卷编号获取试卷信息,通过试题编号获取某一道试题的信息,以及试题的增删改。 4.3 视图层设计及实现 在线考试系统的界面设计主要有登录界面,学生选择考试界面,学生答题界面,显示分数界面,管理员管理系统界面,管理学生信息界面,管理试题界面,管理试卷界面以及试卷和试题的增加、修改查询界面。 登录界面包括学生登录和管理员登录两个选项,用户需要输入用户名以及密码才能登录,用户名为学生ID或者管理员ID。登录界面实现的关键代码吐下: <span>学生在线考试系统</span> </div> <form action=“login“ onclick=“return loginSubmit();“ method=“post“ name=“loginForm“ style=“background-color: rgba(96, 125, 139, 1);;height:350px;margin-top:60px;“> <div class=“input-info“> <div class=“input-form“> <input id=“userId“ name=“userId“ type=“text“ class=“easyui-validatebox textbox“ data-options=“required:true, missingMessage:'请输入用户名'“ placeholder=“用户名“ style=“position:absolute;left:25%;top:200px;height:30px;width:250px;“/> </div> <div class=“input-form“> <input id=“password“ name=“password“ type=“password“ class=“easyui-validatebox textbox“ data-options=“required:true, missingMessage:'请输入密码'“ placeholder=“密码“ style=“position:absolute;left:25%;top:285px;height:30px;width:250px;“/> </div> </div> <div class=“radio-style“ id=“radios“> <input name=“identity“ type=“radio“ value=“0“ checked=“checked“>学生 <input name=“identity“ type=“radio“ value=“1“>管理员 </div> <button type=“submit“ id=“loginBtn“ class=“login-button“>登 录</button> 登录界面主要有学生登录和管理员登录两个选项,用户分别输入自己的用户名及密码方可登录,登录界面实现如图4.5所示: 图4.5 在线考试系统登录界面 管理员使用系统授权的管理员用户名编号及密码登录系统,用户名及密码输入正确点击登录后,即可进入管理员管理系统界面。管理员管理界面功能总共包含了三个:管理学生信息,管理试题信息及管理试卷信息。管理学生信息可添加新的学生,修改学生信息及密码,删除学生信息。管理试题信息包括对试题的增删改查,同时可以设置试题的分值,正确答案等。管理试卷包括选择需要组织的试卷科目,种类及分值。下面主要演示管理试题信息界面实现,如图4.6所示: 图4.6 管理试题界面 学生登录需要输入学生学号及密码方可登录,点击登录系统登录成功后,进入选择考试界面。阅读考试需知并选择考试科目可参加考试。如图4.7所示: 图4.7 学生选择科目界面 学生选择科目参加考试,进入考试界面。如图4.8所示: 图4.8 在线考试界面 4.4 控制层设计及实现 在线考试系统的系统操作为控制层所要实现的功能,对应着系统界面设计所涉及到的不同用户的操作。 系统登录操作为管理员与学生的登录操作,建一个名为LoginAction的类,用来实现系统登录操作。登录操作关键代码如下: public String execute() throws Exception { if(identity==0) { StudentDao studentDao=new StudentDao(); if(studentDao.studentLogin(userId, password)) { return “student-success“; } return “ERROR“; } //管理员登录 if(identity==1) { AdminDao adminDao = new AdminDao(); if(adminDao.adminLogin(userId, password)){ return “admin-success“; } return “ERROR“; } return “ERROR“; 5 系统测试 5.1 单元测试 单元测试是指对开发者编写的一小段代码或者一个软件单元进行测试,测试目标为这一小部分,具有明确功能的代码是否正确,或者面向某个函数的行为,是对单个的软件单元或者一组相关的软件单元所进行的测试,是代码级的测试,主要测试方法为静态分析中的白盒测试。在开发初期,单元测试的任务是:对通过模块的数据流进行测试;模块局部数据结构测试;模块边界条件测试;模块独立执行路径测试;模块内部错误处理测试。但是单元测试也有局限性,那就是无法对系统总体设计进行测试。 在线考试系统开发的过程中,单元测试一直在执行,通过对小型模块的检查和审阅,虽然出现了一些错误但是已经及时改正,使得项目能继续往下开发。 5.2 集成测试 集成测试是单元测试的拓展,它的基础是单元测试,需要将所有模块按照设计要求逐步装配称高层的功能模块,并进行测试,直到整个软件成为一个整体。集成测试的目的是检验软件单元之间的接口问题。测试内容包括以下几个方面:集成后的功能性测试,接口测试,全局数据结构测试,资源测试,性能测试,稳定性测试。 在项目完成初期,在线考试系统的单元测试已通过,本文将用户登录,学生考试,管理员管理系统分为三个大的模块,对这三个大的模块进行的集成测试,测试方法为直接运行程序的黑盒测试,测试后发现学生进行考试的子功能不能正常运行,并进行了及时的修改。 5.3 系统测试 系统测试是为判断系统是否符合规定而对集成的软硬件系统进行的测试。它将被测软件作为整个基于计算机的一个元素,与计算机硬件,外设、某些支持软件、数据和人员等其他系统元素结合起来,在程序实际运行的情况下进行的系统测试。该测试的目的是为了发现缺陷并度量产品质量,按照系统的功能和性能需求进行的测试,一般使用黑盒测试。系统测试通常从用户层,应用层,功能层,子系统层及协议层来测试。 本项目在线考试系统在开发后期完成之后,对此进行了系统的测试,采用了黑盒测试的方法,直接运行了程序,测试了各个功能的实现情况,得出结论程序设计初期大部分要求的功能已经实现正常运行。 结 论 基于B/S的在线考试系统是跨浏览器的,更加方便快捷的网上考试系统,该系统的发展前景和应用市场都十分巨大,开发网上在线考试系统对于教育事业的发展具有深远的意义。本文中的在线考试系统基本实现了学生网上在线考试,管理员在线管理系统等功能,既承接了以往前辈们对于网上考试系统的开发,同时也加入了新技术,使得本次在线考试系统的开发获得较大的成功。本次在线考试系统的开发,创新点在于使用了一些最新的开发技术,如Tomcat 8等,开发框架也使用流行的J2EE中的Struts 2与Hibernate结合的开源框架,但是功能特性上没有大的变化。我认为基于B/S的在线考试系统在不久的将来会发展越来越快,应用于实际生活中也会越来越普遍,彻底进入一个信息化的考试时代。 参 考 文 献 [1] 思志学,等.J2EE整合详解与典型案例:一本书搞定Struts+Spring+Hibernate[M].北京:电子工业出版,2008 [2] Budi Kurniawan.深入剖析Tomcat[M].机械工业出版社,2012. [3] 陶国荣.jQuery权威指南[M].机械工业出版社,2011. [4] 单东林,张晓菲,魏然.锋利的jQuery[M].人民邮电出版社,2009. [5] 龙小宏.在线考试系统[D].电子科技大学出版社,2007. [6] 李红艳.在线考试系统智能组卷策略的设计与实现[J].湖南大学出版社,2012. [7] 杨勋.在线考试系统的组卷算法研究[J].电脑知识与技术,2014(11X):7621-7623. [8] 钟美莺.在线考试系统数据库设计应用研究[J].《电脑编程技巧与维护》,2015(21):55-56. [9] W Xia,W zhou.Design and Implementation of Online Examnation System[J].《Science Mosaic》,2014. [10] Y chen.The Establishment of a Teaching and Intellective of Examnation-system on Web Based on The Mode of B/S[J].《Journal of Zhengzhou Institute of Aeronautical Industry Management》,2005. 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 20 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于ASP.NET的在线考试系统设计与实现

    毕业设计说明书(论文)中文摘要考试是教育工作中重要的一环,帮助考生发现自己的知识盲点,促进学习进步。但随着信息化时代的到来,传统的考试方式迫切地需要结合互联网技术,以推进教育的进步,提升考试效...

    2周前   
    44    0

    在线考试系统毕业设计

    XX大学XX UNIVERSITY毕业论文(设计)题 目: 在线考试系统 学 生: ...

    7个月前   
    200    0

    远程在线考试系统设计实验报告

    系统设计实验报告 ——远程在线考试系统目 录软件需求说明书························1 ...

    8年前   
    236    0

    基于在线教学系统的初中命题作文教学策略研究

    本次疫情对于以“班级授课制”为主要表现形式的传统作文课堂教学是一次挑战也是一次机遇。因为教学环境、受教育者、教学条件等因素影响对于传统课堂教学便是挑战。

    1个月前   
    120    0

    《操作系统》在线作业

    《操作系统》在线作业

    9个月前   
    1149    0

    基于通信的系统的影响

    基于通信的系统的影响如上文所述,信息服务的趋势正朝着分散和分布式数据处理(DDP)方向发展。分散的信息服务工作并不意味着数据通信,但是多数是基于通信的。依照定义,所有分布式数据处理(DDP)系...

    9年前   
    206    0

    Bs测试A

     BS型车台整机测试方法 ◆ 适用软件版本:BS6F;硬件版本:V8; 单板电气性能测试OK后,先应清洗清除板上脏污、锡渣铁屑等杂物,后 才装配成整机,插上振动传感器、射频盒、应急按钮以...

    4年前   
    20551    0

    石大远程在线考试——《安全系统工程》-3411553761313791

     中国石油大学(北京)现代远程教育 课 程 考 试 《安全系统工程》试卷 学习中心: 姓 名: 考场号: 专 ...

    2年前   
    4976    0

    基于Web技术的驾校考试系统的设计与实现毕业设计

    基于Web技术的驾校考试系统的设计与实现毕业设计 摘 要 在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网上考试则是网络技术一个很重要的发展方向。网上考试一...

    2年前   
    998    0

    基于安卓系统的点餐系统毕业设计

     本科毕业论文(设计) 题 目: 基于安卓系统的点餐系统 专 业: 姓 名: 指导教师: ...

    2年前   
    935    0

    基于CS框架的学生选课系统

     ...

    2年前   
    791    0

    法宣在线考试试题答案

    • 1、(单选题)中国的政权组织形式是( )。o A.人民代表大会制度o B.民主集中制o C.共产党领导的多党合作o D.人民民主专政正确答案:A  用户选择:• 2、(单选题)我国的...

    3年前   
    4360    0

    2019法宣在线(学法用法)考试答案

    2019法宣在线(学法用法)考试答案

    8个月前   
    696    0

    基于Android的教学课程系统设计与开发

    摘 要移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的...

    2周前   
    45    0

    基于Multi-Agent System预测支持系统

    基于Multi-Agent System预测支持系统 数据特征分析Agent设计 国家自然科学基金资助项目(79970038) 刘文财2 刘文财,博士研究生,天津大学管...

    4年前   
    23164    0

    基于android的物业管理系统的设计与实现19.8

     目录基于android的物业管理系统的设计与实现 3摘 要 3Android property managemengt system 5Abstract 51 绪论 61.1 选题背景 6...

    2周前   
    48    0

    基于Java的图书馆座位管理系统的设计与实现

    目前,如何利用计算机系统来对座位进行管理是解决占座问题的关键。该图书馆座位管理系统是基于Java架构,采用Eclipse开发工具,使用SSM等前端开源框架,以MySQL为后台数据库,Tomcat...

    6个月前   
    674    0

    基于PLC的温室控制系统的设计

    基于PLC的温室控制系统的设计摘 要随着人们生活水平的提高,由温室大棚种植的反季节蔬菜成为人们越来越离不开的食物,所以温室大棚技术越来越重要,而温度控制是最为重要的一环。考虑到PLC具有灵活...

    1个月前   
    81    0

    基于Android的网上订餐系统毕业论文

    XX 大 学 毕 业 设 计( 论 文 ) 题目 基于Android的网上订餐系统 作者 学院 专业 学号 指导教师 二〇XX 年 X月 X日 摘 要 ...

    2年前   
    1157    0

    基于Java的网上购物系统的设计与实现

     XX 学 院 本科毕业论文(设计) 题 目 基于JAVA的网上购物 系统的设计与实现 院 系 计算机...

    2年前   
    1668    0

    文档贡献者

    平***苏

    贡献于2021-06-06

    下载需要 20 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档