搜档网
当前位置:搜档网 › 基于JAVA语言的在线考试系统设计

基于JAVA语言的在线考试系统设计

基于JAVA语言的在线考试系统设计
基于JAVA语言的在线考试系统设计

摘要

在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统—JAVA在线考试管理系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能。本论文主要介绍了对JAVA在线考试管理系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线管理子系统的设计过程进行详细的说明。

全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与还原。

本毕业设计的内容是设计并且实现一个基于web技术的在线考试系统,故而系统主要以j2EE作为开发基础,主要使用了struts+spring等多种协议或技术,用eclipse作为开发工具,以MYSQL作为数据库,以Macromedia公司的Dreamweaver作为界面美化工具。基本实现了网上考试系统应有的主要功能模块,包括:管理员的登录,管理和维护;用户注册、登录、注销,个人信息的查询、修改;考试管理,套题管理,成绩管理。该系统界面简单、操作方便,容易维护。

关键词:JavaSE;J2EE;MYSQL;在线考试

Abstract

Online examination system to achieve paperless management of examinations, the examination of some subjects through the Internet or LAN, to facilitate the management of the school Examination, candidates are also convenient, especially for candidates widely distributed, easy to focus on distance education . The background of my main development system management system-JA V A-line examination management subsystem, which includes questions management, candidate management, on-line production of papers, control of student test set, paper processing and other functions. This paper introduces online examination management subsystem on the JA V A analysis, design and development of the whole process. Using ER diagram, process flow charts and other on-line management subsystem design process detail.

Paper is divided into development programs, requirements analysis, system design, key technical solutions, the conclusion of five parts. Development program introduces the development of online examination system was the purpose, development plan and development framework for the choice of identification technology; demand analysis describes the overall demand for online examination system and the system functional requirements of each module; system designed for the guidance system design thinking, database design, system design module; key technology introduced to be addressed in the detailed realization of some technologies, such as the integration of technology development framework, development framework and the database connection and data backup and restore.

The contents of this graduation project is to design and implement a web-based technology, online examination system, Guer system based mainly j2EE as the development, mainly using struts + spring and other agreements or technology, using eclipse as a development tool to MYSQL as the database to Macromedia's Dreamweaver as a landscaping tool interface. Basically an online examination system should be the main functional modules, including: an

administrator's login, management and maintenance; user registration, login, logout, personal information, access, correction; test management, problem sets of management, performance management. The system interface is simple to operate, easy to maintain.

Keywords:JavaSE; J2SE;MYSQL ;Online Examination

目录

摘要.............................................................................................................................................. I Abstract........................................................................................................................................... I 目录........................................................................................................................................... I II 第1章绪论. (1)

1.1 课题背景 (1)

1.2 目的和意义 (1)

1.3本文结构 (1)

第2章系统应用的关键技术 (2)

2.1 JSP技术介绍 (2)

2.1.1 JSP的描述 (2)

2.1.2 JSP的运行机制 (2)

2.1.3 JSP的强势与劣势 (3)

2.1.4 JSP与ASP的比较 (3)

2.2 Java组件与JavaBeans (4)

2.2.1 什么是JavaBeans (4)

2.2.2 JSP与JavaBeans的关系 (4)

2.3 J2EE概述 (4)

2.4 关于Struts (5)

2.4.1 Struts简介 (5)

2.4.2 Struts的主要功能 (5)

2.4.3 Struts的工作原理 (5)

2.5 关于Spring (7)

2.5.1 Spring简介 (7)

2.5.2 为什么需要Spring (8)

2.5.3 Spring带给我们什么 (8)

2.6 关于B/S开发模式 (9)

2.6.1 为什么引入B/S开发模式 (9)

2.7 MYSQL数据库 (10)

2.7.1 MYSQL的特点 (10)

2.7.2 MYSQL的安装和配置(部分截图) (10)

2.8 Tomcat服务器 (12)

2.8.1 Tomcat服务器简介 (12)

2.8.2 Tomcat的特点 (12)

2.8.3 Tomcat的优势 (12)

2.8.4 Tomcat服务器的安装和配置 (12)

第3章系统需求分析和总体设计 (14)

3.1 系统功能需求 (14)

3.2 系统角色及其功能分析 (14)

3.2.1 系统的两个角色 (14)

3.2.2 系统角色的功能 (14)

3.3 总体设计思想概述 (15)

3.4 数据库设计 (16)

3.4.1 E-R图 (16)

3.4.2 数据表的设计 (16)

3.5 系统的类设计 (18)

3.5.1 DAO类设计 (18)

3.5.2 connDB类设计(部分) (18)

3.5.3 过滤器类设计 (19)

3.5.4 监听器类设计 (19)

3.6 系统的用例图 (20)

3.6.1 总体用例分析 (20)

3.6.2 用户管理用例分析 (21)

3.6.3 考试管理用例分析 (21)

3.6.4 考试题目管理用例分析 (22)

3.6.5 成绩管理用例分析 (22)

第4章系统的详细设计 (24)

4.1 数据库与connDB类映射的实现 (24)

4.2 主要模块的说明与界面 (25)

4.2.1 用户管理模块 (25)

4.2.2 考试管理模块 (29)

4.2.3 题目管理模块 (31)

4.3 系统的测试 (36)

结论 (37)

