在线考试系统的设计和实现毕设参考.docx
《在线考试系统的设计和实现毕设参考.docx》由会员分享,可在线阅读,更多相关《在线考试系统的设计和实现毕设参考.docx(28页珍藏版)》请在冰豆网上搜索。
在线考试系统的设计和实现毕设参考
软件工程课程设计
设计说明书
考试系统的设计与开发
学生姓名
学号
班级
成绩
指导教师
数学与计算机科学学院
2012年12月26日
软件工程课程设计评阅书
题目
考试系统的设计与开发
学生姓名
学号
指导教师评语及成绩
成绩:
教师签名:
年月日
答辩教师评语及成绩
成绩:
教师签名:
年月日
教研室意见
总成绩:
室主任签名:
年月日
课程设计任务书
2012—2013学年第一学期
专业:
学号:
姓名:
课程设计名称:
软件工程课程设计
设计题目:
考试系统的设计与开发
完成期限:
自2012年12月17日至2012年12月28日共2周
设计依据、要求及主要内容(可另加附页):
考试是教师检查教学效质量的手段之一,也是教学工作的重要组成部分。
随着网络技术的发展,在线考试受到越来越多人的青睐,同时也减少了因考试而消耗的不必要的人力和物力,结合本校考试管理工作情况及存在的问题,按软件工程开发软件的思想开发考试系统,实现对学生考试全过程的管理,基本功能要求如下:
1.用户管理模块:
教师,学生,管理员;
2.题库管理模块:
对试题进行添加、删除、更新及相关操作;
3.试卷管理模块:
抽试卷,答试卷,试卷备份,提交试卷等相关操作;
6.成绩管理模块:
查看成绩、统计成绩等;
5.设计思想阐述清晰,界面友好,软件测试方案合理、有效,软件能正常运行。
指导教师(签字):
教研室主任(签字):
批准日期:
年月日
摘要
在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。
我主要开发系统的后台管理系统—JAVA在线考试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能。
本论文主要介绍了对JAVA在线考试管理子系统的分析、设计和开发的全部过程。
运用ER图,程序流程图等对在线管理子系统的设计过程进行详细的说明。
关键词:
在线考试;j2EE
1课题描述
1.1开发背景
在二十一世纪的新时代,随着计算机技术的发展及计算机的日益普及,基于在线考试与无纸化办公一样已成为大势所趋。
在线考试系统也越来越成为学校的好帮手,它的优势不但体现在人力上也体现在物力上,在线考试系统的采用自动评阅、计分、成绩存档功能将有效地避免资源的浪费,有利于环保,减少人员,提高效率[。
1.2系统开发目标
该系统是一个基于B/S模式的Web在线考试系统,根据科目出相应的考卷。
学生可以进行考试,查看考试情况等操作。
当考试完成后系统能自动地考试题评分。
教师登陆时系统可以还原学生考试试卷,可以查看学生总分,并生成各分数段情况信息,供给老师参考,以便能够了解学生的学习情况。
1.3开发工具的选择
本系统开发语言为JAVA,从各IDE的性能和价格考虑所使用的开发工具主要是MyEclipse。
由于本系统数据量和负载量都比较大,从经济和效率上考虑本系统选用mysql数据库。
Web服务器选Apache开源组织提供的TomCat,TomCat是一个免费的开源软件是SUN公司推荐的web服务器。
2需求分析
2.1背景分析
网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。
随着Internet/Intranet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术未来发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。
现代远程教育作为一种新的教学手段已经开始进入我们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。
相比传统的考试方式,在线考试系统的主要好处是一方面可以动态地管理各种考试信息,教师可以网上出题,之后学生便可以网上进行答题,从而使得考教分离。
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)添加学生
教师登陆系统之后可以添加新的学生。
(6)查看学生试卷
教师登陆系统之后可以查看到参加该门考试的学生的考试情况。
(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数据字典
通过对系统功能的分析可知,本系统主要包括如下的数据库信息:
(1)管理员表,该表保存了系统管理员的基本信息,属性有管理员编号、管理员名称、管理员密码。
其中管理员编号为主码,它是用户信息的唯一标识。
表结构如表3-1所示。
(2)学生表,该表保存了学生的基本信息,属性有学生编号、学生名称、学生密码。
其中学生编号为主码,它是用户信息的唯一标识。
表结构如表3-2所示。
(3)考题表,该表用于保存考题的基本信息,属性有考题编号,考题类型,本题分数等。
其中考题编号为主码。
表结构如表3-3所示。
(6)科目表,该表用于保存考试科目的基本信息,属性有科目编号,科目名称。
其中科目编号为主码。
表结构如表3-6所示。
(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-6科目表(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.2数据库的连接
在本系统中我们使用JDBC-ODBC桥连接,要进行数据库连接首先要配置数据源。
按3.3.1设计,设计好数据库exam_online,再建一个名为exam_online的数据源。
系统连接数据库的流程图如图3-1所示:
图3-1系统连接数据库流程图
4详细设计
4.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.公具类设计
根据系统设计需求,设计如下工具类:
数据库连接工具类,主要提供连接数据操作等相关方法。
字符加密类,主要对密码进行加密处理。
4.2在线考试模块设计
在线考试流程为:
首先系统将考试信息和考生个人信息提供给考生,并要求考生核对个人信息。
考生在选好试卷后进行答题操作。
答题必须在规定的时间内进行,此时间是由管理员事先设置好的,如在规定的时间内没有完成答题,系统将强制提交学生考试试卷进。
考生在试卷提交后系统自动地为试卷进行评分,并将试卷保存,供给老师查看或修改。
在线考试流程图如图3-2所示。
图3-2在线考试流程
4.3查看考生试卷模块设计
教师登陆后,可以对考生试卷进行查看和修改。
系统首先将考生的试卷读出,教师可能看到学生的大体情况。
主要思路:
教师点击查看,可以通过数据库成绩表查到考生考试信息,通过考试信息生成jsp页面,显示出考生的考卷情况,从而对学生的考试情况有个了解。
4.4考试设置信息维护模块设计
考试设置信息维护是管理员对考试设置信息维护,它包括对考试设置信息的添加,修改,删除。
这些考试信息包括考试时间,各题的数量和分值等。
设置时,系统先读取已存在的考试设置信息供给管理员查询,再提供给管理员操作。
考试设置信护流程图如图3-3所示。
图3-3考试设置信息维护流程
4.5用户管理模块设计
用户管理是管理员对系统用户信息的管理。
这些用户包括学生和教师。
用户管理操作包括添加用户和删除用户。
添加用户时,删除管理用户时,系统会先将用户信息读出供给管理员参考,再提供给管理员操作。
修改用户时用户编号和用户密码不能被修改其它均能被修改;用户时,系统会先提醒管理员是否删除,若果确认删除才能删除用户。
用户管理流程图如图3-4所示。
图3-4用户管理流程
5程序调试与测试
5.1系统运行环境
数据库:
mysql
Web服务器:
Tomcat6.0及以上版本
操作系统:
能运行java虚拟机的操作系统均可
5.2测试目的
系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。
应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。
系统测试应包括软件测试、硬件测试和网络测试。
硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。
系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。
5.3各功能模块测试
将工程导入Tomcat的项目文件夹生即webapps文件夹中, 再启动TomCat服务器。
在浏览器中输入工程的URL,可进入系统操作界面,用户可以选择操作。
5.3.1在线考试模块测试
在主界面点击学生考试,可以进入学生登陆界面。
此界面在提交数据时有简单验证功能,如学号不能为空等,用户名是否正确等,如图5-2所示。
图5-2学生登陆界面
成功登录后进入考卷选择界面,如图5-3所示。
系统通过学生所选科目,产生相应科目考试列表,供给考生选择。
图5-3试卷选择页面
点击开始考试,将进入到考试页面,考生开始答题,如图5-4所示。
在答题时系统提供剩余时间倒计时功能,以方便了角答题时间。
当考试剩余时间为0时系统将自动提交试卷。
图5-4学生考试页面
5.3.2查看试卷测试
考生答完题后,试卷即可给出相应答案,如图5-5所示。
图5-5成绩显示
5.3.3管理员模块
在浏览器中输入“”进入管理员登录页面。
当提交登陆信息时,系统会进行简单的数据验证,如验证码输入的正确性,如图5-6所示。
图5-6管理员登陆界面
输入正确的登陆信息后,进入试题管理界面,如图5-7所示。
图5-7管理员管理界面
在试题管理界面上,点击创建题库,即可进行添加科目的操作,如图5-8所示。
图5-8添加科目
点击添加题目,即可进行题目的添加操作,如图5-9所示。
图4-11添加题目
现点击右侧导航栏的试卷管理中的添加试卷,即可进行添加试卷的操作,如图图
图5-9添加题目
试题整理完成,即可发布试卷,如图5-10所示。
图5-10试卷发布
5.3.4用户管理模块测试
进入用户管理界面,然后创建用户,如图5-11所示。
图5-11添加用户
创建好的用户及其相应权限显示,如图5-12所示。
图5-12查看所有用户信息
总结
从电子文档、多媒体的应用,到利用Internet做尝试,网络已经渗入到教育体系的各个环节.网上考试系统作为这场变革中必不可少的环节之一,受到越来越多的关注.网上考试系统不仅和传统考试方式一样要权衡公平性,而且还具有一些新特点[13].
1)从管理的角度看,在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作,系统实现了无纸化管理,提高了管理的效率;所有的考试数据和其他数据库需要一种主流的方式进行存储和管理,例如使用数据库技术,题库对于每个出题者都只是显示了部分视图,很好地实现了教考分离.
2)在不改变传统考试基本步骤的条件下,只要有考试客户端可以连接到考试应用服务器,指定考生可以在任何地方进行身份确认,都能完成考试.
3)考试结果反馈及时准确.考试的结果在提交试卷后就可以知道,同时提供一个机会让考生知道自己哪里做错了.考生的考试结果可以被保存下来,供教师进行分析统计和察看。
参考文献
[1]软件工程导论.北京:
清华大学出版社.张海藩2008.2
[2]软件工程(第二版).北京:
人民邮电出版社.张海藩2006
[3]高级软件开发过程.北京:
清华大学出版社.金敏,周翔2005
[4]数据库系统原理及应用教程.北京:
机械工业出版社.苗雪兰2007.8