JAVA语言上机考试系统的设计与实现Word文档下载推荐.docx
- 文档编号:21677252
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:20
- 大小:575.93KB
JAVA语言上机考试系统的设计与实现Word文档下载推荐.docx
《JAVA语言上机考试系统的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVA语言上机考试系统的设计与实现Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
实现人与计算机相结合过程中的自动化。
将考试与Web技术相结合,具有很大的灵活性和适应性。
在线考试系统使用户能通过浏览器透明地应用于不同机型、不同运行平台组成的计算资源与信息资源,借助信息共享的分布式计算技术完成一系列考试。
1.1选题的目的和意义
该考试系统采用开放、动态的系统架构,将传统的考试模式与先进的网络应用相结合;
它可以是专门用于试题录入、查询、修改、删除、组卷以及参加在线考试。
该系统应该操作简单方便、界面简洁,被授权的考试用户不管身处何地,通过网络浏览器即可登录网络考试系统。
系统提供考试时间倒计时功能,使考生随时了解考试剩余时间;
实现自动提交试卷的功能,系统可自动交卷,保证考试严肃、公正地进行。
通过这种新的考试模式,可以为学校创造一种新的考试环境,使考务管理突破时空限制,提高考试工作效率和标准化水平,进而使教师和学生可以随时、随地通过网络完成考试,真正体现了教学中高效、科学、现代化的考试特点。
2系统分析
2.1需求分析
首先,考试是面向特定的某些对象(学生,教师)的,所以用户进入系统应该进行身份验证。
学生进入考试系统后,应该能根据自己的需要进行个人信息的修改、考试系统的进入、考试成绩的查看等。
系统还应该对考试时间进行控制,时间到了会要求考生交卷。
考生选择答案提交后,应该由计算机自动判卷,得到成绩后显示出来。
考试完毕后,可以返回继续考试或退出系统。
此外,应该能够方便、快捷的对在线考试系统管理。
教师登陆系统后,可以实现录入试题或删除试题,生成试卷、发布试卷、删除试卷信息、添加或删除学生和教师信息,编写并发布公告和新闻等功能。
2.2系统可行性分析
2.2.1经济可行性分析
近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入信息时代,在这数字化的时代里,Internet技术持续迅猛的发展,也给传统的考试模式提出了新的要求。
随着信息时代的到来,各类计算机考试也应运而生,这类考试多为上机考试,因此,考试的环境,即考试系统的设计和实现非常重要。
在某些时候可以通过网络的便利来解决传统考试模式中的一些缺陷。
特别在高等学院中,把网络考试系统与传统的考试相结合将是一趋势。
所以使用在线考试,让使用者不需要高额的经济费用,这样的话,在经济可行性分析中是可行的。
2.2.2技术可行性分析
随着java网络编程的不断发展,使用java开发网络版管理系统已经变的越来越普及,在技术可行性上完全成立。
综上所述,此系统开发目标已明确,在技术和经济等方面都可行。
2.3系统开发工具
本系统的开发使用java编程方面常用的MyEclipse工具,数据库使用MySQL,数据库可视化界面使用MySQL-Front,页面布局使用Dreamweaver,图片处理使用Photoshop。
3功能模块
本系统应该具有学生登录、学生考试、教师登录、试题管理、用户管理等功能,根据这些功能可以画出系统的功能模块图,如图3-1所示。
图3-1系统功能模块图
学生模块如图3-2所示。
学生模块包括学生登录、修改密码、参加考试、退出系统四个模块。
图3-2学生模块
教师模块如图3-3所示。
教师模块包括教师登录、修改密码、成绩查询、试题管理、用户管理、试题管理、公告管理、退出系统。
图3-3教师模块
试题管理模块如图3-4所示。
包括录入试题、生成试卷、查看试卷发布试卷。
图3-4试题管理模块
用户管理模块如图3-5所示,包括增删学生用户、查看学生名单、增删教师用户、查名教师单看。
图3-5用户管理模块
4数据库设计
4.1数据字典
表4-1t_user(用户信息表)
字段名
描述
类型
主键否
Id
自动编号
Int
是
trueName
真实姓名
Varchar
否
Age
年龄
Sexuality
性别
idCard
身份证
Duty
职务
Phone
联系电话
t_user(用户信息表)用于存放教师的详细信息,包括编号、姓名、年龄、性别、身份证号、所担任的职务及联系电话。
表4-2t_login(用户登录表)
Username
登录名
Password
登录密码
t_login(用户登录表)用于存放教师的信息,只有符合该表信息的学生才可以登录考试系统参加考试。
表4-3t_stu(学生信息表)
No
学号
Grade
年级
Classesid
班级编号
外键
t_stu(学生信息表)用于存放学生的详细信息,包括编号、姓名、学号、性别、年级、班级编号。
表4-4t_stulogin(学生登录表)
Varhar
t_stulogin(学生登录表)用于存放学生的登录信息,只有符合该表信息的学生才可以登录考试系统参加考试。
该表与t_stu(学生信息表)是一一对应的关系,只有两个表中都有且正确的情况下,才能够登录成功。
表4-5t_classes(班级表)
Name
名称
t_classes(班级表)存放的是为每一个班级的编号。
表4-6t_tiku(题库信息表)
是否主键
Kind
种类
Fenzhi
分值
t_tiku(题库信息表)存放的是题库中所有JAVA语言考试题目的信息,有题目的编号,题目所占的分值,题目分类等信息。
表4-7t_answer(标准答案表)
answer
选项
Value
答案
Isright
是否正确答案
Tiku_id
题目编号
t_answer(标准答案表)中存放的是题库中所有JAVA语言考试试题的选项、选项的内容、是否正确选项及所对应的题目的编号。
表4-8t_jzinfo(试卷信息表)
Title
标题
createName
编题人
t_jzinfo(试卷信息表)存放的是JAVA语言试题信息,包括标题和编题人等信息。
表4-9t_juanzi(试卷详细信息表)
shijuanid
试卷编号
Class_Id
t_juanzi(试卷详细信息表)中存放的是教师发布的JAVA语言考试试卷的编号、试卷上的题目的编号及参加该试卷考试的学生所属班级编号。
表4-10t_news(新闻信息表)
内容
t_news(新闻信息表)中存放的是新闻栏刊登过的信息的编号,标题及内容。
5系统详细设计
本系统遵照MVC开发模式,使用JAVA的SSH三层结构,利用Ajax的异步刷新做数据的验证,即用户注册页面的用户名是否存在,主要利用Ajax中的jquery来实现,它是javascript的封装,能将我们从繁琐的javascript代码中解放出来。
数据库操作方面使用Hibernate,在面向对象的开发过程中,由于现在的数据库都是关系数据库,Hibernate很好的完成了对象和关系数据库的映射,其中的每个实体通过一个唯一的.hbm的Hibernate配置文件,本程序中用到的关系映射主要有:
双向一对一关联,<
onetoone/>
,主要表现在t_user和t_login,t_stu和t_stulogin等具有一对一关联的数据表。
其次使用了较多的多对对的关系映射。
本系统使用Struts,这样将MVC表现的更清楚,在页面中只是调用需要的数据,并没有做大量的业务逻辑的算法,使页面都是表示层的代码,成功的将View层从系统中区分出来,有利于系统的二次开发。
使用Action做控制层,由它来调用业务逻辑层的算法,实现系统的需求。
由于Hibernate本身是针对事务处理的,在单独的Hibernate开发中经常要得到一个SessionFactory和得到一个事务gettrancation,开启一个事务beginTrancation,和事务提交commit,这样没一个业务逻辑中都有相同的代码,非常繁琐,另外手动的开启事务,会造成Session中有的事务没有开启,有的没有关闭,所以我选用Spring,主要是实现两个功能,动态代理和注入。
所谓的动态代理就是将所有的Hibernate和struts服务中需要手动做的东西都通过applicationContext-*.xml文件配置起来,用Spring框架来代理,像本程序中的试卷和题库中的题目是一对多的关系,即:
每张试卷可以有多个题,每个题也可以对应多张试卷,但是在Hiberate中经常将多对多的映射关系分开了表述,表述成两个多对一的映射关系。
<
manytoone/>
。
本程序最主要的是搭建SSH(Struts+Spring+Hibernate)框架,主要是web.xml,applicationContext-*.xml和struts-config.xml文件的配置。
我将Spring对struts和Hibernate的集成配置在applicationContext-common.xml文件中
applicationContext-beans.xml文件主要配置的是Dao文件,实现的是Spring的注入功能,这样我们在Action中将不再使用newDao()这样的做法,只需要申明一个对象,给他定义一个Set方法,Spirng框架会自动根据applcationContext-beans.xml中的配置将申明的对象注入到程序中。
applicationContext-action.xml文件重要实现的是Spring对action的动态代理:
在传统的struts独立的使用过程中我们需要在struts-congfig.xml文件中配置<
action-mapping>
/action-mapping>
其中的type需要配置具体的action累,而在Spring集成后,我们需要将原来struts-config.xml中的type配成固定的org.springframework.web.struts.DelegatingActionProxy,该类为Spring对struts集成的代理类。
本系统中的学生答题界面中的时间设置,运用Ajax计算,ajax中的jquery主要是封装了javascript,在开始答题按钮的onclick事件中调用ajax代码,需要注意的是使用ajax时,必须首先引入jquery.js,否则的话,ajax代码是不会实现的。
5.1系统开发技术
本系统采用B/S模式开发,个人选择的编程语言为java网络编程,采用常见的MVC开发模式,将业务逻辑和代码分开,便于程序的二次开发及修改,前台页面使用JSP(JAVASERVERPAGE)和EL表达式(expressionlanguage,即表达语言),实现页面的显示,服务器使用Tomcat开源服务器,系统以Spring框架为核心,向下整合Hibernate进行持久层访问,向上整合Strusts按照清晰的MVC模式控制,可以清晰划分应用的层次,提高系统灵活性,提供代码的可扩展、可维护及可服用性等,本系统示范了一种非常优秀的J2EE应用框架,并涉及到如下开源框架:
Hibernate、Spring、Struts等,数据库采用MySql,数据库可视化界面使用MySQL-Front。
在实现页面中的倒计时,使用Ajax脚本语言。
把从数据库中读出的时间赋值给javascript变量,然后用javascript实现倒计时。
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="
utf-8"
%>
%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"
:
//"
+request.getServerName()+"
"
+request.getServerPort()+path+"
/"
;
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
>
html>
<
head>
basehref="
%=basePath%>
title>
MyJSP'
B.jsp'
startingpage<
/title>
metahttp-equiv="
pragma"
content="
no-cache"
cache-control"
expires"
0"
keywords"
keyword1,keyword2,keyword3"
description"
Thisismypage"
--
linkrel="
stylesheet"
type="
text/css"
href="
styles.css"
-->
/head>
body>
ThisismyJSPpage.<
br>
scripttype="
text/javascript"
vartime=<
%=考试时长%>
vart=setInterval("
f1()"
1000);
functionf1()
{
document.all("
time"
).innerHTML="
剩余"
+time+"
秒"
time--;
if(time<
0)
clearInterval(t);
}
/script>
divid="
/div>
/body>
/html>
5.1.1MVC模式简介
MVC(Model-View-Controller,即模型层-视图层-控制层)是一种设计模式,MVC模式的目的就是实现Web系统的职能分工,它强制性地把应用程序的输入、处理和输出分开。
MVC把应用程序分成3个核心:
模型层、视图层和控制层,它们分别担负不同的任务。
模型层:
模型层是应用程序的主体部分。
模型层表示业务数据和业务逻辑。
一个模型层能为多个视图提供数据。
视图层:
视图是用户看到并与之交互的界面。
视图向用户显示相关的数据,并能接受用户的输入数据。
视图可以向模型查询业务状态,但不能改变模型。
视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
控制层:
控制层接受用户输入并调用模型和视图去完成用户的需求。
当Web用户单击Web页面中的“提交”按钮来发送HTML表单时,控制层接受请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。
MVC处理过程:
首先,控制层接受用户的请求,并决定应该调用哪个模型来进行处理;
其次,模型根据用户请求进行相应的业务逻辑处理,并返回数据;
最后控制层调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。
MVC的优点:
MVC从根本上强制性地将HTML代码和JAVA代码分开。
5.1.2Struts简介
struts是开源软件。
使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
对于采用Struts框架的WEB应用,在WEB应用启动时就会加载并初始化ACTIONSERVLET,ACTIONSERVLET从Struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如ACTION的映射信息存放在ACTIONMAPPING对象中。
当ACTIONSERVLET接收到一个客户请求时,将执行如下流程。
①检索和用户请求匹配的ACTIONMAPPING实例,如果不存在,就返回用户请求路径无效的信息。
②如果ACTIONFORM实例不存在,就创建一个ACTIONFORM对象,把客户提交的表单数据保存到ACTIONFORM对象中。
③根据配置信息决定是否需要表单验证。
如果需要验证,就调用ACTIONFORM的VALIDATE方法。
④如果ACTIONFORM的VALIDATE方法返回NULL或返回一个不包含ACTIONMESSAGE的ACTIONERRORS对象,就表示表单验证成功;
如果ACTIONFORM的VALIDATE方法返回一个包含一个或多个ACTIONMESSAGE的ACTIONERRORS对象,就表示表单验证失败,此时,ACTIONSERVLET将直接把请求转发给包含用户提交表单的JSP组件,在这种情况下,不会再创建ACTION对象并调用ACTION的EXECUTE方法。
⑤ACTIONSERVLET根据ACTIONMAPPING实例包含的映射信息决定将请求转发给哪个ACTION,如果相应的ACTION实例不存在,就先创建这个实例,然后调用ACTION的EXECUTE方法。
⑥ACTION的EXECUTE方法返回一个ACTIONFORWARD对象,ACTIONSERVET再把客户请求转发给ACTIONFORWARD对象指向的JSP组件。
⑦ACTIONFORWARD对象指向的JSP组件生成动态网页,返回给客户。
5.1.3Hibernate简介
Hibernate是一个高性能、开发源码的持久框架,是对象/关系映射的解决方案。
简单的讲,就是JAVA中的对象实体及实体之间的关系数据库中的表及表之间的关系,Hibernate提供了这个过程中的自动对应转换方案。
它不仅提供了基础的对象/关系映射,而且支持所有其他的复杂功能,如缓存、延时加载、主动抓取、分布式缓存等。
Hibernate框架是JAVA应用和关系数据库之间的桥梁,它负责JAVA对象和关系数据库之间的映射,在Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API,它的主要特点有以下几方面:
协调应用与关系数据库的交互,让开发者专心于业务问题的解决,它可以与大多数新的或者现有的应用平稳的集成。
它对JDBC进行了非常轻量级的对象封装,JAVA程序员可以随心所欲地使用对象编程思维来操作数据库。
Hibernate可以应用在任何使用JDBC的场合,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 语言 上机 考试 系统 设计 实现