致谢........................................................................................................... 错误!未定义书签。参考文献 (39)

附录 (40)

第1章绪论

1.1 课题背景

网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个重要特征,并对教育的发展形成新的推动力。随着Internet/Intranet的迅速发展和广泛普及,网络考试系统成为现代教育技术未来发展方向之一。作为网络考试的一个子系统——网络阅卷子系统,也成为一个重要的研究领域。现代网络考试作为一种新的考试手段已经开始进入人们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。网络阅卷子系统突破了传统考试方式的时空限制,使阅卷方式更为灵活,同时充分利用计算机进行自动阅卷功能,大大减轻了教师的工作量。

1.2目的和意义

现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。

1.3本文结构

本文共分五个章节,系统地阐述了系统开发的全过程。

第一章,主要介绍了开发的背景、目的和意义。

第二章,主要介绍了本系统所用到的关键技术和工具,为下一步的设计的设计奠定基础。

第三章,主要对系统进行需求分析并进行总体设计。需求分析阶段通过分析系统的功能模块的划分以及角色的划分,为系统的总体设计提供依据。总体设计阶段通过对数据库、过滤器、监听器、和实体类的设计,以及各个模块用例图的描述,形成了开发的整体思路。

第四章,主要介绍了主要模块的设计与实现,并给出关键源代码和最终的效果图。

第五章,主要是对这次毕业设计的总结和对后续工作的展望。

第2章 系统应用的关键技术

2.1 JSP 技术介绍

2.1.1 JSP 的描述

JSP(Java Server Pages)是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如ASP ,PHP 等,主要用于开发动态网页内容。

JSP 是新一代的动态内容编程技术,它继承了Java 技术的“一次编写,随处运行”的特性,允许Web 开发人员开发和维护与平台无关,信息丰富动态的Web 页面,包括HTML ,DHTML ,XHTML 和XML ,它能使Web 开发人员轻易搭建网络平台,建立起功能强大的Web 网站。JSP 可以把用户界面从内容层次中分离出来,使得Web 开发人员不必修改在底层的动态内容,就可以修改整体的页面布局。

2.1.2 JSP 的运行机制

JSP 文档被复制到Web 服务器的文档目录中。当有人请求这个文档时,服务器识别出这个带有.jsp 扩展名的文档,并意识到需要做特殊处理。第一次请求这个文档时,它被编译成一个servlet 对象,并存储在内存中,然后输出内容回送给发出请求的用户机。第一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果没有变化,服务器调用先前编译过的servlet 对象。

JSP 请求的步骤[2]如图2-1所示。

1. 用户机请求一个JSP 页面。

2. JSP 引擎编译该JSP 成一个servlet 。

图2-1 一个JSP 的请求步骤

3. 生成的servlet 被编译并装载。

4. 编译的servlet 服务请求并把一响应发送回用户机。

JSP 主要是针对Java 程序处理不熟悉的人设计的。与Servlet 相比,JSP 有如下两个优势:方便与HTML 混合;在开发、测试方面比Servlet 方便。

Web

浏览器 JSP 页面

生成的servlet

编译的servlet

Web 服务器

2.第一次编译 3.第二次编译 1.请求 4.响应

2.1.3 JSP的强势与劣势

JSP的强势:

1. 可移植性。JSP是用Java开发的,因此它是可移植的,可以一处编写,随处运行,支持多平台。

2. 有效性。JSP的初始化代码仅在Web服务器第一次加载时执行一次。一旦加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要全部加载一个完整的可执行程序相比,这是一个相当有效的技术。

3. 强大的可伸缩性和可扩充性。它能够在面向对象的语言(Java)中进行开发,并可以在现有对象基础上进行扩展,形成新的对象,从而更好地满足用户的需求。

4. 多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

5. Java Servlet是一种开发Web应用的理想框架。JSP以Servlet技术为基础,又在许多方面作了改进。利用跨平台的JavaBeans组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。

JSP的劣势:

1. 为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性,Java系统中包括JRE,JDK,J2EE,EJB等多种产品,这就需要大量的学习和培训才能掌握它们,将它们有效地搭配在一起,灵活地加以运用。

2. Java的运行速度快是由于用户将class常驻内存,这样使用的内存空间就比较大。另一方面,它还需要硬盘空间来存储一系列.Java文件和.class文件以及对应的版本文件。

3. JSP只有对Java相当熟悉的人才能用得很好。

4. JSP程序调试困难。

2.1.4 JSP与ASP的比较

JSP与ASP(Active Server Page)两者都是常用的动态网页技术,也都是可以嵌入HTML 中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:

1. Web服务器的支持:大多数通用的Web服务器如:Apache、Netscape和Microsoft IIS 都支持JSP页面,只有微软本身的Microsoft IIS和Personal Web Server可以支持ASP。

2. 平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于一直到其它平台上。

3. 组件模型:JSP是建立在可重用的、跨平台的组件(如:JavaBeans、Enterprises JavaBeans 和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。

4. 脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。

5. 安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全结构。

6. 与Access数据库的连接:JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用Data Active Objects。

7. 用户定制的标签:JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的。

2.2 Java组件与JavaBeans

2.2.1 什么是JavaBeans

JavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在Java(包括JSP)中使用可重复使用的Java组件的技术规范。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public 类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。

2.2.2 JSP与JavaBeans的关系

使用JSP技术,Web页面开发人员可以使用HTML和XML标识来设计和格式化最终页面。使用JSP标识或者小脚本生成页面上的动态内容。生成内容的逻辑被封装在JSP标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。核心逻辑封装在标识和Beans中,可以方便页面设计者编辑和使用JSP页面。

在服务器端,JSP引擎解释JSP标识和小脚本生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库),并且将结果以HTML(或XML)页面的形式发送回浏览器。

