基于Java的在线考试系统.docx
- 文档编号:16073183
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:31
- 大小:52.42KB
基于Java的在线考试系统.docx
《基于Java的在线考试系统.docx》由会员分享,可在线阅读,更多相关《基于Java的在线考试系统.docx(31页珍藏版)》请在冰点文库上搜索。
基于Java的在线考试系统
RevisedonNovember25,2020
基于Java的在线考试系统
存档日期:
存档编号:
本科生毕业设计(论文)
论文题目:
基于Java的在线考试系统
Java-BasedOnlineExaminationSystem
姓名:
系别:
专业:
年级、学号:
指导教师:
××大学印制
基于Java的在线考试系统
摘要:
为了帮助学生更好地掌握所学的知识。
本人设计了一套在线考试系统。
本系统所设计的用户有管理员教师,参加练习或考试的学生和对考试进行打分的评分老师这三种身份。
本系统可以根据管理员教师的意愿进行科目,试题以及试卷的管理。
本系统的开发模式为B/S模式。
开发平台为,所用的数据库是MySQL数据库,服务器是。
所用到的主要开发语言是Java,HTMl,与JavaScript。
本系统的主要特点是:
操作容易,结构简单。
学生利用本系统,能够更加及时的进行练习和考试。
教师利用本系统可免去统计成绩,录入考试分数等繁琐的工作提高了工作效率。
关键词:
在线考试B/SMySQLJava
Java-BasedOnlineExaminationSystem
Abstract:
Inordertohelpstudentstobetterunderstandwhattheyhavelearned.Idesignedasetofonlineexaminationsystem..Thissystemisdesignedforuserswiththreerolesincludeadministrators;studentswhowanttoparticipateinexercisesorjoininexaminationsandtheratingteachers.Thesystemcaneditthecurriculums,testsandpapersaccordingtotheadministratorswishes.ThissystemusestheB/Sdevelopmentthedevelopmentplatformis,thedatabaseisMySQLandtheserveruses.ThemaindevelopmentlanguageusedbytheJava,HTMl,andJavaScript.EasytooperateandsimplestructurearethemainfeatureofthissystemStudentscandoexercisesandexammoretimelywiththissystem.Thissystemcanimprovetheefficiencyofteachersandtheydonothavetoworryaboutstatisticalresults,entrytestscoresanymore.
Keywords:
OnlineexamB/SMyEclipseMySQLJava
1绪论
引言
考试在教学中是必不可少的,可以检验学生对知识的掌握程度和学习能力的高低。
对学生来讲,适当的测试压力有助于巩固所学的知识,训练基本技能,开发智力,发散思维,提升学生分析问题解决问题的能力。
然而考试的形式有很多种除了我们传统的纸质习题外,我们也应该顺应时代的发展开发出一种更加方便快捷和容易操作的系统——在线考试系统。
这个设计不仅学生和老师的学习和工作带来了方便还能够节省教学资源,节约了传统考试所需纸张的问题也能为环保事业做出一些贡献。
本设计需要对网络编程和相关数据库的技术有所了解。
还需会使用一些相关的应用软件和开发工具。
选题背景
新世纪的到来和科学技术的快速发展将我们带入了信息时代,在当今这个高速发展的时代里计算机日趋成为我们生产生活中必不可少的工具。
然而对于学生来说计算机技术的发展将给我们的学习方式和教育方法带来翻天覆地的变化。
因此计算机网络技术的发展对教学和考试的方式方法起到了导向性的作用。
这些技术可以极大的推动教育的发展,创新教学模式推进教学改革。
为教育的升级创造必要的条件。
本设计主要为了探索一种基于计算机网络技术的教学模式。
在本次设计中学生用户可以突破纸质学习资料的局限性使用计算机进行在线测试与考试,能够更加及时的巩固新知识从而增强学习效果提高教学的质量。
国内外发展情况
网络技术的发展使得考试的形式发生了革命性的变化。
因特网强大的计算能力与其开放性,分布性的特点将考试的工作变的方便而有效率,解放了部分人力和物力。
因此基于网络的考试系统越来越受国内外教育机构的重视。
在一些发达国家基于网络的教育已进入更加深入的阶段。
教育机构将网络技术与课程的巧妙结合使得网络技术在教学中的作用更加明显也让学生们的学习变的轻松快乐。
一些发达国家电脑已普及,远程教育的参加人数正日益递增。
在中国,网络的教育刚刚兴起,还在摸索着前进。
能够将计算机网络技术与教学结合很好的教育机构还比较少。
我们平时在学校中接触最多的是基于小型局域网的教学教室。
相比于有一些发达国家我国在网络教学方面相对落后,还处于较为初级的阶段。
系统开发方法
目前C/S模式(客户端/服务器模式)和B/S模式(浏览器/服务器模式)是应用软件运行的主要的模式。
C/S模式的响应速度快处理事务的能力强但兼容性差开发成本较高。
而B/S模式是伴随因特网迅速发展而兴起的一种技术,它的客户端是一个标准的浏览器,服务器端方面是WebServer,然而B/S模式能被广泛应用是因为WebSever与应用服务器和数据库的紧密结合。
B/S模式的主要优点就是方便扩充应用和升级维护。
因此,本系统采用B/S模式进行设计。
本次设计结合当前计算机的价格走势,应用JSP技术,基于B/S模式开发了在线考试系统。
它使用简单、容易操作,界面友好,非常实用。
虽然现阶段还有许多不成熟的地方,但是已具有用户管理、科目管理、试卷管理、试题管理、在线考试等功能。
基本实现了真正的无纸化习题练习与考试的作用。
能够满足任何经过授权的考生随时随地练习并迅速获得成绩。
2系统开发相关技术与工具简介
JSP技术简介
在互联网普及和发展的最初阶段,Web应用全部是静态的HTML页面。
这种静态页面不具有有用户交互的能力和动态显示功能。
RasmusLerdorf在1994年发明了专门用于WEB服务器端编程的PHP语言。
PHP语言将HTML和PHP指相结合成为完整的服务器端动态页面,从而使开发者更加简便快捷的方式实现动态交互技术。
直到1996年,微软公司参照PHP的思想开发出了ASP(ActiveServerPage,意为“动态服务器页面”)成为新一代WEB交互技术。
当ASP技术作为动态网络开发技术快速成为Windows系统下的WEB服务端的主流开发技术时,由SUN公司带领的Java团队1997年发布Servlet技术;1998年,SUN公司发布JSP标准。
JSP和ASP两者都是动态WEB编程技术,都可以嵌入HTML中,但是他们的运行机制不同,这主要是因为ASP使用VBScript作为脚本语言,无需编译;而JSP则使用Java作为脚本语言,JSP必须编译成Servlet,才可以执行JSP页面。
JSP和Servlet,JavaBean技术的组合,大大提高了编译运行的执行效率,并逐渐发展成为J2EE平台的核心技术之一。
JSP工作原理
JSP页面是由HTML代码和嵌入其中的Java所组成的。
当页面被客户端请求访问,则服务器就开始处理这些Java代码然后将生成的HTML页面返回给客户端浏览器。
JSP不仅具备了Java技术的方便快捷和完全面向对象等特点,而且具有平台无关性和安全可靠性。
JSP是服务器端技术,在服务器端,JSP引擎解释并执行JSP页面的代码,然后将执行结果以HTML或XML页面的形式发送给客户端,而在客户端却看不到JSP页面本身的代码,只能看到JSP页面执行后的输出结果。
MySQL数据库简介
MySQL是一个多用户、多线程的SQL数据库服务器。
SQL即结构化查询语言是当今使用广泛的和标准化的数据库语言。
MySQL通过一个C/S结构来实现并由一个服务器守护程序mysql与一些不同的客户程序和库组成。
MySQL的开发者是来自瑞典的MySQLAB公司。
如今互联网上有很多中小型网站在使用MySQL数据库。
MySQL吸引开发者的原因有很多。
第一,MySQL运行速度很快。
据开发者声称MySQL数据库的运算速度可能是在目前数据库中最快的。
第二,使用方便。
MySQL性能很强大而又相对简单,相比于其他更大系统的设置与管理,其复杂程度较低。
第三,经济实惠。
MySQL对于一般的内部使用通常是免费的。
第四,支持查询语言。
MySQL可以利用所有现代数据库系统都选用的语言即SQL语言。
也可以利用支持ODBC(开放式数据库连接)的应用程序。
第五,功能强大。
服务器可以被多个客户及同时连接还能同时使用多个数据库。
第六,连接性和安全性较高。
MySQL数据库是完全网络化的,它能在互联网上的任何地方进行访问,可以同任意地方的任何人共享数据库。
而且MySQL还能进行访问控制,可以有选择的规定访问人员有效的保护隐私。
第七,可移植性。
MySQL能够在各种版本的UNIX和其他非UNIX的系统上运行。
JDBC技术与系统数据库的连接
JDBC(JavaDataBaseConnectivity)是Java数据库连接技术的简称,是Java与一些数据库之间连接的一种标准,此种连接独立于数据库。
一组Java类与接口可以组成JDBC。
JDBC是Java程序和数据库系统通信的标准API,通过调用这些Java类和接口所提供的方法,能够连接不同的数据库,并且对数据库进行操作。
使用JDBC一般可以完成一下事情。
1,加载JDBC驱动程序;2,建立一个数据库连接;3,向数据库发送SQL语句;
4,处理数据库返回的结果;5,关闭相关链接。
一般来讲,使用JDBC开发数据库应用可以分为:
装载JDBC驱动程序,建立与数据库的连接,执行SQL语句,处理结果和关闭数据库连接这几步。
下面进行详细介绍:
对于数据库操作首先要加载所需数据库的驱动程序然而这些驱动程序的装载操作是非常简单的,只需要代码即可完成即调用Class类中的静态方法forName()方法,其格式为:
(“DriverName”);
其中,DriverName为要加载的数据库名称。
如果该方法不能够找出指定的驱动程序类名,则会弹出ClassNotFoundException异常,这就需要我们捕获这个异常。
如加载JDBC-MySQL数据库驱动程序代码如下:
try{
}catch(ClassNotFoundExceptione){
();
}
装载JDBC驱动程序类后可建立数据库的连接。
数据库的连接方法可通过调用驱动程序管理器DriverManager对象的getConnection()方法,返回Connection对象来完成数据库的连接。
[1]代码如下所示:
Connectionconn=(url);
其中,字符串url作为参数,为JDBC的url,如果可以建立连接,就能返回一个Connection对象,该对象表示与数据库的会话过程。
接口,并且效率要比Statement接口高。
因为PrepareStatement类的对象将会传入的SQL命令事先编好并等待使用。
因此使用PrepareStatement更好。
创建Statement对象的代码如下:
Statementsql;
sql=();
可以通过Statement对象来调用相应的方法对数据库完成增,删,查,改等操作。
通过SQL语句返回从数据库中检索到的符合条件的记录,然后可以使用Statement接口executeQuery方法返回的结果集ResultSet接口类型的对象来获取并处理该结果。
当访问完整数据库后,应关闭数据库连接,并释放与链接有关的资源,用户创建的ResultSet或Statement对象将自动关闭,只需调用Connection接口的close()方法即可。
例如关闭结果集对象,关闭语句对象,关闭连接的代码如下:
();
();
();
NavicatforMySQL简介
NavicatforMySQL是MySQL数据库的管理和开发工具它不仅为软件开发者提供了很多尖端的工具,而且对于初学者学习还是很容易的。
此软件基于Window平台并为MySQL量身订做,提供类似于MySQL的用户管理工具。
NavicatforMySQL的出现将节省程序员以及数据库设计人员的开发时间和精力,降低了软件开发的成本,大大提升软件开发的效率。
此软件界面友好,实用性强,上手容易。
WEB服务器与超文本标记语言
在本次设计中,选择使用的是服务器。
Tomcat是一个实现JAVAEE标准的最小WEB服务器。
Tomcat服务器是Apache组织开发的能够从网络上直接下载。
超文本标记语言(HTML)是一种简单标记语言用来制作超文本文档,而HTML中的元素是HTML语言的基本部分。
这些元素总是成对出现的,每一对元素一般都有一个开始的标记(如
),也有一个结束的标记(如:)。
元素的标记要用一对尖括号括起来,并且结束的标记总是在开始的标记前加上一个斜杠。
[1]
3系统分析及其基本功能
可行性分析
可行性分析主要是在系统调查的基础上对要开发的系统进行全面的评估。
从开的技术、开发经费、系统的实用性等方面对新系统进行分析和研究。
考察新系统的开发是否有意义和可能性,来避免投资失败,并保证新系统的开发能够成功。
可行性研究的目的就是以尽可能小的代价和尽量短的时间内来分析将要开发的项目会遇到困难并评估这些困难能否被克服。
本设计的可行性分析包括如下方面:
(1)系统是否经济:
作者认为本系统开发经费较小在经济上完全可以接受,而且本设计在投入使用以后可以节省一些人力物力,提高教学工作与学习的效率。
所以本设计在经济上是可行的。
(2)本系统技术上是否可行:
本次设计使用的是B/S开发模式运用JSP开发技术和MySql数据库。
如今这些技术的发展已经比较成熟因此能够大大的增加本设计开发成功的几率。
可以说本次设计在技术上也是可行的。
通过以上分析,本次设计已经有了明确的开发目标而且在技术和经济等方面都是切实可行的,投入少、见效快。
因此在线考试系统完全可行。
系统需要解决的主要问题
首先,因为在线考试是面向特定的某些对象的,所以本次设计的用户角色会分为管理员教师,考生,以及评分教师这三种。
不同角色的使用权限也会有所不同。
本设计需要解决管理员教师对人员,课程,题目还有试卷的管理问题;考生能够进行自我测验,在线考试并且查询考试的成绩;评分教师完成对考生提交过的试卷进行评分等问题。
系统基本功能
一,管理员教师的功能:
1,对管理员的管理:
修改管理员的密码,录入新的管理员,删除已存在的管理员。
2,管理学习的课程:
能够决定在系统中应用的课程。
3,管理所有题目:
在相应的课程下添加或删除题目。
4,出试卷:
决定试卷中包含的试题,以及考试时间。
5,管理学生:
录入能使用本系统的学生和删除过了期限的学生。
6,管理评分教师:
录入有资格打分的教师,删除离职教师。
7,查看所有考试成绩:
对本系统的所有考试成绩一览。
二,考生的功能:
1,单选题的自我检测:
考生进行自测并快速得到答案。
2,在线考试:
参与在线考试。
3,查看考试成绩:
作答并交卷后查看老师给的评分。
三,评分老师的功能:
主要对已成功上交的试卷打分。
除了实现上述功能以外,本设计还具有清爽、简洁的界面和稳定性强的特点。
系统总体结构设计
本设计是专门对于已授权的用户使用本系统进行在线考试的应用WEB程序具有开放性、便捷性和可变通性的特点。
管理员教师可根据教学需要向添加课程修改和删除题库中的试题。
考生们也可有秩序的进行考试和自我练习。
为了使本系统运行的效率更加可靠,更有保障系统的服务器端要具备较高的软硬件配置,在客户端对配置的要求可以降低。
本设计不仅可以在内部的局域网上流畅运行,也广泛适用因特网。
在线考试系统各模块的结构图如下:
图管理员系统结构图
图考生系统结构图
评分老师只有对已作答且成功提交的试卷评分的功能。
4系统主要模块详细设计
分以下几个部分进行详细设计。
系统数据结构设计
本系统采用的是MySql数据库,数据库的名称为db_exam,数据表的设计由NavicateforMySQL来完成。
用户信息表格如下:
表t_admin管理员老师信息表
ID
字段名称
字段类型
字段长度
主键
备注
1
userId
Int
12
主键
2
userName
varchar
50
用户名
3
userPw
varchar
50
密码
表t_stu学生信息表
ID
字段名称
字段类型
字段长度
主键
备注
1
stu_id
int
12
主键
2
stu_xuehao
varchar
49
学生编号
3
stu_realname
varchar
49
真实姓名
4
stu_sex
varchar
49
性别
5
stu_age
varchar
49
年龄
6
login_name
varchar
49
登录名
7
login_pw
varchar
49
登录密码
8
del
varchar
49
是否被删除
表t_tea评分教师信息表
ID
字段名称
字段类型
字段长度
主键
备注
1
tea_id
int
12
主键
2
tea_bianhao
varchar
49
教师编号
3
tea_realname
varchar
49
真实姓名
4
tea_sex
varchar
49
性别
5
tea_age
varchar
49
年龄
6
login_name
varchar
49
登录名
7
login_pw
varchar
49
登录密码
8
del
varchar
49
是否被删除
本设计还包括考试分数表,交卷情况表,录入课程表,考试试题表以及所有试题表,在这里不一一列出,详情见附录1。
系统登录模块的设计
登录模块界面展示如图
图登陆界面
用户可在此模块输入自己的登录名和密码,系统会验证用户所输入的登录名与密码,如果输入的登录名或密码有误或漏填,系统将提示用户输入的登陆名或密码不正确。
除此之外还有角色的选择:
管理员教师、评分老师、学生。
如果选择的角色与登录名不符则系统报错登录失败需要重新登陆。
用户登录的流程图如图所示
图用户登录系统流程图
登录模块部分核心代码如下:
"block";
}
"none";
if(data=="no")
{
alert("用户名或密码错误");
}
if(data=="yes")
{
alert("通过验证,系统登录成功");
<%=path%>/";
}
}
管理员教师模块的设计
管理员教师模块界面展示如图
图管理员教师模块界面
在此模块中用户可以以管理员教师的身份使用此系统。
用户能够查看系统的基本信息,可以修改管理员教师的密码也可以添加或删除管理员教师和评分教师以及考生。
在课程方面可以添加需要的课程或删除已淘汰的课程。
试题方面可以在题库中添加和删除试题。
管理员教师可根据实际需要需要考试的课程添加创建试卷,在题库中选择需要的试题出试卷还可以在评分老师打分后查看考生的考试成绩。
部分核心代码如下:
1.界面跳转判断:
if(userType==0)
{
Stringsql="fromTAdminwhereuserName=anduserPw=";
Object[]con={userName,userPw};
ListadminList=().find(sql,con);
if()==0)
{
result="no";
}
else
{
WebContextctx=();
HttpSessionsession=();
TAdminadmin=(TAdmin)(0);
("userType",0);
("admin",admin);
result="yes";
}
}
2.系统基本信息显示:
操作系统版本:
<%=("")%> <%=("")%>
操作系统类型:
<%=("")%>
用户,目录,临时目录:
<%=("/")%>
JDK版本:
<%=("")%>
JKD安装目录:
<%=("")%>
总内存/剩余内存:
<%OperatingSystemMXBeanosmb=(OperatingSystemMXBean)();%><%=()/1024/1024%>MB / <%=()/1024/1024%>MB
3.对管理员教师的添加与删除:
图为管理员教师添加界面
图管理员添加界面
核心代码如下:
理员教师对课程的管理
课程管理界面如图所示:
图管理员添加界面
此界面主要显示已有的课程信息以及可执行的操作。
课程管理代码如下:
publicStringkechengMana()
{
Stringsql="fromTKechengwheredel='no'";
ListkechengList=().find(sql);
Maprequest=(Map)().get("request");
("kechengList",kechengList);
return;
}
课程的添加代码:
publicStringkechengAdd()
{
TKechengkecheng=newTKecheng();
(kechengName);
("no");
(kecheng);
("添加成功!
");
("");
return"succeed";
}
课程的删除代码:
publicStringkechengDel()
{
TKechengkecheng=(kechengId);
("yes");
(kecheng);
("删除成功!
");
("");
return"succeed";
}
5.管理员教师对题库的管理
管理员在对题库进行管理时要先选择题目所属的课程,然后该课程中所有的题目将被列出来,如图所示
图题库管理界面
在此可以直接删除题目。
若要添加题目则点击题目录入标签,在录入前要先选择题目所属课程和题目类型如图所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 在线 考试 系统