基于JSP实现的试题库管理系统
1 引言
1.1 编写目的
该需求分析报告用于软件开发小组对基于WEB的软件工程课程试题库管理系统这一课题的开发过程。明确了课题开发的目的与要求,介绍了该系统的所有功能以及适用范围。
1.2 项目背景
- 运行环境
- JDK1.7
- Tomcat7
-
MySQL 5.6.11
-
开发平台
- Windows 8.1 Pro(x64)
- MyEclipse10
1.3 定义
数据流图 :数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
系统的流程图 :系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子的形式描绘系统里的每个部件(程序,文件,数据库,表格,人工过程等)。
学生表 :学号,姓名,密码md5串,学院,班级id,手机号,邮箱,注册时间
教师表 :职工号,教师姓名,密码md5串,学院,手机,邮箱,注册时间
班级表 :班级id,学院,班级名称,创建教师id
题库表 :试题id,试题名称,试题内容,试题答案,试题类型,试题所有者id,添加时间,4个额外备注信息
试卷表 :试卷id,试卷名称,试卷创建者id,创建试卷时间,试卷目的班级id
答卷表 :学生id,试卷id,学生在该份试卷的得分
组题表 :试卷id,试题id,该道试题在该试卷的分值
1.4 参考资料
-
《软件工程》 钱秋乐,清华大学出版社,2007
-
《数据库系统开发》 文东,北京科海电子出版社,2009
-
《JavaWeb整合开发王者归来》
-
《Java程序设计》
-
《JSP从入门到精通》
-
《Think in Java》
2 概要设计
由于软件实际实现的功能有限,只实现了学生/教师注册登录模块,学生考试功能以及教师增加、删除、修改试题的功能。
2.1 三层架构总业务流程图
2.2 总体概要
本系统采用三层架构进行设计,层与层之间采用Java接口进行衔接,降低了模块耦合度,并使用工厂模式实现对不同需求对应接口的不同实现,并在每一层功能完成后进行相应层的单元测试,对开发过程中避免了很多不必要的麻烦,节约了开发时间。
本系统在开发过程中实现了国际化框架,可以识别不同的浏览器语言相应的显示对应语言的内容,由于开发时间限制,语言包只提供了缺省的中文语言包。
表示层:该系统对每个表单设置表单号和验证码,可以有效防止用户的表单重复提交。本系统参考了Struct框架的表单Bean检验方式,对用户输入的表单信息进行了相应的约束,并使用正则表达式进行校验,对于不符合约束的信息,及时在网页上回显给用户,只对符合要求的表单信息提交给下层Service业务处理层,保证了业务处理层接收到的表单信息的纯净性。 业务处理层:对本系统需要提供的功能进行封装和分类,分成StudentService,TeacherService和QuestionService三个子系统。
持久层:持久层对应业务处理层,也分成了StudentDao,TeacherDao,QuestionDao三个子系统。持久层对MySQL的数据库操作进行了实现,数据库连接信息以配置文件的形式存放在网站目录中,增强了系统的灵活性,对于更改数据库只需更改相应的配置文件即可,并对Dao接口对应相应数据库进行实现即可。
2.3 类包层次结构图
主包名
- com.silence.questionlib
子包
-
dao:持久层接口,其中有三个接口,分别是学生子系统,教师子系统,题库子系统的对应持久层接口
-
daoimpl:持久层接口实现类,分别实现持久层接口中的三个接口
-
domain:整个系统的所有实体JavaBean
-
exception:自定义异常
-
factory:工厂模式工厂包,工厂遵循单例模式,实现根据不同的需要加载对接口的不同实现类,通过Java类加载器实现,从配置文件factory.properties读取相应的类加载信息
-
formbean:用户提交表单JavaBean,实现对表单校验和相应的用户反馈信息生成,反馈信息实现国际化
-
i18n:国家化包,实现国际化的工具类和相应的国际化语言包
-
service:业务处理层接口,分为学生子系统,教师子系统,题库子系统三个业务处理接口
-
serviceimpl:业务处理层接口对应的实现类,分别实现业务处理层的三个接口
-
utils:整个项目的所有工具类,包括每个层的对应工具类
-
web.controller:表示层控制型Servlet,实现对用户业务处理请求的初步处理和对业务处理层的请求
-
web.ui:表示层显示型Servlet,实现对用户的请求预处理和过滤,并转发到JSP页面
-
junit.test:测试包
-
db.properties:JDBC连接数据库的相关配置信息
-
factory.properties:工厂模式加载相应实现类的映射文件
2.4 网站根目录层次结构图
-
images:网站图片文件夹
-
temp:网站缓存文件夹
-
jsp:网站JSP文件夹
-
lib:网站引用jar包文件夹
-
tag.tld:自定义标签库描述文件
-
web.xml:网站配置文件
-
index.jsp:网站首页
-
message.jsp:网站全局信息显示页面
2.5 用户请求表单处理流程
3 详细设计
3.1 各个包中类详细说明
- Com.silence.questionlib.dao
- QuestionDao:试题操作持久层接口,对试题的增删改查,组卷等功能
- StudentDao:学生操作持久层接口,学生登录注册等基本功能
-
TeacherDao:教师操作持久层接口,教师注册登录,创建班级,查看班级学生等功能
-
Com.silence.questionlib.daoimp
- QuestionDaoimpl:试题操作持久层实现
- StudentDaoimpl:学生操作持久层实现
- TeacherDaoimpl:教师操作持久层实现
-
JdbcUtil.java:JDBC操作工具类
-
Com.silence.questionlib.domain
- Group:班级实体,对应班级表
- Paper:试卷实体,对应试卷表
- Question:试题试题,对应试题表
- Result:验证码生成结果实体
- Student:学生实体,对应学生表
-
Teacher:教师实体,对应教师表
-
Com.silence.questionlib.domain. exception
- DaoException:持久层未知异常
- GroupNotExist:班级不存在异常
- PaperNotExist:试卷不存在异常
- QuestionNotExist:试题不存在异常
- QuestionUsedException:试题正在被试卷使用异常
- ServiceException:业务处理层未知异常
- StudentNotExist:学生不存在异常
-
TeacherNotExist:教师不存在异常
-
Com.silence.questionlib.domain. factory
-
DaoFactory:持久层连接工厂,根据配置文件实现对不同持久层实现的相应加载
-
Com.silence.questionlib.domain. fombean
- QuestionForm::添加和修改试题表单Bean,进行表达校验和错误信息合成
- StudentLoginForm:学生登录表单Bean,进行表达校验和错误信息合成
- StudentRegisterForm:学生注册表单Bean,进行表达校验和错误信息合成
- TeacherLoginForm:教师登录表单Bean,进行表达校验和错误信息合成
-
TeacherRegisterForm:教师注册表单Bean,进行表达校验和错误信息合成
-
Com.silence.questionlib.domain. i18n
- I18nTag:自定义国际化标签
- I18nUtils:国际化工具类
-
resource.properties:国际化资源文件的缺省文件
-
Com.silence.questionlib.domain. service
- QuestionLibService:试题操作业务处理接口,对试题的增删改查,生成试卷等业务操作
- StudentService:学生业务处理接口,实现对学生登录注册,查看试卷等学生业务操作
-
TeacherService:教师业务处理接口,实现对教师注册登录,创建班级,查看班级学生等业务操作
-
Com.silence.questionlib.domain. serviceimpl
- QuestionLibServiceImpl:试题操作业务实现类
- StudentServiceImpl:学生业务处理实现类
-
TeacherServiceImpl:教师业务处理实现类
-
Com.silence.questionlib.domain. utils
- ServiceUtils:业务处理层工具类
-
WebUtils:表示层工具类
-
Com.silence.questionlib.domain. web. controller
- AddPaperServlet:处理教师添加试卷请求操作
- AddQuestionServlet:处理教师添加试题请求操作
- CheckServlet:处理学生提交试卷之后的批改操作
- DeleteQuestionServlet:处理教师删除试题的请求操作
- GroupServlet:处理教师查看班级学生的请求操作
- ListQuestionServlet:处理教师查看题库的请求操作
- LoginServlet:处理学生教师的登录请求操作
- PaperServlet:处理学生查看试卷的请求操作
- QuestionDetailServlet:处理教师查看题库中详细试题信息的请求操作
- RegisterServlet:处理学生教师注册请求操作
-
UpdateQuestionServlet:处理教师修改试题信息的请求操作
-
Com.silence.questionlib.domain. web. ui
- AddPaperUIServlet:向教师返回创建试卷的界面
- AddQuestionUIServlet:向教师返回添加试题的界面
- LoginUIServlet:返回学生教师的登陆请求界面
- RegisterUIServlet:返回学生教师的注册界面
- UpdateQuestionUIServlet:返回教师修改试题的界面
3.2 登陆验证模块说明
3.2.1 程序描述
本系统的所有功能模按块都必须调用“登录验证”子模块进行身份验证,此模块是所有用户进入系统时都必须调用的模块,系统用户登录界面中的【登录】按钮触发。
学生和教师的登录入口分开单独管理,以进入不同的界面,被赋予不同的特权。
进行登录界面时,需要输入账号、密码、验证码等信息均正确的情况下方可进入。
验证码是从0-09数字与a-z大小写字母组成,随机生成验证码图片,并保存到服务器会话对象中,因此验证码有时间期限。
3.2.2 功能
登录验证功能模块的IPO表如下表所示:
3.2.3 界面
3.2.4算法
【登录】按钮触发的处理:验证用户的合法性。
处理流程
-
取得用户输入的用户名、密码和验证码
-
加密用户名和密码传输到数据库并与帐户表进行一致性验证
-
如果用户名、密码和验证码都正确,以该用户身份进入系统总控制界面并获得相应系统权限,否则根据某项错误提示对应的错误信息,如:不存在该账号、密码错误、验证码错误、账号不能为空
3.2.5 流程逻辑
3.2.6 接口
本模块是系统的启动模块,它需要用户交互输入用户帐号、密码;它调用主控制模块。
3.2.7 限制条件
预先设置一个管理员和一个用户。
3.2.8 测试计划
-
初次安装系统后,测试初始用户帐号和密码能否正确登录到系统
-
正确登录后,退出注册一个新的账号
-
采用刚注册的用户账号和密码登录,应该能够正确登录
-
将某一项不填看是否提示错误信息
-
将某一项填错查看错误信息
3.3 注册模块说明
3.3.1 程序描述
对于没有账号的学生或教师,需要注册后才可以使用本系统。学生和教师因为输入信息不同,所以分为两个入口,进入注册界面后,需要输入相应的信息,并且这些信息符合规范才可以注册成功。将注册成功后的信息加入到对应的数据库表中。
点击注册,则注册完成。
3.3.2 功能
注册模块的IPO表如下表所示:
3.3.3 界面
3.3.4 算法
点击注册按钮,检测输入的合法性。
处理流程
-
输入注册界面的所有内容
-
点击注册,检测输入的合法性
-
如果不合法提示错误信息,如果合法则显示注册成功
注册时,账号和密码均采用MD5进行加密,将加密后的账号和密码保存到相应表的数据库中,以增加账户的安全性。
3.3.5 流程逻辑
3.3.6 接口
当所有信息填写均符合规范,并点击注册时,所有相应信息会保存到相应数据表中。并提示注册成功。
3.3.7 限制条件
只有所有信息都符合限制规范才可以注册成功。
3.3.8 测试计划
-
进行多次注册尝试,经注册后的信息进行登录,看是否会提示错误
-
输入不符合规范的信息,看是否会提示相应错误
3.3.9 尚未解决的问题
注册成功后没有跳到主页。
3.4 教师管理试题库系统
3.4.1 程序描述
本系统的所有功能模按块都必须调用“登录验证”子模块进行身份验证,此模块是所有用户进入系统时都必须调用的模块,而在验证的过程中除了要输入教师的职工号和密码外,同时还要输入验证码,让后方可通过系统用户登录界面中的【登录】按钮触发。如果错误,则显示错误的原因,比如验证码错误,如果正确的话则进入页面。接下来我们在教师的的管理界面里面可以看到有各种试题库,教师可以根据需要在里面增加试题,修改试题,删除试题,也可以重新加入一套试卷,或者删除一套试卷,同时我们也可以对试题库里面的题目进行查看,例如时间,出题人,也可以看到做题人(及学生)的班级和信息。
3.4.2 功能
登录验证功能模块的IPO表如下表所示:
3.4.3 界面
3.4.4 算法
-
【试题修改】按钮触发的处理:进入试题修改界面;如果进行修改试题信息并确定,便对试题表中的试题信息进行修改
-
【试题添加】按钮触发的处理:进入试题修改界面;如果进行添加试题信息并确定,便对试题表中的试题信息进行添加
-
【试题删除】按钮触发的处理:进入试题删除界面;如果进行删除试题信息并确定,便对试题表中的试题信息进行删除
-
【试卷添加】按钮触发的处理:进入试卷添加界面;如果进行添加试卷信息并确定,便对试卷表中的试卷信息进行添加
-
【试卷删除】按钮触发的处理:进入试卷删除界面;如果进行删除试卷信息并确定,便对试卷表中的试卷信息进行删除
-
【试卷修改】按钮触发的处理:进入试卷修改界面;如果进行修改试卷信息并确定,便对试卷表中的试卷信息进行修改
-
【班级信息】按钮触发的处理:进入班级信息界面;如果进入班级信息并确定,便进入班级信息
-
【试题信息】按钮触发的处理:进入试题信息界面;如果进入试题信息并确定,便进入试题信息
-
【返回】返回上一层界面
3.4.5 流程逻辑
3.4.6 接口
本模块是系统的主要输入模块模块,他需要老师成功登陆后方可进行,老师对系统的操作,将改变相应的数据库内容。
3.4.7 限制条件
至少有一名教师,以及一套试卷,试卷里面有一道题。
3.4.8 测试计划
-
初次安装系统后,测试是否可以进入教师管理试题库里面
-
进入之后,查看是否可以进行试题的添加删除修改的操作,以及对试卷的添加删除修改的操作,和对班级信息的查看,以及学生的信息的查看,还有试题的信息的查看
3.4.9 尚未解决的问题
未能从其他的数据库内导入试卷和试题。
3.5 学生考试系统
3.5.1程序描述
本系统的所有功能模按块都必须调用“登录验证”子模块进行身份验证,此模块是所有用户进入系统时都必须调用的模块,而在验证的过程中除了要输入学生的职工号和密码外,同时还要输入验证码,让后方可通过系统用户登录界面中的【登录】按钮触发。如果错误,则显示错误的原因,比如验证码错误,如果正确的话则进入页面。接下来我们在学生考试的管理界面里面可以看到有各种试题,学生可以根据试题选择其中的一套进行填写,填写完后可以进行提交。
3.5.2 功能
学生考试功能模块的IPO表如下表所示:
3.5.3 界面
3.5.4 算法
点击相应试题,进入做题界面。
处理流程
-
点击相应试题进入做题界面
-
填写试卷内容
-
填写完试卷内容后,点击提交 ,返回界面
3.5.5 流程逻辑
3.5.6 接口
本模块是系统的学生考试模块,需要学生成功登陆后方可使用。通过提交试题更改相应的数据库。
3.5.7 限制条件
至少有一名学生,以及一套试卷,试卷里面有一道题。
3.5.8 测试计划
-
选择多份试卷进行填写并提交,看能否提交成功
-
不同的账号登陆进行填写试卷提交
3.5.9 尚未解决的问题
试卷复查,试卷批改尚未完成。
参考文献
- 无纸化考试题库系统(济南大学·汪玥)
- 基于Web的在线考试系统(太原理工大学·林健)
- 网上考试和查分系统设计与实现(国防科学技术大学·王腾)
- 基于JSP技术的大学计算机课程题库管理系统的研究(黑龙江大学·宋晓明)
- 网上考试和查分系统设计与实现(国防科学技术大学·王腾)
- 郑州职业技术学院试卷管理系统的设计与实现(电子科技大学·王鸣)
- 基于JSP的招生考务管理系统的设计与实现(长安大学·石方夏)
- 基于B/S结构的题库管理系统的设计与实现(吉林大学·吴迪)
- 基于JSP/XML考试系统的设计与实现(华侨大学·朱达欣)
- 基于JSP技术在线考试系统的开发(武汉理工大学·龙保江)
- 基于J2EE的大学生体育理论考试管理系统的设计与实现(电子科技大学·陈志强)
- 基于JSP的考试后台管理系统的设计与开发(曲阜师范大学·常洪光)
- 基于Web的网络练习/考试系统的应用研究(吉林大学·郭淑馨)
- 考试后台管理系统(青岛科技大学·邓慧)
- 软件工程习题库信息化系统的研究与开发(复旦大学·曹阳)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码货栈 ,原文地址:https://bishedaima.com/yuanma/35270.html