绝大多数JSP页面依赖于可重用的跨平台的足见(JavaBeans或者Enterprise JavaBeans 组件)来执行应用程序所要求的复杂的处理。这样的好处是开发人员能够共享和交换执行普通操作的组件,加速了总体开发过程。因此,基于Web的较为复杂的应用程序(如JSP开发网站或网上MIS),JSP的复杂架构必须由JavaBeans达成。

2.3 J2EE概述

J2EE(Java 2 Platform Enterprise Edition)是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE(Java 2 Platform Standard Edition)和适用于企业级应用的J2EE(Java 2 Platform Enterprise Edition)。Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。各个平台开发商按照J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。由于它们都遵循了J2EE规范,因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EE Blueprints。J2EE Blueprints提供了实施J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用J2EE Blueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。J2EE Blueprints是开发人员设计和优化J2EE组件的基本原则,同时为围绕开发工作进行职能分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。

J2EE的优势主要有以下几点:

1. 高效的开发:J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应

商去完成这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:状态管理服务-- 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。

2. 持续性服务:让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式共享数据对象CACHE服务,让开发人员编制高性能的系统,极大提高整体部署的伸缩性。

3. 支持异构环境:J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许用户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。

4. 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新用户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。

5. 稳定的可用性:一个服务器端平台必须能全天候运转以满足公司用户、合作伙伴的需要。这是实时性很强商业系统理想的选择。

2.4 关于Struts

2.4.1 Struts简介

Struts已逐步越来越多运用于商业软件,是一种非常优秀的J2EE MVC实现方式。Struts 用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。

2.4.2 Struts的主要功能

1. 包含一个controller servlet,能将用户的请求发送到相应的Action对象。

2. JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。

3. 提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans 属性、国际化的提示和消息。Struts项目的目标是为创建Java web应用提供一个开放源代framework。Struts framework的内核是基于例如Java Servlets, JavaBeans, ResourceBundles, 和XML,以及各种Jakarta Commons包的标准技术的灵活的控制层。Struts提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。Struts已逐步越来越多运用于商业软件,是一种非常优秀的J2EE MVC实现方式。

2.4.3 Struts的工作原理

MVC(Model-View-Controller),是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化,MVC可以让整个逻辑很清晰,这种思想和思维和人的思维很接近,很容易被理解。

MVC的工作原理如图2-2所示:

图2-2 MVC 工作原理

Struts 是MVC 的一种实现,它将 Servlet 和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts 继承了MVC 的各项特性,并根据J2EE 的特点,做了相应的变化与扩展。Struts 的工作原理,如图2-3所示:

图2-3 struts 工作原理

模型M

封装应用程序状态

响应程序状态

应用程序功能

通知视图改变 视图V

解释模型

模型更新要求

发送用户输入给控制器

允许控制器选择视图 控制器C 定义应用程序行为 用户动作映射成模型更新 选择响应的视图

方法调用 事件

状态改变 状态查询 视图选择 用户请求 通知改

客户端

IE 或Netscape 控制器

ActionServlet 视图

JSP

Struts-C

onfig.xml Action

Action

JavaB ean

EJB

业务逻辑 …

模型

1. Controller:在XML文件Struts-config.xml中,与之相关联的是Controller,在Struts 中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。

2. 视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库:Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。

3. 模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。

2.5 关于Spring

2.5.1 Spring简介

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

目的:解决企业应用开发的复杂性

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务

管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

2.5.2 为什么需要Spring

你可能正在想“Spring不过是另外一个的framework”。当已经有许多开放源代码(和专有) J2EE framework时,我们为什么还需要Spring Framework?

Spring是独特的,因为若干个原因:

它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。

Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。

它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。

Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。

2.5.3 Spring带给我们什么

方便解耦,简化开发

通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

AOP编程的支持

通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

声明式事务的支持

在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

方便程序的测试

可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。

方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring 提供了对各种优秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。

降低Java EE API的使用难度

Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

Java 源码是经典学习范例

Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

2.6 关于B/S开发模式

2.6.1 为什么引入B/S开发模式

B/S 开发模式

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层(3-tier)结构。一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是:工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。在一个典型的三层架构应用程序中,应用程序的用户工作站

包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。

事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JA V A这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效

伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。

过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于用户端程序,因此,必然导致以下问题:

1. 系统安装、调试、维护和升级困难。由于用户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个用户端分别进行配置,同样,在软件升级时也要对用户端分别处理。

2. 在整个系统中,业务逻辑和用户界面都集中到了用户端,必然会增加安全隐患。B/S模式带来了巨大的好处:

a) 开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW 浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的用户端只有浏览器,网络管理人员只需要做硬件维护。

b) 良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有用户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。

2.7 MYSQL数据库

2.7.1 MYSQL的特点

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。

目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.7.2 MYSQL的安装和配置(部分截图)

图2-4mysql安装图(开始)

