最新基于Java的在线考试系统的设计与实现.docx
- 文档编号:24116794
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:25
- 大小:364.06KB
最新基于Java的在线考试系统的设计与实现.docx
《最新基于Java的在线考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《最新基于Java的在线考试系统的设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。
最新基于Java的在线考试系统的设计与实现
山西大学论文编号:
2008241063
论文题目基于Java的在线考试系统的
设计与实现
姓名
院系、专业计算机科学与技术、计算机科学与技术
学习年限年月至年月
指导教师
学位级别
2013年4月4日
基于Java的在线考试系统的设计与实现
学生姓名:
指导老师:
内容提要当今世界网络信息技术迅速发展,网络在人们生活中的应用越来越广泛,在线考试已经成为人才选拔的重要途径。
本系统基于B/S模式,使用Java语言及JSP/servlet技术,采用DIV+CSS布局方法,使用SQLServer2005数据库技术和TomCat服务器实现了B/S模式下的在线考试系统。
本系统由学生、教师和系统管理员三种用户组成。
学生登陆系统可以进行在线考试、成绩查询和修改部分个人信息;教师登陆后可以进行判卷和修改部分个人信息;管理员登陆后可以对用户和试题进行维护并且实现了用户信息和试题的批量导入。
本系统可用性很强,能用来进行多种计算机语言课程的考试。
关键词在线考试;java;SQLServer;JSP/servlet
1引言
1.1问题的提出
目前,各行各业都需要大量的人才,而人才选拔的最重要的途径则是考试。
现阶段,学校的考试模式大都是传统的考试模式:
由老师出纸面上的卷子,学生在在卷子上答题,交卷后有老师人工判卷。
这样的考试模式一是不利于老师提高工作效率;二是传统的考试模式工作量大容易出错。
随着考试类型的不断增加和考试要求的不断提高,传统的考试模式已经不能满足现在选拔人才的要求。
随着计算机各方面技术的迅猛发展和应用在各行各业的不断深入,人们迫切要求利用这些先进的科学技术来实现在线考试,不仅可以减轻教师的工作负担而且还能提高老师的工作效率和考试的质量。
从而使考试变得更加客观、公正,也可以在一定程度上提高学生的学习兴趣。
在线考试系统可以实现对学生考试和老师判卷的合理化管理,不仅能节省人工大量的时间,而且在一定程度上可以消除人的主观因素造成的影响,使考试变得更规范,更加客观、真实、全面的反应考生的水平和教学的实际效果,有助于促进教学质量的提高,有助于真正实现考、教的分离。
1.2系统开发目标
本系统计划实现一个基于Java的在线考试系统。
系统主要分为三大模块,学生、老师和管理员。
学生登陆进行考试,考试完成后系统自动为客观题评分。
教师登陆系统,系统还原学生考试试卷,教师对主观题评完分后系统可以计算出学生总分,并生成各分数段分布信息,供给老师参考,以便能够了解学生的学习情况。
管理员可以实现对用户信息的增、删、改、查,也可以实现对考题的增、删、改、查。
1.3开发工具的选择
本系统开发语言为JAVA,开发环境是MyEclipse,前台页面主要用DreamWeaver来设计。
由于本系统数据量和负载量都比较大,从经济和效率上考虑本系统选用SQLServer2005数据库。
本系统的数据库不限制题量。
Web服务器选Apache开源组织提供的TomCat,因为TomCat是一个免费的开源软件是被SUN公司推荐的Web服务器。
1.4开发本系统的意义
从电子文档、多媒体的应用,到利用Internet做尝试,网络已经渗入到教育体系的各个环节.网上考试系统作为这场变革中必不可少的环节之一,受到越来越多的关注.网上考试系统不仅和传统考试方式一样要权衡公平性,而且还具有一些新特点:
1.从管理的角度看,在线考试系统可以帮助教师完成一个考试从题的设计,考试的实施,考卷的批改到分数的统计和总结的所有工作,系统实现了考试的无纸化管理,提高了管理效率,也很好地实现了教考的分离。
2.在不改变传统考试基本步骤的条件下,只要考试客户端可以连接到考试应用服务器,考生进行身份确认,都能完成考试。
3.考试结果反馈及时准确。
考试的结果在教师修改考完之后就可以知道,同时提供一个反馈信息让考生知道自己哪些题做错了,考生的考试结果可以被保存下来,供教师进行分析统计和察看。
2系统分析
2.1技术可行性分析
本系统的开发将要用到JSP/Servlet、SQLServer数据库技术。
硬件只需要一台pc机,装上软件MyEclipse,DreamWeaver等开发工具,利用SQLserver2005作为后台的数据库,利用Tomcat作为Web服务器,所以在这方面来说是可行的。
已经掌握了开发考试系统方法和开发工具,并且已经了解和熟悉了在线考试系统的业务流程。
综上所述本系统开发从技术上是可行的。
2.2经济可行性
从经济效益来分析,本系统的开发成本不大。
由于系统运行的基础环境均已具备,无需重新开发搭建,所以系统的开发、运行所需费用是比较低的。
而系统的效益很高可以提高管理效率实现计算机化、系统化、规范化操作,效率大于投入,可行性很高。
2.3方案可行性
根据系统的分析,本系统充分从适用性出发,全面为不同的使用用户考虑。
使系统的许多功能与规则都可根据用户的习惯进行定制,包括软件界面、操作方式、录入方式等。
本系统的设计充分从使用用户和教务教学任务考虑。
3需求分析
3.1系统用户
本考试系统用户主要分为三类:
学生、教师、管理员。
1.学生需求
学生登陆系统主要进行两类操作:
在线考试,成绩查询与个人信息管理。
(1)在线考试
学生登陆时自己选择考试科目。
学生在考试过程中页面将提供考试时间倒计时功能,让考生随时可以知道剩余时间,在考试剩余五分钟时系统会提醒考生考试快结束了。
在考试时间到时,系统自动地将试卷提交,提醒考生离开考场。
当试卷提交后,系统自动为选择题、判断题等客观题评分,主观题由教师评分。
(2)成绩查询与个人信息维护
学生可以登陆系统查询各科成绩,其中成绩信息包括每种题型的得分,如单选题,简答题等。
另外学生还可以查询自己的考卷,了解自己的考试情况。
除此之外,学生登陆系统可以查看和修改个人的部分信息。
2.教师需求
教师登陆系统主要有三类操作:
查看和修改学生试卷,查看各分数段统计,个人信息的修改与维护
(1)查看/修改学生试卷
系统会将学生试卷从数据库中读出供给老师查看和修改,系统已经对客观题进行了评分,所以这些信息对于教师是只读的。
而对于主观题,系统将参考答案读出供给老师参考,再将考生答案读出供给教师评分。
(2)查看分数段统计
教师批好试卷之后,系统会自动将成绩汇总,生成各分数段统计信息,供给老师查看,以便教师能了解学生的考试情况,并对其进行分析以便及时修改教学计划。
(3)个人信息维护
教师登陆系统之后可以对个人的部分信息进行查看和修改。
3.管理员
系统管理员登陆系统后主要进行四类操作:
考题维护,考试信息维护,用户信息维护和个人信息维护。
(1)考题的维护
管理员可以往题库中添加考题,修改错误试题和删除无用试题。
为了方便试题的维护,管理员也可以用excel表对试题进行批量导入。
(2)考试信息的维护
考试信息的维护主要是对于考试设置信息进行维护,这些信息主要是考试总时间,各个类型试题的数量,各试题分值的分布等。
(3)用户维护
系统管理员可以对用户的全部信息(包括学生信息,教师信息等)进行增、删、改、查操作。
管理员也可以批量导入用户的信息,方便有大量的用户。
(4)个人信息维护
管理员也可以对自己的基本信息进行维护。
3.2实体关系图
据分析系统实体关系图如图3.1所示:
图3.1系统E-R图
系统各实体关系如下:
用户:
用户标记1:
N
考试设置:
用户标记1:
N
考题:
考试设置N:
1
考题:
试卷1:
N
用户:
试卷1:
N
试卷:
成绩N:
1
用户:
成绩1:
N
4总体设计
4.1系统功能模块图
根据3.1所述需求,设计出系统功能模块如图4.1所示
图4.1系统的功能模块图
4.2系统功能模块
1.在线考试
在线考试的流程如下:
首先系统按照一定的算法为登陆的考生随机选取一定的试题生成考试试卷,考生在系统生成好试卷后进行答题操作。
答题必须在规定的时间内进行,此时间是由管理员事先设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷。
考生在试卷提交后系统自动地为客观题进行评分,本系统的客观题主要是单选题,多选题和判断题。
主观题有老师登陆进行判卷得分,主观题主要是简答题和编程题。
2.成绩查询
考生根据用户编号查询考试成绩信息。
成绩信息包括单选题得分,多选题得分等详细信息。
页面提供对相应科目试卷的链接,使得学生还可以查询自己的考卷,了解自己的考试情况。
3.查看/修改考生试卷
系统首先将考生的试卷读出,再提提醒老师对主观题进评分,等老师对主观题进行评分后系统生成考生的成绩信息。
4.分数段统计
当教师对考卷的主观题评定后,系统能自动生成分数段统计信息供给老师查看。
此功能有助于老师了解学生的学生情况,以便更好的教学。
5.试题维护
试题维护是后台管理员的重要功能,它包括对试题进行添加,修改,删除操作。
为了使界面更友好,管理员在试题维护时系统会先将考试试题读出,再提供给管理员进行操作。
6.考试设置信息维护
考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。
这些考试信息包括考试时间,各题的数量和分值等。
在数据库中录入试题后,可以在此设置相关考试信息生成试卷,本系统可进行多种考试,但是必须是程序语言的相关考试。
7.用户管理
用户管理是管理员对系统用户信息的管理。
这些用户包括学生和教师。
用户管理操作包括添加用户,更新用户和删除用户。
管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。
8.个人信息维护
学生,教师,管理员都可以对个人信息进行维护。
维护操作包括对个人基本信息进行修改和修改密码等。
系统能提供极为友好的界面方便用户操作。
4.3后台数据库的设计
4.3.1数据库表结构的设计
通过对系统功能的分析可知,本系统主要包括如下的数据库信息:
1.用户表,该表保存了系统用户的基本信息,属性有用户编号、用户名称、用户类型、用户性别。
其中用户编号为主码,它是用户信息的唯一标识。
表结构如表4.1所示。
2.考生标记表,该表用于保存考生是否已经考试的标识信息,属性有用户编号、课程名称、标识信息。
其中用户编号和课程名称共同作为主码。
3.考题表,该表用于保存考题的基本信息,属性有考题编号,课程名称,考题类型,题目及参考答案等。
其中考题编号为主码。
表结构如表4.2所示。
4.试卷设置表,该表用于记录相应课程的考试设置的相关信息,属性有课程名称,单选题、多选题、判断题、简答题、编程题数量和分值,考试时间等。
其中课程名称为主码。
5.试卷表,该表用于保存考生的试卷信息,属性有考生编号,课程名称,考题类型,考生答案和得分等。
其中考生编号和课程名称共同作为主码。
表结构如表4.3所示。
6.成绩表,该表用于保存考生的考试成绩信息,属性有考生编号,课程名称,各考题得分,总得分。
其中考生编号和课程名称共同作为主码。
系统部分表结构如下:
表4.1用户表(UserInfo)
字段
类型
允许为空
说明
备注
Uid
Varchar(10)
否
用户编号
pk
name
Varchar(50)
是
用户姓名
utype
int
是
用户类型
1为学生,2为教师,3为管理员
password
Varchar(10)
是
密码
sex
Varchar
(2)
是
性别
表4.2考题表(Question)
字段
类型
允许为空
说明
备注
Qid
int
否
考题编号
pk自增长
qtype
int
是
考题类型
1单选题2多选题3判断题4简答题5编程题
course
Varchar(20)
是
课程名称
ques
Text
是
题目
keyA
Varchar(50)
是
选项A
keyB
Varchar(50)
是
选项B
keyC
Varchar(50)
是
选项C
keyD
Varchar(50)
是
选项D
answer
text
是
参考答案
表4.3试卷表(test)
字段
类型
允许为空
说明
备注
Uid
Varchar(10)
否
用户编号
pk
Qid
int
否
考题编号
pk题库中的题号
Course
Varchar(20)
否
课程名称
Qtype
int
否
考题类型
1单选题2多选题3判断题4简答题5编程题
answer
Text
是
考生答案
Tnumber
int
否
题目编号
试卷中的第几题
score
float
是
得分
4.3.2数据库的连接
在本系统中我们使用JDBC桥连接,要进行数据库连接首先要配置数据源。
按4.3.1和3.2的设计,设计好数据库ExamOnlie,再建一个名为ExamOnline的数据源。
系统连接数据库的流程图如图4.2所示:
图1-4大学生购买手工艺制品目的
图4.2系统连接数据库流程图
5.详细设计
5.1公共类的设计
1.Domain类设计
由于数据库使用的类系统模型,而java数据为对象模型,使得其模型不匹配。
为了方便关系模型和对象模型间的转换,建立对应的Domain类,即数据库中每个表对应一个类,表中类属性对应表的各属性。
表和类的对应关系如下:
(4)创新能力薄弱用户表(UserInfo)——用户类(User)
根据调查资料分析:
大学生的消费购买能力还是有限的,为此DIY手工艺品的消费不能高,这才有广阔的市场。
用户标记表(userflag)——用户标记类(UserFlag)
考题表(Question)——考题类(Question)
图1-2大学生购买手工艺品可接受价位分布试卷表(test)——试卷类(Test)
在我们学校大约有4000多名学生,其中女生约占90%以上。
按每十人一件饰品计算,大概需要360多件。
这对于开设饰品市场是很有利的。
女生成为消费人群的主体。
试卷设置表(test_set)——试卷设置类(Test)
成绩表(record)——成绩类(Record)
试卷考题类(TestQuestion)——试卷表和考题表联合查询视图
2.工具类的设计
(二)创业弱势分析根据系统设计需求,设计如下工具类及部分代码:
§8-2购物环境与消费行为2004年3月20日
(1)数据库连接工具类,主要提供连接数据操作等相关方法。
(2)用户操作相关类,主要提供对用户表操作的相关类。
(3)用户标记工具类,主要提供对用户标记表的相关操作方法
3、竞争对手分析(4)考题工具类,主要提供对考题表的相关操作方法
(5)试卷工具类,主要提供对试卷表的相关操作方法
(6)考试设置工具类,主要提供对考试设置表的相关操作方法
(7)试卷考题工具类,主要提供对试卷表考题表联合查询视图的相关操作方法
上述所示的上海经济发展的数据说明:
人们收入水平的增加,生活水平的提高,给上海的饰品业带来前所未有的发展空间,为造就了一个消费额巨大的饰品时尚市场提供了经济基础。
使大学生对DIY手工艺品的时尚性消费,新潮性消费,体验性消费成为可能。
(8)成绩工具类,主要提供对成绩表的相关操作方法。
5.2在线考试模块
夏日的街头,吊带装、露背装、一步裙、迷你裙五彩缤纷、争妍斗艳。
爱美的女孩们不仅在服饰搭配上费尽心机,饰品的选择也十分讲究。
可惜在商店里买的项链、手链、手机挂坠等往往样式平淡无奇,还容易出现雷同现象。
在线考试流程为:
首先系统将考试信息和考生个人信息提供给考生,并要求考生核对个人信息。
在考试开始时系统为登陆的考生选取试题生成考卷,考生在系统生成试卷后进行答题。
答题必须在规定的时间内进行,如在规定的时间内未完成答题,系统将强制提交学生的考卷。
试卷提交后系统自动地为客观题进行评分,并将试卷保存,供给老师查看和修改。
在线考试流程图如图5.1所示。
图5.1在线考试流程图
学生考试打开试卷,试卷的形成用到了抽题算法,抽提算法如下:
产生一个随机整数,这个数在0和相应题型总考题数之间。
从这个随机数开始抽取试题,抽取数量为试卷设置中相应题型的个数(此数小于总题数),其抽题流程如图5.2如示。
图5.2选题流程图
随机选题操作方法主要代码及说明:
此方法输入参数为课程名称course,需要题数count,试题类型type;抽题过程使用了一个for循环;输出为一个包含抽取的试题信息的集合ArrayList。
抽题的部分代码如下:
inttemp=(int)(Math.random()*totalCount);//随机产生一个0-总题数之间的随机整数
try{
conn=newDBAccess.getConnection();
//取题
for(inti=0;i inttempCount=(temp+i)%totalCount;//sql的查询语句 Stringsql="selecttop1*fromQuestionwhereqtype="+type+"andcourse='"+course+"'andQidnotin(selecttop"+tempCount+"QidfromQuestionwhereqtype="+type+"andcourse='"+course+"')"; ps=conn.prepareStatement(sql); rs=ps.executeQuery(); Questionques=newQuestion(); if(rs.next()){//保存试题 ques.setId(rs.getInt (1)); ques.setType (1); ques.setQues(rs.getString(4)); ques.setKeyA(rs.getString(5)); ques.setKeyB(rs.getString(6)); ques.setKeyC(rs.getString(7)); ques.setKeyD(rs.getString(8)); ques.setAnswer(rs.getString(9)); al.add(ques); } } }catch(Exceptione){ e.printStackTrace();//打印出异常信息 }finally{ db.CloseDB(conn,ps,rs);//关闭数据库连接 returnal; } } 5.2成绩查询模块设计 考生根据用户编号查询考试成绩信息,查询到的成绩是考生的所有课程的成绩。 成绩信息包括单选题得分,多选题得分等详细信息。 5.3查看/修改考生试卷模块设计 教师登陆后,可以对考生试卷进行查看和修改。 系统首先将考生的试卷读出,教师可能看到系统对试卷主观题的评定。 系统会提提醒老师对主观题进评分,等老师对主观题进行评分,系统会将保存对学生试卷的评定,而后生成考生的成绩信息。 查看/修改考生试卷的流程图如图5.3所示。 图5.3查看/修改学生试卷流程图 5.4分数段统计模块设计 当教师对考卷的主观题评定后,系统能自动生成分数段统计信息供给老师查看。 统计分数段包括及格率、60-69分、70-79、80-89和90分以上,在统计各分数段总人数的同时计算出各分数段占考生总数的比例。 5.5试题维护模块设计 试题维护是后台管理员的重要功能,它包括对试题的添加、修改和删除操作。 在进行这些操作时系统会先将考试试题读出,再提供给管理中员操作。 试题维护流程图如图5.4所示。 图5.4考题维护流程图 5.6考试设置信息维护模块设计 考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。 这些考试信息包括考试时间,各题的数量和分值等。 设置时,系统先读取已存在的考试设置信息供给管理员查询,再提供给管理员操作。 考试设置信护流程图如图5.5所示。 图5.5考试设置信息维护流程图 5.7用户管理模块设计 用户管理是管理员对系统用户信息的管理。 这些用户包括学生和教师。 用户管理操作包括添加用户,更新用户和删除用户。 添加用户时,删除管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。 用户密码不用设置,系统默认为“123456”;修改用户时用户编号和用户密码不能被修改其它均能被修改;用户时,系统会先提醒管理员是否删除,若果确认删除才能删除用户。 用户管理流程图如图5.6所示。 图5.6用户管理流程图 本系统的用户信息实现了批量(excel表)导入 ,用户信息的批量导入程序实现流程如图5.7 图5.7用户信息批量导入程序流程图 用户信息批量导入关键代码及说明: //取出excel表中的数据 InputStreamis=DateStu.class.getClassLoader().getResourceAsStream( "student.xls"); try{ Workbookwb=Workbook.getWorkbook(is);//创建工作簿 jxl.Sheetsheet=wb.getSheet(0);//创建工作表 Stringcontent=null; for(inti=1;i Studentstu=newStudent(); for(intj=0;j content=sheet.getCell(j,i).getContents(); //此处实现判断导入的各属性信息,部分代码省略 if(stu.getId()==null){ stu.setId(sheet.getCell(j,i).getContents()); continue; } } getStudentInfo(stu); } }catch(BiffExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); } //将取出的值插入数据库 Stringsql="insertintoUserInfo(Uid,utype,name,password,sex)values('"+stu.getId()+"',"+stu.getType()+",'"+stu.getName()+"','"+stu.getPassword()+"','"+stu.getSex()+"')"; DBAccessdb=newDBAccess(); Connectioncon=db.getConnection(); try{ Statementstate=con.createStatement(); inti=state.executeUpdate(s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 基于 Java 在线 考试 系统 设计 实现