基于JSPjava在线考试系统的设计和实现精品.docx
《基于JSPjava在线考试系统的设计和实现精品.docx》由会员分享,可在线阅读,更多相关《基于JSPjava在线考试系统的设计和实现精品.docx(24页珍藏版)》请在冰豆网上搜索。
基于JSPjava在线考试系统的设计和实现精品
基于JSP在线考试系统的设计和实现
专业:
年级:
学号:
作者:
指导老师:
目录
1绪论2
1.1开发背景2
1.2系统开发目标2
1.3开发工具的选择2
1.4开发本系统的意义2
2系统分析3
2.1背景分析3
2.2可行性分析3
2.2.1技术可行性分析3
2.2.2经济可行性3
2.2.3方案可行性4
2.3需求分析4
2.4总体设计5
2.4.1系统的功能模块图5
2.4.2系统功能模块5
3系统设计7
3.1数据库设计7
3.1.1数据字典7
3.1.2数据库的连接9
3.2详细设计9
3.2.1公共类设计9
3.2.2在线考试模块设计10
3.2.3查看考生试卷模块设计11
3.2.4考试设置信息维护模块设计11
3.2.5用户管理模块设计12
4系统测试14
4.1系统运行环境14
4.2测试目的14
4.3各功能模块测试14
4.3.1在线考试模块测试15
4.3.2查看试卷测试16
4.3.3成绩查询测试17
4.3.4考题管理18
4.3.5查看试卷20
4.3.6用户管理测试21
5 结论23
致谢24
参考文献25
基于JSP的在线考试系统的设计与实现
摘要:
随着计算机技术上越来越深入而广泛的应用,无纸化考试实施在技术上已逐步成熟。
无纸化考试系统是一个不断发展的新型学科,学校必须建立与自身特点相适应的考试系统。
本次所开发的基于jsp的在线考试系统打破了原有的考试模式,利用现有的网络资源构架出一种新的考试平台。
简化了原有考试中一系列复杂的操作,使得学生能够便捷的参加各种考试,不再受到任何时空、地域的限制。
关键词:
在线考试;jsp;SSH2;MVC
JSP-basedOnlineExaminationSystemDesignandImplementation
Abstract:
Withmoreandmorewidespreadandprofoundapplicationofinformationtechnology,theimplementofpaperlessexaminationhasbecomematurestepbystep.OnlineExaminationSystemisanewsubject.TheschoolmustowntheirExaminationSystemtoadapttotheircharacteristics.
Theprojectbreakstheintrinsicteachingmodebyusingtheexistingnetworkresourcestobuildupanewtestplatform.Anditalsosimplifiestheformercomplicatedoperation,enablesthestudentstotakedifferentexamsmoreconvenientlyregardlessofthelimitofspaceandtime.
Keywords:
OnlineTest;jsp;SSH2;MVC
1绪论
1.1开发背景
指出计算机网络技术的飞速发展以及计算机技术的发展及计算机的日益普及,现在很多国内外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训,从而为在线考试系统发展提供了坚实的基础。
现在,计算机硬件技术的发展已经达到了相当高的水平。
但是,在我国远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求[1][2][3]。
在二十一世纪的新时代,随着计算机技术的发展及计算机的日益普及,基于在线考试与无纸化办公一样已成为大势所趋。
在线考试系统也越来越成为学校的好帮手,它的优势不但体现在人力上也体现在物力上,在线考试系统的采用自动评阅、计分、成绩存档功能将有效地避免资源的浪费,有利于环保,减少人员,提高效率[4][5][6][7]。
1.2系统开发目标
该系统是一个基于B/S模式的Web在线考试系统[8][9]己的所教科目添加相应的科目,根据科目出相应的考卷。
学生可以进行考试,查看考试情况等操作。
当考试完成后系统能自动地考试题评分。
教师登陆时系统可以还原学生考试试卷,可以查看学生总分,并生成各分数段情况信息,供给老师参考,以便能够了解学生的学习情况。
1.3开发工具的选择
本系统开发语言为JAVA,从各IDE的性能和价格考虑所使用的开发工具主要是MyEclipse。
由于本系统数据量和负载量都比较大,从经济和效率上考虑本系统选用mysql数据库。
Web服务器选Apache开元组织提供的TomCat,因为TomCat是一个免费的开元软件是SUN公司推荐的web服务器[10][11][12]。
1.4开发本系统的意义
从电子文档、多媒体的应用,到利用Internet做尝试,网络已经渗入到教育体系的各个环节.网上考试系统作为这场变革中必不可少的环节之一,受到越来越多的关注.网上考试系统不仅和传统考试方式一样要权衡公平性,而且还具有一些新特点[13].
1)从管理的角度看,在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作,系统实现了无纸化管理,提高了管理的效率;所有的考试数据和其他数据库需要一种主流的方式进行存储和管理,例如使用数据库技术,题库对于每个出题者都只是显示了部分视图,很好地实现了教考分离.
2)在不改变传统考试基本步骤的条件下,只要有考试客户端可以连接到考试应用服务器,指定考生可以在任何地方进行身份确认,都能完成考试.
3)考试结果反馈及时准确.考试的结果在提交试卷后就可以知道,同时提供一个机会让考生知道自己哪里做错了.考生的考试结果可以被保存下来,供教师进行分析统计和察看。
[14][15]
2系统分析
2.1背景分析
网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。
随着Internet/Intranet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术未来发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。
现代远程教育作为一种新的教学手段已经开始进入我们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。
相比传统的考试方式,在线考试系统的主要好处是一方面可以动态地管理各种考试信息,教师可以网上出题,之后学生便可以网上进行答题,从而使得考教分离[16][17]。
2.2可行性分析
2.2.1技术可行性分析
系统开发将要用到JSP、ssh2、JavaBean、mysql数据库技术。
另外,硬件只需要一台pc机,装上软件MyEclipse,DreamWeaver等开发工具,利用mysql作为后台的数据库,利用Tomcat作为Web服务器,所以在这方面来说是可行的。
已经掌握了开发考试系统方法和开发工具,并且在调查过程中,已经了解和熟悉了在线考试系统的业务流程。
综上所述本系统开发从技术上是可行的
2.2.2经济可行性
从经济效益来分析,软件的开发成本不大,而其它的投入也只是电脑。
电脑的普及也带来了低成本投入。
由于系统运行的基础环境均已具备,无需重新开发建设,所以系统开发、运行所需的费用是比较低的。
而系统的效益很高可以提高管理效率实现计算机化、系统化、规范化操作,效率大于投入,可行性很高。
2.2.3方案可行性
根据系统的分析,本系统充分从适用性出发,全面为不同的使用用户考虑。
使系统的许多功能与规则都可根据用户的习惯进行定制,包括软件界面、操作方式、录入方式等。
本系统的设计充分从使用用户和教务教学任务考虑。
2.3需求分析
本考试系统用户主要分为三类:
学生,教师,管理员。
1.学生需求
学生登陆系统主要进行两类操作:
在线考试,成绩查询.
(1)在线考试
学生登录后,学生选择考试科目,之后从备选试卷中选择要参考的试卷。
学生在考试过程中页面将提供考试时间倒计时功能,使考生随时了解考试剩余时间。
在考试时间到时,系统将自动地将学生考试试卷提交。
当考试试卷提交时,系统自动评分,并且即使反馈给考生。
(2)成绩查询
学生可以登陆系统查询各科成绩,其中成绩查询是查询自己的考卷,了解自己的考试情况。
2.教师需求
教师登陆系统主要有三类操作:
添加科目,添加试卷,添加学生和查看学生试卷,查看相应试卷各分数段统计。
(1)添加科目
教师可以登录系统,添加自己所教科目。
(2)添加试卷
教师选择所要添加的科目后,便可以添加新的试卷,试卷包括试卷考试时间,题目以及每道题目的分值及选项,答案等。
(3)添加学生
教师登陆系统之后可以添加新的学生。
(4)查看学生试卷
教师登陆系统之后可以查看到参加该门考试的学生的考试情况。
(5)查看相应试卷各分数段统计
教师登陆系统之后可以查看到考试的分数段情况。
3.管理员
系统管理员登陆系统后主要进行一类操作:
添加教师信息以及具有老师的一切权限
(1)添加教师信息
管理员可以添加教师信息。
(2)具有老师的一切权限
管理员可以查看所有老师出的试卷,并进行删除操作,并且自己可以独立进行添加科目,添加试卷,添加学生等操作。
2.4总体设计
2.4.1系统的功能模块图
根据2.3所述需求,设计出系统功能模块如图2-1所示
图2-1系统的功能模块图
2.4.2系统功能模块
1、在线考试
在线考试的流程如下:
首先考生进入系统后选择科目,之后进行试卷的选择进行答题操作。
答题必须在规定的时间内进行,此时间是由教师在出试卷时设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷进。
考生在试卷提交后系统自动地为试题进行评分,本系统的试题主要有单选题,双选题,多选题。
其数据流图如3.3所示。
图2-2第2层在线考试数据流图
2、成绩查询
考生根据用户编号查询考试成绩信息。
成绩信息包括单选题得分,多选题得分等详细信息。
页面提供对相应科目试卷的链接,使得学生还可以查询自己的考卷,了解自己的考试情况。
3、试题维护
试题维护是后台教师的重要功能,它包括对试题的添加,修改,删除操作。
为了使界面更友好,管理员在试题维护时系统会先将考试试题读出,再提供给管理员操作。
其数据流图如图2-3所示
图2-3第2层考题维护数据流图
4、用户管理
用户管理是管理员对系统用户信息的管理。
这些用户包括学生和教师。
用户管理操作包括添加用户和删除用户。
管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。
其数据流图如图2-4所示。
图2-4第2层用户管理数据流图
3系统设计
3.1数据库设计
3.1.1数据字典
通过对系统功能的分析可知,本系统主要包括如下的数据库信息:
(1)管理员表,该表保存了系统管理员的基本信息,属性有管理员编号、管理员名称、管理员密码。
其中管理员编号为主码,它是用户信息的唯一标识。
表结构如表3-1所示。
(2)学生表,该表保存了学生的基本信息,属性有学生编号、学生名称、学生密码。
其中学生编号为主码,它是用户信息的唯一标识。
表结构如表3-2所示。
(3)考题表,该表用于保存考题的基本信息,属性有考题编号,考题类型,本题分数等。
其中考题编号为主码。
表结构如表3-3所示。
(4)科目表,该表用于保存考试科目的基本信息,属性有科目编号,科目名称。
其中科目编号为主码。
表结构如表3-4所示。
(5)试卷表,该表用于保存考生的试卷信息,属性有试卷编号,试卷名称,试卷状态,考试时间等。
其中试卷编号作为主码。
表结构如表3-5所示。
(6)成绩表,该表用于保存考生的考试成绩信息,属性有成绩编号,考生编号,课程编号,总得分。
其中成绩编号作为主码。
表结构如表3-6所示。
(7)答案表,该表用于保存试题的答案信息,属性有答案编号,所属题目编号,答案内容等。
其中答案编号作为主码。
表结构如表3-7所示。
(8)学生答案表,该表用于保存考生考试的答案信息,属性有答案编号,所属学生编号,答案内容,试题编号等。
其中答案编号作为主码。
表结构如表3-8所示。
系统表结构如下:
表3-1教师或管理员表(t_admin)
字段
类型
允许为空
说明
备注
Id
int(11)
否
用户编号
pk
username
varchar(50)
否
教师或管理员姓名
管理员只有一个,教师可以有多个
password
varchar(50)
否
密码
表3-2学生表(t_student)
字段
类型
允许为空
说明
备注
id
int(11)
否
用户编号
pk
username
varchar(50)
否
学生名
password
varchar(50)
否
密码
表3-3考题表(t_question)
字段
类型
允许为空
说明
备注
id
int(11)
否
考题编号
pk自增长
type
varchar(10)
否
考题类型
单选多选双选
Point
int(11)
否
考题分数
content
text
否
题目
paperId
int(11)
否
所属试卷
外键
表3-4科目表(t_subject)
字段
类型
允许为空
说明
备注
id
int(11)
否
科目id
pk
name
varchar(50)
否
科目名称
表3-5试卷表(t_paper)
字段
类型
允许为空
说明
备注
id
int(11)
否
试卷id
pk
name
varchar(50)
否
试卷名称
state
Varchar(20)
否
试卷状态
开放和关闭两种状态
time
int(11)
否
考试时间
以分钟为单位
adminId
int(11)
否
所属管理员
fk
subjectId
int(11)
否
所属科目
fk
表3-6成绩表(t_score)
字段
类型
允许为空
说明
备注
id
Varchar(10)
否
成绩编号
pk
mark
Varchar(20)
否
成绩值
student_Id
float
否
考生ID
fk
paper_Id
float
否
科目ID
fk
表3-7答案表(t_answer)
字段
类型
允许为空
说明
备注
id
int(10)
否
答案编号
pk
aitem
varchar(50)
否
A选项内容
bitem
varchar(50)
否
B选项内容
citem
varchar(50)
否
C选项内容
ditem
varchar(50)
否
D选项内容
content
varchar(50)
否
正确答案
questionId
int(11)
否
所属问题ID
fk
表3-8学生答案表(t_studentanswer)
字段
类型
允许为空
说明
备注
id
int(10)
否
学生答案编号
pk
questionIdList
varchar(255)
否
学生答题题目ID序列
学生所答试卷题目的有序序列
answerList
varchar(255)
否
学生答题答案序列
学生答卷的答案序列
studentId
int(11)
否
学生ID
fk
3.1.2数据库的连接
在本系统中我们使用JDBC-ODBC桥连接,要进行数据库连接首先要配置数据源。
按3.3.1设计,设计好数据库exam_online,再建一个名为exam_online的数据源。
系统连接数据库的流程图如图3-1所示:
图3-1系统连接数据库流程图
3.2详细设计
3.2.1公共类设计
1.Domain类设计
由于数据库使用的类系统模型,而java数据为对象模型,使得其模型不匹配。
为了方便关系模型和对象模型间的转换,建应的Domain类,即数据库中每个表对应一个类,表中类属性对应表的各属性,再为各个属性设计一个读方法(get)和一个写方法(set)如学生类:
packagecom.exam_online.model;
publicclassStudent{
privateintid;
privateStringusername;
privateStringpassword;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
表和类的对应关系如下:
教师(管理员)表(t_admin)——教师(管理员)类(Admin)
答案表(t_answer)——答案类(Answer)
试卷表(t_paper)——试卷类(Paper)
题目表(t_question)——题目类(Question)
成绩表(t_score)——成绩类(Score)
学生表(t_student)——成绩类(Student)
学生考卷答案表(t_studentanswer)——学生考卷答案类(StudentAnswer)
科目表(t_subject)——科目类(Subject)
2.公具类设计
根据系统设计需求,设计如下工具类:
数据库连接工具类,主要提供连接数据操作等相关方法
字符加密类,主要对密码进行加密处理
3.2.2在线考试模块设计
在线考试流程为:
首先系统将考试信息和考生个人信息提供给考生,并要求考生核对个人信息。
考生在选好试卷后进行答题操作。
答题必须在规定的时间内进行,此时间是由管理员事先设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷进。
考生在试卷提交后系统自动地为试卷进行评分,并将试卷保存,供给老师查看或修改。
在线考试流程图如图3-2所示。
图3-2在线考试流程
3.2.3查看考生试卷模块设计
教师登陆后,可以对考生试卷进行查看和修改。
系统首先将考生的试卷读出,教师可能看到学生的大体情况。
主要思路:
教师点击查看,可以通过数据库成绩表查到考生考试信息,通过考试信息生成jsp页面,显示出考生的考卷情况,从而对学生的考试情况有个了解。
3.2.4考试设置信息维护模块设计
考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。
这些考试信息包括考试时间,各题的数量和分值等。
设置时,系统先读取已存在的考试设置信息供给管理员查询,再提供给管理员操作。
考试设置信护流程图如图3-3所示。
图3-3考试设置信息维护流程
3.2.5用户管理模块设计
用户管理是管理员对系统用户信息的管理。
这些用户包括学生和教师。
用户管理操作包括添加用户和删除用户。
添加用户时,删除管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。
修改用户时用户编号和用户密码不能被修改其它均能被修改;用户时,系统会先提醒管理员是否删除,若果确认删除才能删除用户。
用户管理流程图如图3-4所示。
图3-4用户管理流程
4系统测试
4.1系统运行环境
数据库:
mysql
Web服务器:
Tomcat6.0及以上版本
操作系统:
能运行java虚拟机的操作系统均可
4.2测试目的
系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。
应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。
系统测试应包括软件测试、硬件测试和网络测试。
硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。
系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查[18][19][20]。
4.3各功能模块测试
将工程导入Tomcat的项目文件夹生即webapps文件夹中, 再启动TomCat服务器。
在浏览器中输入工程的URL,如“http:
//127.0.0.1:
8080/exam_online_lxb/frame_login.jsp”可进入系统操作界面,用户可以选择操作。
如图4-1所示。
图4-1系统主界面
4.3.1在线考试模块测试
在主界面点击学生考试,可以进入学生登陆界面。
此界面在提交数据时有简单验证功能,如学号不能为空等,用户名是否正确等,如图4-2所示。
图4-2学生登陆界面
成功登录后进入考卷选择界面,如图4-3所示。
系统通过学生所选科目,产生相应科目考试列表,供给考生选择。
下方有考生已考科目列表,已考科目考生不能再考。
图4-3试卷选择页面
点击开始考试,将进入到考试页面,考生开台答题,如图4-4所示。
在答题时系统提供剩余时间倒计时功能,以方便了角答题时间。
当考试剩余时间为0时系统将自动提交试卷。
图4-4学生考试页面
4.3.2查看试卷测试
图4-5成绩显示
考生答完试卷后,点击交卷,系统自动进行批阅试卷,之后可以立即将考试结果反馈给考生,从而使考试了解自己得了多少分以及哪道题出了错误,如图4-5所示。
4.3.3成绩查询测试
图4-6学生成绩查询
学生在主界面点击“学生管理”,并输入正确的登陆信息可以进入学生管理界面。
在界面中点击左边菜单栏中的“成绩查询”选项,可以查询到学生的已考试卷名称,如图4-6所示。
点击,学生可以看到该科的考卷答题情况,如图4-7所示。
图4-7查看成绩详情
4.3.4考题管理
在浏览器中输入“http:
//127.0.0.1:
8080/exam_online_lxb/frame_login.jsp”进入管理员登录页面。
当提交登陆信息时,系统会进行简单的数据验证,如验证码输入的正确性,如图4-8所示。
图4-8管理员登陆界面
输入正确的登陆信息