安装时一般采用默认路径:

图2-5mysql安装图(路径)

图2-6 sql安装图(数据库类型)为了支持中文,在下面的列表框中学者gb2312(切记)

图2-7mysql安装图(语言)

图2-8mysql安装图(等待成功)

2.8 Tomcat服务器

2.8.1 Tomcat服务器简介

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat中采用了Servlet 容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。

2.8.2 Tomcat的特点

在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web 部署和撤销应用。当然本地也可以。

2.8.3 Tomcat的优势

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html 页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat 和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。

2.8.4 Tomcat服务器的安装和配置

在开始安装之前,先准备J2SDK和TOMCAT两个软件,如果已经安装了J2SDK,就只需TOMCAT即可。

1. 需设置的环境变量

变量名:CATALINA_HOME

变量值:D:\Program Files\tomcat6.0

变量名:CLASSPATH

变量值:.;%JA V A_HOME%\lib;%CATALINA_HOME%\common\lib

2. 安装完成后,打开tomcat服务器,启动浏览器,在地址栏上输入:

http://localhost:8080/ 若出现以下界面说明安装成功。

图2-9 tomcat启动页面

本章全面介绍本系统所用到的关键技术和工具,其中jsp作为javaweb开发的基础,对它的运行机制要理解,同时还要明白它的优劣势;j2ee作为开发的标准也作了简单介绍。而SSH(struts+spring+hibernate)作为本系统的核心与亮点技术,更是作了详细介绍,要掌握他们的工作原理,主要功能。最后介绍了本系统使用的数据库mysql以及tomcat 服务器的安装与配置。只有掌握了这些技术基础,才能使本系统的开发正常进行。

第3章系统需求分析和总体设计

3.1 系统功能需求

图3-1 系统功能模块

如图3-1所示,在本系统中主要阐述用户管理、考试管理、成绩管理、题目管理四个模块。

1. 考试管理:实现选择课程,准备考试,开始考试,自动阅卷,显示考试成绩等。

2. 题目管理:实现试题库中试题的分类和增加,删除,以及答案的设置等。

3. 成绩管理:实现前台用户的成绩查询,后台管理员对成绩的查询。

4. 用户管理:实现用户注册、用户信息修改、用户查询功能。

3.2 系统角色及其功能分析

3.2.1 系统的两个角色

1. 注册用户

2. 管理员

3.2.2 系统角色的功能

1. 注册用户

使用系统的功能,用户必须先注册,只要注册为网站用户后,获得自己的帐号,设置自己的密码就具有以下功能:登录,登出,参加考试,提交试卷,查询成绩,添加或修改个人资料。

2. 管理员

管理员可以对试题属性进行设置、对用户资料的查看,删除等,以及对成绩的查询等。

3.3 总体设计思想概述

本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了用户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层[16],如图3-2;

Presentation Logic

Business Logic

Persistent Logic

Data

图3-2 系统架构

总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。

在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。

3.4 数据库设计

3.4.1 E-R图

下面是该系统数据库表的E-R图,如图3-4

图3-4 E-R图

3.4.2 数据表的设计

下面列出了设计过程中所用到的数据库表及其结构:

tb_Lesson表用来保存课程的信息,如表3-1:

表3-1 tb_Lesson

列名类型长度描述

ID bigint 8 课程ID

Name varchar 60 课程名称

JoinTime datetime 8 加入时间

tb_manager表用来保存管理员信息,如表3-2

表3-2 tb_manageer

列名类型长度描述

ID bigint 8 管理员ID

Name varchar 30 管理员名字

PWD varchar 30 管理员密码

04747java语言程序设计(一)20120年01月试卷

全国2012年1月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共l0分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面供选字符序列中,不属于 ...Java语言关键字的是( ) A.inner B.throw C.false D.throws 2.表达式“-1>>>1”的十进制值是( ) A.-2 B.231-1 C.-(231-1) D.232-1 3.Java语言中,在类定义时用final关键字修饰,是指这个类( ) A.子类必须实现父类未实现的方法 B.没有具体实现代码 C.必须要有实例 D.不能被继承 4.表达式"java程序设计".1ength()的值是( ) A. 0 B.12 C. 8 D.13 5.以下关于BorderLayout布局的叙述中,不正确 ...的是( ) A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域 C.是框架窗口的默认布局 D.一个位置可直接放多个组件 6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是( ) A.accept()和getSelectedFile() B.accept()和getDescription() C.accept()和setDescription() D.setDescription()和getDescription() 7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( ) A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 浙04747# Java语言程序设计(一)试卷第1页(共12页)

基于JAVAEE的在线考试系统毕业设计论文

基于JAVAEE的在线考试系统 【内容提要】在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统—JAVA 在线考试管理子系统,它包括试题管理、考生管理、试卷管理、试卷自动审批等功能。本论文主要介绍了对JAVAEE在线考试系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线系统的设计过程进行详细的说明。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发 框架与数据库的连接及数据的备份与还原。 【关键词】:JSP, Servlet, Struts, JAVA,MySQL数据库,B/S模式 On-line examination system base on JAVA

