基于JSP实现的试题库管理系统

Naiiive

发布日期: 2018-11-06 10:17:49 浏览量: 1833
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

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 尚未解决的问题

试卷复查,试卷批改尚未完成。

上传的附件 cloud_download 基于JSP实现的试题库管理系统.7z ( 4.80mb, 708次下载 )
error_outline 下载需要5点积分

发送私信

我在一个迷惘的故事里,看着自己的人生演绎着百态

11
文章数
14
评论数
最近文章
eject