Student : CHAO SUN supervisor: WEI MING XIAO 【ABSTRACT】On-line examination system the aim is carry out examination of have no the paper turn a management, can carry on through Internet net or bureau area net to some examinations of categories, convenient school square test the management of duty, also convenient the examinee is particularly suitable for examinee to distribute widely and not easily concentrated of long range education.I mainly develop the system-JAVAEE of the backstage management's on-line examination management sub- system of system and it includes to try the management, on-line creation of a management, examinee to try book, control the constitution that the student examine and try an examination and approval etc. function.This thesis mainly introduced to manage the analysis, design of the sub- system and all processes of the development to JAVAEE's on-line examination.Make use of ER diagram, procedure flow chart etc. to on-line manage the design process of sub- system to carry on expatiation.The full text is totally divided into the design, key technique of the analysis, system of the development project, need to solve, conclusion five part.Develop the main introduction in the project develops on-line examination system purpose, development project of choice and development frame of the assurance of technique;The need analysis introduced the total need of the on-line examination system and the function request of each mold of system piece;The system design introduced the design, system mold of the instruction thought, database of system design the design of the piece;The key technique introduced at concrete carry out need some techniques for solve, such as development frame of integration technique, development frame with The database link and the backup and revivification of data. Keyword: Servlet ,JSP, JAVA,MySql, Model of B/ S

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

java程序设计基础(含参考答案)

“Java程序设计基础”课程习题 一、填空 1.Java程序分两类___Applet___和application,Java Application 类型的程序,程序从 ___main方法___开始执行。 2.定义一个Java类时,通过关键字__extends____指明该类的父类。一个类可以有___1___ 个父类。 3.用public修饰的类称为_公有类或公用类__。用public修饰的类成员称为公有成员。被 说明为public的内容可以被__所有其他类___ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过__import____语句引入。 4.用___private___ 修饰的类成员称为私有成员。私有成员只能在__本类__ 中使用。 5.如果子类定义的成员变量与父类的成员变量同名,称为___方法覆盖___ ,要表明使用 子类的成员变量,可以在成员变量前加上关键字__super___ 。 6.____Object__ 类是Java类库中所有类的父类。 7.Java字符使用__16位的字符集,该字符集成为__Unicode____ 。 8.当子类中定义的方法与父类方法同名时,称子类方法___覆盖___ 父类方法,子类默认 使用自己的方法。使用父类的同名方法,必须用关键字__super__ 说明。 9.Java源程序文件名的后缀是___.java___,Java字节码文件名的后缀是_.class_____。 10.Java类名的第一个字母通常要求___大写___。 11.Java程序由____类__组成,每个程序有一个主类,Java程序文件名应与____主__类的 名称相同。 12.Java__Application_类型的程序需要main()方法,程序从__main____开始执行。 13.布尔型数据类型的关键字是_boolean__ ,占用位数是___1位___ ,有__true__ 和_false_ 两种值。整型数可以采用_十_ 、__八_ 和__十六_三种进制表示。 14.八进制整数以数字__0_开头。十六进制整数以_0x或0X_ 开头。 15.int整型数占用__32位内存。long整型数占用__64 位内存。 16.127L表示__长整型____ 常量。 17.根据占用内存长度将浮点常量分为_double_____ 和__float____ 两种。 18.单精度浮点常量占用__32_ 位内存,双精度浮点常量占用__64 位内存。 19.在Java语言中,字符串“ABC\tD\b\n”中包括__7个字符。 20.数学关系44&&x<9____ 。数学关系x>3且x<=10对应 的Java表达式是_x>3&&x<=10。数学关系x>3或x<-10对应的Java表达式是_x>3||x<-10_。 21.逻辑表达式true&&false&&true的结果是_false_ 。 22.__new__ 运算符的作用是根据对象的类型分配内存空间。当对象拥有内存空间时,会 自动调用类中的构造方法为对象_初始化_。 23.省略访问修饰符的类只能被同_一包_中的类使用,称之具有包访问特性。 24.用public修饰的类称为_公共类_。用public修饰的类成员称为公共成员。被说明为public 的内容可以被_所有类_ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过_import_语句引入。 25.用_private_ 修饰的类成员称为私有成员。私有成员只能在_本类使用。 26.在类中可以定义多个具有相同名称、但参数不同的方法,这种做法称为__方法重载_ 。 27.如果子类定义的成员变量与父类的成员变量同名,要表明使用子类的成员变量,可以在 成员变量前加上关键字__this__。

在线考试系统设计方案

在线考试系统设计方案 一、概述 传统的考试方式组织一次考试至少要经过人工出卷、考生考试、人工阅卷、成绩统计和试卷分析五个步骤。随着考试规模的不断扩大,工作量将会越来越大而且容易出错。因此开发一套在线考试系统具有重要的现实意义: 1、在线考试突破了时空限制。在线考试系统突破了传统考试模式的时间、空间的限制,有利于组织大规模异地实时考试,可以满足任何授权的考生在规定的时间段内在任意时间和可用地点参加考试,大大提高了教学内容和考核方式的灵活性。 2、提高了工作效率。在线考试系统减轻了考试主管部门人员尤其是教师在命题、组卷、阅卷等方面繁重的工作量,提高了工作效率。 3、节省财政开支。在线考试真正实现了无纸化办公,节省了纸张、印刷等考核费用。 4、在线考试更能体现考核的客观公正性。在线考试采用试题库方式提供试卷来源,考前无任何成套试卷,考试时各考生随机抽卷,试卷不完全相同,避免了互相参看导致的不公平成绩。自动阅卷功能增加了考核的透明度,考生在交卷同时看到自己的成

绩,降低了错误出现的概率和教师主观因素的干扰,更能体现考核的客观公正性。 二、“在线考试系统”环境要求 软件环境:开发语言采用JAVA,数据库服务器方面则有MySQL,其灵活性、安全性和易用性为数据库编程提供了良好的条件 三、系统设计方案 系统设计方案描述 该考试系统是基于WEB技术系统开发的一种,采用B/S的三层结构模式,使用jsp动态网页技术开发。不受时间和地域的限制可以随机出题。管理员可以管理角色,并对系统模块、用户等进行处理;教师在题库添加试题,对用户的成绩进行管理。用户则通过选择不同类别的试卷,系统随机生成试卷并开始考试,查询成绩。 在系统设计和开发上,运用软件工程的思想,分析和设计了数据模型和功能模型;给出了主要功能的算法设计,包括题库组织、试卷生成、身份认证、考生答案存储、自动阅卷等。 系统功能需求分析 提供一个基于B/S模式用户接口,能实现在线的用户认证、

Java程序设计习题附答案(一)

Java程序设计题库 第一部分绪论 1、下列关于Java语言的特点,描述错误的是(C) A.Java是跨平台的编程语言B.Java支持分布式计算 C.Java是面向过程的编程语言D.Java支持多线程 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B) A、安全性 B、多线性 C、跨平台 D、可移植 3、Java JDK中调试器的命令是(C)。 A、javac B、java C、jdb D、avah 4、运行jar文件中class文件需要在java命令后面加的参数为(A)。 A、-cp B-g C-d D-verbose 5、下面哪项在java中是不合法的标识符?(C) A、$user B、point C、You&me D、_endline 6、下面关于Java语言说法正确的是(ABCD)。 A、Java语言是面向对象的、解释执行的网络编程语言。 B、Java语言具有可移植性,是与平台无关的编程语言。 C、Java语言可对内存垃圾自动收集。 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。 7、在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。( B) A、源, HTML B、源, 字节代码 C、字节代码, 源 D、HTML, 字节代码 8、Java的JVM是指(B)。 A、由Java操作的家用设备(通常是一个漂亮的小烤箱) B、Java字节代码的解释程序 C、Java源代码的编译器 D、运行Java 所需的硬件设备 9、在Java中,关于CLASSPA TH环境变量的说法不正确的是(A)。 A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B、编译器用它来搜索各自的类文件。 C、CLASSPATH是一个目录列表。 D、解释器用它来搜索各自的类文件。 10、一个可以独立运行的Java应用程序(D)。

《JAVA语言程序设计》期末考试试题及答案

《JA V A语言程序设计》期末考试试题及答案3 一、单项选择题 1、如下哪个是Java中的标识符() A、public B、super C、3number D、width 2、如下哪个是Java中的标识符( ) A、fieldname B、super C、3number D、#number 3、已知如下定义:String s = "story"; 下面哪个语句不是合法的( ) A、s += "books"; B、s = s + 100; C、int len = s.length; D、String t = s + “abc”; 4、如下哪个是Java中有效的关键字() A、name B、hello C、false D、good 5、下面的代码段执行之后count的值是什么( ) int count = 1; for (int i = 1; i <= 5; i++) { count += i; } System.out.println(count); A、5 B、1 C、15 D、16 6、定义一个类,必须使用的关键字是( ) A、public B、class C、interface D、static 7、定义一个接口必须使用的关键字是() A、public B、class C、interface D、static 8、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是() A、p.add(b); B、p.add(b,"North"); C、p.add(b,"South"); D、b.add(p,"North"); 9、声明并创建一个按钮对象b,应该使用的语句是() A、Button b=new Button(); B、button b=new button();

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

在线考试系统JAVA

题目 在线考试系统 1、 实验目的 ①熟练运用JAVA 开发环境及工具、并用JAVA 语言编写程序; ②掌握面向对象的概念; ③掌握系统功能模块的合理划分,并实现各模块接口的连接; ④掌握C/S 结构的编程方法; ⑤设计数据库模型。 2、 实验内容 ①编辑生成试题库,随机生成本次考试试题,同时提供在线评分并保存结果。 ②选择ACCESS 作为后台的数据库。 3、 实验过程 3.1 系统模块部分设计 题库管理:用于对单个试题的增、删、改、查等基本维护,还可对题库进行数据备份和数据还原。我们针对不同题型、不同应用范围及不同科目对试题进行维护。 试卷管理:可进行三种组卷方式的维护:随机组卷、人工组卷、综合组卷。还可对考生的基本信息进行维护。 考试管理:对考试分配试卷,并对考试的基本信息进行维护。相当于人工安排考试的过程 评卷管理:对试卷的客观题分配评卷人,并对评卷人基本信息进行管理。 成绩管理:对每次考试的学生成绩的基本信息进行维护,并提供学生成绩的统计管理。 用户管理:对使用本系统的用户基本信息进行维护,用户多数为:系统管理员、老师、教务处人员、其他 权限管理:对系统的访问权限进行管理,并对用户可进行权限的分配。 系统应该具备的基本功能 各模块需完成以下功能: 在线考试系统 信息管理 评卷管理 试卷管理 题 库管理 成绩管理 考试管理 用户管理 权限管理

题型维护:对试题的题型进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。 范围维护:对试题的应用范围进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。 科目维护:对试题的科目进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。 试题维护:对试题的基本信息进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。 其他维护:对试题信息的批量查询,并可进行数据导出、数据备份、数据恢复。 随机组卷:用户只需对试卷题型进行设置就可组卷的方式。 人工组卷:可使用户选择试卷的题型中的试题的组卷方式。 综合组卷:是随机组卷与人工组卷的混合组卷方式,即用户对某一类型的试题可进行选择,也可对试题不进行选择。 试卷其他维护:对试卷信息的批量查询,对试题的数据备份与还原。 考试信息维护:对考试的时间、地点、监考人、考试用的试卷、试卷总分数及答卷总时间等考试的基本要素进行设置。 考生信息维护:对考试的学生的基本信息进行增、删、改、查操作,在操作之后会自动刷新主页,以使信息更新。 分配评卷人:对考试所用试卷的客观题分配评卷人,并对评卷的基本信息进行维护。 评卷人评卷:对分配试卷的评卷人可以在此进行评卷。 考生成绩维护:对考试的考生成绩信息进行统计与汇总,对有权限的人可进行成 考试管理 考试信息维护 分配评卷人 评卷管理 成绩管理 评卷人评卷 考生信息维护 考生成绩维护 成绩其他维护 题库管理 试卷管理 试卷其他维护 试卷信息维护 其它 维护 试题 维护 基本 维护 综 合组卷 人工组卷 随机组卷 题型维护 科目维护 范围维护

java编程题全集题及答案

J a v a程序设计总复习题 1、编写一个Java程序,用if-else语句判断某年份是否为闰年。(分支) // Programme Name LeapYear.java public class LeapYear{ public static void main(String args[]){ int year=2010; if(args.length!=0) year=Integer.parseInt(args[0]); if((year%4==0 && year%100!=0)||(year%400==0)) 年是闰年。"); else 年不是闰年。"); } }//if-else语句 2、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。(循 环) // programme name ForTest.java public class ForTest { public static void main( String args[] ) { int i,j,mul,sum=0; for(i=1;i<=10;i++) { mul=1; for(j=1,j<=i;j++) { mul=mul*j; } sum=sum+mul; } “1!+2!+3!+……+10!= ”+sum); } } 3、依次输入10个学生成绩,判断学生(优秀、良好、中等、及格、不及格) 并计算人数(switch) 4、使用冒泡排序(数组) public class BubbleSort { public static void main(String[] args) {

在线考试系统的设计和实现(毕设参考)

软件工程课程设计设计说明书 考试系统的设计与开发 学生姓名 学号 班级 成绩 指导教师 数学与计算机科学学院 2012年12月26日

软件工程课程设计评阅书

课程设计任务书 2012 —2013 学年第一学期 专业:学号:姓名: 课程设计名称:软件工程课程设计 设计题目:考试系统的设计与开发 完成期限:自2012 年12 月17 日至2012 年12 月28 日共 2 周设计依据、要求及主要内容(可另加附页): 指导教师(签字):教研室主任(签字): 批准日期:年月日

在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统—JAVA在线考试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能。本论文主要介绍了对JAVA在线考试管理子系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线管理子系统的设计过程进行详细的说明。 关键词:在线考试;j2EE

1 课题描述 (3) 1.1 开发背景 (4) 1.2 系统开发目标 (4) 1.3 开发工具的选择 (4) 2 需求分析 (2) 2.1 背景分析 (2) 2.2 可行性分析 (2) 2.2.1 技术可行性分析 (2) 2.2.2 经济可行性 (2) 2.2.3 方案可行性 (2) 2.3 概要设计 (2) 2.4 总体设计 (3) 2.4.1 系统的功能模块图 (3) 2.4.2 系统功能模块 (4) 3 数据库设计 (5) 3.1数据字典 (5) 3.2 数据库的连接 (7) 4 详细设计 (8) 4.1 公共类设计 (8) 4.2 在线考试模块设计 (9) 4.3 查看考生试卷模块设计 (10) 4.4 考试设置信息维护模块设计 (10) 4.5 用户管理模块设计 (11) 5 程序调试与测试 (1) 5.1 系统运行环境 (1) 5.2 测试目的 (1) 5.3 各功能模块测试 (1) 5.3.1 在线考试模块测试 (1) 5.3.2 查看试卷测试 (2) 5.3.3 管理员模块 (3) 5.3.4 用户管理模块测试 (5) 总结 (7) 参考文献 (8)

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

java语言程序设计课后习题答案

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; =str2); ; public class Exercise51{ public static void main(String[] args) throws IOException{ "请输入一个整数:"); InputStreamReader isStream=new InputStreamReader; BufferedReader bfReader=new BufferedReader(isStream); String input=(); int length=()-1; int n=new Integer(input).intValue(); while(length>=0){ int divisor=(int) (10,length); length=length-1; int output=n/divisor; n=n%divisor; ","); } } } 法二:(建议使用) public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; thousand=n/1000%10; hundred=n/100%10; decimal=n/10%10; unit=n%10; "1678包含的数字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } ;

基于Java的在线考试系统

基于J a v a的在线考 试系统 Revised on November 25, 2020

存档日期:存档编号: 本科生毕业设计(论文)论文题目:基于Java的在线考试系统 Java-Based Online Examination System 姓名: 系别: 专业: 年级、学号: 指导教师: ××大学印制

基于Java的在线考试系统 摘要:为了帮助学生更好地掌握所学的知识。本人设计了一套在线考试系统。本系统所设计的用户有管理员教师,参加练习或考试的学生和对考试进行打分的评分老师这三种身份。本系统可以根据管理员教师的意愿进行科目,试题以及试卷的管理。本系统的开发模式为B/S模式。开发平台为,所用的数据库是MySQL数据库,服务器是。所用到的主要开发语言是Java,HTMl,与JavaScript。本系统的主要特点是:操作容易,结构简单。学生利用本系统,能够更加及时的进行练习和考试。教师利用本系统可免去统计成绩,录入考试分数等繁琐的工作提高了工作效率。 关键词:在线考试B/S MySQL Java Java-Based Online Examination System Abstract:In order to help students to better understand what they have learned. I designed a set of online examination system.. This system is designed for users with three roles include administrators; students who want to participate in exercises or join in examinations and the rating teachers. The system can edit the curriculums,tests and papers according to the administrators wishes. This system uses the B / S development the development platform is , the database is MySQL and the server uses . The main development language used by the Java, HTMl, and JavaScript.Easy to operate and simple structure are the main feature of this system Students can do exercises and exam more timely with this system.This system can improve the efficiency of teachers and they do not have to worry about statistical results, entry test scores anymore. Keywords: Online exam B/S MyEclipse MySQL Java

Java程序设计-习题参考答案

参考答案 第1章 3、计算机系统由哪两部分组成的?计算机硬件结构由哪几部分组成?它们各自有什么作用? 一台计算机由硬件和软件组成。一台典型的计算机由五大部分组成。这五大部分是:运算器,控制器,存储器,输入设备和输出设备。 运算器是执行算术运算和逻辑运算的部件。 控制器是向计算机其他部分发送命令的部件。 存储器是计算机用来存储数据、信息的部件。 输入设备就是外界向计算机输入信息设备。 输出设备恰好与输入设备的作用相反,它将处理过后的信息输出呈现给用户。 9、将以下十进制数转换为对应的二进制数 (1)32 (2)97 (3)256 (4)500 (1)100000 (2)1100001 (3)100000000 (4)111110100 第2章 1.Java语言有哪些主要特点。 平台独立性 安全性 多线程 网络化 面向对象 3.Java Application的开发步骤有哪些。 Java Application的开发步骤: (1)下载JDK软件并安装; (2)配置相应的环境变量(path和classpath); (3)编写Java源程序(文本编辑器或集成开发环境IDE); (4)编译Java源程序,得到字节码文件(javac *.java); (5)执行字节码文件(java 字节码文件名)。

4.什么是环境变量,设置环境变量的主要目的是什么。 环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。 第3章 1.Java语言对于合法标识符的规定是什么?指出以下哪些为合法标识符。 a a2 3a *a _a $a int a% 在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。另外,Java语言对标识符的有效字符个数不做限定。 合法的标识符: a a2 _a $a 5.数据类型强制转换的原则是什么?如何转换? 对于变窄转换,如long到short、double到float,或者不兼容转换:float到short、char 到short等,则需要进行强制转换。 float f = 11.5; short b ; b = (short)f; (强制转换) 第4章 5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。 public class Test { public static void main(String[] args) { int a,b,c,x=100; while(x<1000){ a=x%10; b=(x%100-a)/10; c=(x-x%100)/100; if(a*a*a+b*b*b+c*c*c==x) System.out.println(x); x+=1;

《Java语言程序设计(一)》(课程代码04747)

《Java语言程序设计(一)》(课程代码04747) 第一大题:单项选择题 1、下列字符组合不能作为Java整型常量的是( ) ? A.078 ? B.0x3ACB ? C.5000 ? D.0x3ABC 参考答案:A 2、以下程序代码的输出结果是( ) int x = 10; while (x > 7) { System.out.print("*"); x--;} ? A.** ? B.*** ? C.* ? D.**** 参考答案:B 3、设类U声明,及对象u和v的定义如下: class U{ int x, int y; U(int a, int b){x= a; y = b;} void copy(U a){ x = a.x; y = a.y;} } U u = new U(1, 2), v = new U(2, 3); 在以下供选择的代码中,可能引起系统回收内存的是( ) ? A.u.x=v.y;u.y=v.x

? B.u=v ? C.u.copy ? D.v.copy(u) 参考答案:B 4、设有以下代码: String s l="123"; String s2="123"; String s3=new String("123"); 则表达式s1==s2和s1==s3的值分别是( ) ? A.true,true ? B.false,false ? C.true,false ? D.false,true 参考答案:C 5、以下关于AWT与Swing之间关系的叙述,正确的是( ) ? A.Swing是AWT的提高和扩展 ? B.在写GUI程序时,AWT和Swing不能同时使用? C.AWT和Swing在不同的平台上都有相同的表示? D.AWT中的类是从Swing继承的 参考答案:A 6、在以下Swing组件中,能为它指定布局管理器的是( ) ? A.JScrollBar对象 ? B.JMenuBar对象 ? C.JComboBox对象

相关主题