基于JSP和MYSQL的题库管理系统设计与实现
摘 要
随着信息技术的不断发展,我们已经来到了一个信息全球化的时代,信息量的指数级增长导致了大数据成为不可逆的潮流和趋势。在环境的驱动下,大数据得到了巨大的发展,也成为了一个热门话题,些走在大数据前端的公司已经开始提供很多云服务,越来越多的公司和单位也开始使用大数据服务以降低成本和提高效率。目前有关题库管理的系统很多,但都很难满足管理大量试题的要求,各学校之间也无共享试题库资源的方法,系统也存在诸多扩展问题,也难以控制硬件成本。
针对目前题库管理系统存在的问题,设计开发出一一个基于JSP的题库管理系统来解决目前的问题显得尤为重要。本文从B/S的基础出发,由底层原理到上层应用,概要的分析了B/S技术的基本架构,基本模式及基本特点,重点研究了关于JSP的主要技术。接着分析了本系统在开发过程中使用的相关技术,然后针对系统的开发背景,进行详细的业务分析,同时基于需求分析,对系统的业务流程进行了详尽的分析并得出了完整的数据表和数据关系的设计。最后在此基础上完成本系统的界面设计,功能模块划分、系统实现,并对本系统进行了总结和展望。
本系统使用的开发方法是JSP技术,数据存储端为MYSQL,以及使用了Myeclipse10和Tocat, 最后开发了一个基于JSP的题库管理系统。基于大数据平台的题库管理系统创新的提升了系统的扩展性,大数据平台也将成为题库管理系统发展和改进的一个必然趋势。
一、开发背景
目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。试题库管理系统可辅助教师对所教科目的各种试题的题型、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。
本文首先简要介绍了开发试题库管理系统的可行性分析,系统的需求分析和总体设计,然后主要针对系统的设计、组成、用户界面设计、程序设计进行了详细分析,并对系统部分关键性代码进行了讲解,同时对一般系统软件设计的基本思想及工作流程给出了方法技巧。首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
二、需求分析
2.1 用户基本需求描述
根据需求调查的结果,确定常见题目类型(例如选择题,填空题等),并可以管理题目类型。
-
系统需要提供MIS系统的一些公有功能模块,包括用户管理,权限管理等
-
提供给老师按类型录入试题的功能
-
提供接口给系主任根据培养计划输入课程,并指定负责老师
-
课程负责老师可以根据教学大纲建立课程的知识点,并实施管理
-
出题老师可以设置课程的章节,每道题可以关联某个章节,而章节可以关联一个或多个知识点
本系统根据角色划分为四类,分别是老师、系主任、课程负责人和系统管理员。本系统主要需求者包括:出题老师用户、课程负责人用户、系主任用户、管理员用户。每个用户的需求描述如下:
- 出题老师用户
- 输入自己的用户名和密码,可以查看自己负责哪门课程的出题任务。可修改自己的个人信息
- 可以添加或者修改课程的章节,并设置关联知识点
-
可以根据题目类型输入题目,并设置题目的章节或者知识点
-
课程负责人用户
- 输入自己的用户名和密码,可以查看自己是哪门课程的负责人。可修改自己的个人信息
- 根据教学大纲输入课程的知识点,并设置知识点的权重
- 可以添加课程的章节,并设置关联知识点
-
可以指定哪些老师是课程负责出题的老师
-
系主任用户
- 输入自己的用户名和密码,可以查看本学院的各任课教师的基本情况,可修改自己的个人信息
- 可以根据培养计划输入课程以及课程基本信息
-
为每门课程指派一位课程负责人
-
管理员用户
- 作为管理员,当经过用户名与密码权限检验之后,可以查看所有用户的基本信息。可修改自己的个人信息
- 管理员可以添加,修改用户信息
- 管理员可以设置和管理题目的类型
- 根据学校机构指派专业系和系主任
以上就是对这个系统的每一个使用的功能以及权限的分析,最后总结来进行说明主要功能模块:登录管理、用户管理、权限管理、课程管理、题目管理这五个主要模块。
模块对应的系统角色以及模块的具体描述:
- 登录管理模块 :用户(课程负责人用户、系主任用户、出题老师用户、管理员用户)
-
具体描述:当用户进入系统时,首先需要进行登录。当用户登录时,输入验证信息,验证信息传入数据库中,当数据库中验证通过这个数据,发送请求,角色能够成功登入系统
-
用户管理模板 :用户(课程负责人用户、系主任用户、出题老师用户、管理员用户)
-
具体描述:当用户通过验证进入系统时,可以在系统中查看自己的信息以及修改相关资料和查询资料。管理员用户可以进行查看自己的信息以及管理员添加、修改、删除用户信息
-
权限管理模板 :用户(管理员用户)
-
具体描述:当管理员输入验证信息,信息通过时,对用户的权限进行配置
-
课程管理模块 :用户(课程负责人用户、系主任用户、出题老师用户、管理员用户)
-
具体描述:课程负责人用户根据教学大纲建立课程的知识点,并实施管理。系主任用户:根据培养计划输入课程,并指定负责老师。出题老师用户设置课程的章节,每道题可以关联某个章节,而章节可以关联一个或多个知识点
-
题目管理模块 :用户(出题老师用户、管理员用户)
- 具体描述:出题老师用户按类型录入试题。管理员用户:设置和管理题目的类型
该系统采用表示层、业务逻辑层、数据访问层三层构架。
-
表示层 效果采用HTML5、CSS等语言和前端框架jQuery,实现用户交互界面。交互界面包括用户登录界面,个人信息展示页面,课程、课件、作业查看页面等
-
业务逻辑层 利用Servlet,JSP来处理来自前端的请求,获取数据库数据,并作出相应的处理,将处理数据提交到前端,显示给用户
-
数据访问层 利用Hibernate架构操作数据库,通过应用程序经过Hiberante持久层来访问数据库。数据访问层的关键是确定表结构和表属性,便于业务逻辑层进行对数据库的查询,良好的数据库结构,对数据操作有很大的用处
2.2 数据流图分析
数据流图顶层图
数据流图0层图
数据流图1-1图
数据流图1-2图
数据流图1-3图
数据流图1-4图
2.3 数据字典
2.3.1 数据结构定义
- 数据结构编号 : JD-001
- 数据结构名称:题目
-
数据结构组成:题型号+知识点ID号+课程号+章节号+题目负责人工号+难度系数+题目类型
-
数据结构编号 : JD-002
- 数据结构名称:课程
-
数据结构组成:课程号+课程名+课程老师工号+出题老师工号+课程负责人工号+操作时间
-
数据结构编号 : JD-003
- 数据结构名称:用户
- 数据结构组成:用户ID+用户名+密码+权限等级
2.3.2 数据流定义
- 编号 : L-001
- 名称:用户及密码
- 简述:登陆
- 来源:用户表
-
流向:身份验证
-
编号 : L-002
- 名称:题目
- 简述:出题目
- 来源:题目表
-
流向:题目存储库
-
编号 : L-003
- 名称:课程
- 简述:进行选择课程
- 来源:课程表
- 流向:课程选择存储库
2.3.3 数据存储定义
- 编号 : C-001
- 名称:用户表
- 简述:系统相关人员
- 组成:用户名ID+用户名+密码+权限等级
- 关键字:ID、用户名,密码、权限等级
-
相关处理:身份验证
-
编号 : C-002
- 名称:题目表
- 简述:系统相关人员
- 组成:题型号+知识点ID号+课程号+章节号+题目负责人工号+难度系数+题目类型
- 关键字:题型号、课程号、题目类型、知识点ID号、题目负责人工号
-
相关处理:出题老师选择题目类型、新增题目
-
编号 : C-003
- 名称:课程表
- 简述:系统相关人员
- 组成:课程号+课程名+课程老师工号+出题老师工号+课程负责人工号+操作时间
- 关键字:课程号、课程名、课程老师工号、出题老师工号、课程负责人工号
- 相关处理:老师进行选择课程然后出类型的课程
三、详细设计
3.1 概念模型设计
题库管理系统的整体E-R图
题库管理的功能模块图
3.2 关系模型设计
-
用户 (用户ID号、用户名、密码、权限等级)主键是用户ID号
-
课程 (课程号、课程名、课程老师工号、出题老师工号、课程负责人工号、操作时间)主键是课程号,外键是课程老师工号、出题老师工号、课程负责人工号
-
章节 (章节号、章节名称、课程号、章节负责人工号、操作时间)主键是章节号,外键是课程号、章节负责人工号
-
知识点 (知识点ID号、章节号、知识点内容、知识点负责人工号、操作时间)主键是知识点ID号,外键是章节号、知识负责人工号
-
知识点章节关系 (关系ID号、知识点ID号、章节号、操作时间)主键是关系ID号,外键是知识点ID号
-
选择题 (题目号、知识点ID号、题目负责人工号、难度系数、题目类型、选项A、选项B、选项C、选项D、正确答案、备注)主键是题目号,外键是知识点ID号、题目负责人工号
-
填空题 (题目号、知识点ID号、题目负责人工号、难度系数、题目类型、题目内容、正确答案、备注)主键是题目号,外建是知识点ID号、题目负责人工号
-
编程题 (题目号、知识点ID号、题目负责人工号、难度系数、题目类型、题目内容、正确答案、备注)主键是题目号,外建是知识点ID号、题目负责人工号
3.3 物理模型设计
tb_user表(用户表)
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
id | int(10) | 用户账号 | 主键 |
name | varchar(15) | 用户名称 | 无 |
password | varchar(15) | 用户密码 | 无 |
rank | int(2) | 用户等级 | 0为管理员,1为系主任,2为课程负责老师,3为出题老师 |
tb_courses表(课程表)
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
course_id | int(10) | 课程号 | 主键 |
course_name | varchar(15) | 课程名 | 无 |
course_tea_id | int(10) | 课程负责老师工号 | 外键 |
rubric_tea_id | int(10) | 出题老师工号 | 外键 |
leader_id | int(10) | 课程负责人工号 | 外键 |
date | varchar(30) | 操作时间 | 无 |
ability表(知识点表)
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
ability_id | int(10) | 知识点号 | 主键 |
course_id | int(10) | 课程号 | 外键 |
chapter_id | int(10) | 章节号 | 外键 |
ability_body | varchar(50) | 知识点内容 | 无 |
leader_id | int(10) | 知识点负责人工号 | 外键 |
date | varchar(30) | 操作时间 | 无 |
tb_bct表(编程题表)
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
id | int | 编程题id,自动编号,主键 | 主键 |
question | varchar(1000) | 题目名称 (非空) | 无 |
questiontype | int | 题目类型(非空) (选择题1,填空题2,编程题3) | 无 |
questionpoint | varchar(10) | 题目知识点 | 无 |
tb_xzt表(选择题表)
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
id | int(10) | id | 主键 |
question | varchar(30) | 题目名称 | 无 |
answer | int(10) | 答案 | 无 |
optionA | int(10) | 选项A | 无 |
optionB | varchar(30) | 选项B | 无 |
optionC | varchar(30) | 选项C | 无 |
optionD | varchar(30) | 选项D | 无 |
questiontype | varchar(30) | 题目类型 | 无 |
question | varchar(30) | 题目知识点 | 无 |
tb_tkt表(填空题表)
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
id | int | 填空题id,自动编号,主键 | 主键 |
question | varchar(1000) | 题目名称(非空) | 无 |
answer | varchar(100) | 答案(非空) | 无 |
questiontype | int | 题目类型(非空) (选择题1,填空题2,编程题3) | 无 |
questionpoint | varchar(16) | 题目知识点 | 无 |
四、系统功能模块说明
4.1 用户注册模块
-
功能描述 :此模块的主要功能是实现用户注册。系统的用户必须在注册获得合法身份之后才能登录系统进行对应的操作(针对出题老师)
-
输入 :用户名、密码、姓名
-
输出 :系统合法用户
4.2 用户登录模块
-
功能描述 :此模块的主要功能是实现用户登录。系统的用户在注册之后,登录系统进行对应的操作
-
输入 :用户名、密码
-
输出 :登录成功
4.3 管理员管理用户模块
-
功能描述 :此模块的主要功能是管理员可以添加,修改用户信息(查看所有用户的基本信息,可修改自己的个人信息)
-
输入 :用户名、密码、姓名、性别、权限等级
-
输出 :添加/修改成功
4.4 系主任管理课程模块
-
功能描述 :此模块的主要功能是可以根据培养计划输入课程以及课程基本信息。为每门课程指派一位课程负责人
-
输入 :课程号、课程名、课程负责人工号
-
输出 :添加课程/课程负责人成功
4.5 课程负责人管理章节、知识点模块
-
功能描述 :此模块的主要功能是根据教学大纲输入课程的知识点,并设置知识点的权重。添加课程的章节,并设置关联知识点。指定哪些老师是课程负责出题的老师
-
输入 :章节号、章节名、知识点号、知识点名、出题老师工号
-
输出 :添加章节/知识点成功
4.6 出题老师管理出题模块
-
功能描述 :此模块的主要功能是根据题目类型输入题目,并设置题目的章节或者知识点
-
输入 :题目号、题目类型、题目名称、题目答案、操作人
-
输出 :添加题目成功
五、系统实现
服务端项目结构图
客户端项目结构图
5.1 主界面
用户进入主页,未登录用户(出题老师)可进行注册、登录操作,注册登录用户可进行修改个人信息、课程管理、题目管理。
5.2 注册模块
进入主页面,点击注册按钮,进入注册页面。输入合法的手机号、密码,点击注册按钮,注册完成。
5.3 登录模块
进入主页面, 点击登录按钮,输入存在的用户名和密码,点击登录。若密码错误,则弹出密码错误框,若密码正确,进入主页面。若用户未注册,可点击注册按钮,进入注册页面,进行注册。
5.4 管理员模块
管理员登录成功后,进入管理员主界面,管理可以管理教师用户,管理公告,可以修改个人信息。
5.5 系主任模块
系主任主页模块页面展示图
系主任管理课程模块页面展示图
系主任输入自己的用户名和密码,可以查看本学院的各任课教师的基本情况,可修改自己的个人信息。可以根据培养计划输入课程以及课程基本信息,并为每门课程指派一位课程负责人。
5.6 课程负责人模块
课程负责人输入自己的用户名和密码,可以查看自己是哪门课程的负责人。可修改自己的个人信息。根据教学大纲输入课程的知识点,并设置知识点的权重。可以添加课程的章节,并设置关联知识点。可以指定哪些老师是课程负责出题的老师。
5.7 出题老师模块
出题老师首页模块页面展示图
出题老师查看模块页面展示图
出题老师出题模块页面展示图
出题老师修改个人信息页面展示图
老师输入自己的用户名和密码,可以查看自己负责哪门课程的出题任务。可修改自己的个人信息。可以添加或者修改课程的章节,并设置关联知识点。可以根据题目类型输入题目,并设置题目的章节或者知识点。
总结
本文对高校题库管理的现状和存在的问题从系统方面进行了分析研究,针对操作繁琐工作效率低,容易造数据的遗漏、误报等问题,做出此软件系统,分析结果表明,此软件系统很好的解决了高校题库管理复杂的一系列问题。
整个过程中,从需求分析到设计、编码、测试,我们都力求规范化和文档化,努力让自己新学的知识运用到本软件的开发中,尽量保证整个系统的开发进度和质量,顺利完成这次的课程设计,为这个系统画上一个完美的句号。不过在系统开发过程中,好多知识都是随学随用,就增加了很多不必要的麻烦。比如说:软件运行问题,加入插件问题,数据库的安全性问题,框架的使用等。虽说这些都会消耗系统开发的时间,但在老师的指导下,我们还是顺利的完成了这个系统的设计,成功实现了相关的功能。
本系统完成的主要工作有:
-
老师用户输入自己的用户名和密码,可以查看自己负责哪门课程的出题任务。可修改自己的个人信息,可以添加或者修改课程的章节,并设置关联知识点,可以根据题目类型输入题目,并设置题目的章节或者知识点
-
作为管理员,当经过用户名与密码权限检验之后,可以查看所有用户的基本信息。可修改自己的个人信息,管理员可以添加,修改用户信息,管理员可以设置和管理题目的类型,根据学校机构指派专业系和系主任
但本系统还存在很多不足,如:很多功能还未实现,但是我再接下来的日子里面逐渐去完善这个系统,代码不便于日后修改升级等。此外,本系统也仅限于局域网管理,未对网络管理进行研究。这些均有待改善。
遇到的困难主要就是:在这个系统的结构图设计上,由于对数据流图不熟悉,没有分析好数据的转向,导致在这方面花费了大量的时间以及精力去解决。
参考文献
[1] 刘阳娜.大数据下的MySQL数据库的效率优化[J].信息通信,2017.
[2] 韩立刚.跟韩老师学SQL Server数据库设计与开发[M].北京:水利水电出版社,2017.4.
[3] 刘玉红、郭广新.SQL Server 2012数据库应用[M].北京:清华大学出版社,2017.1.
[4] 王英英.SQL Server 2008入门与提高[M].北京:清华大学出版社,2017.10.
[5] 杨开振等.Java EE互联网轻量级框架整合开发[M].北京.电子工业出版社,2017,7.
[6] 许令波.深入分析Java Web技术内幕[M].北京:中国电力出版社,2017.5.
[7] 江国文.大数据环境下基于MySQL的数据库架构设计与实现[M].电子世界,2018(6):69-72.
[8] 王成,陈果.基于MySQL_MongoDB_Redis的Online Judge多数据库应用.计算机时代,2018(09):11-16.
[9] 明日科技.HTML从入门到精通[M].北京:清华大学出版社,2017.7
[10] 本•弗莱恩HTML5+ CSS3+JavaScript 网页设计实战[M].北京.人民邮电出版社,2017.1
参考文献
- 基于JSP的招生考务管理系统的设计与实现(长安大学·石方夏)
- 职业学校试题库系统的设计与实现(西安电子科技大学·黄英)
- 基于JSP的招生考务管理系统的设计与实现(长安大学·石方夏)
- 无纸化考试题库系统(济南大学·汪玥)
- 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
- 软件工程习题库信息化系统的研究与开发(复旦大学·曹阳)
- 基于B/S模式的通用试题库设计与实现(黑龙江大学·魏晶)
- 考试后台管理系统(青岛科技大学·邓慧)
- 基于J2EE的大学生体育理论考试管理系统的设计与实现(电子科技大学·陈志强)
- 考试后台管理系统(青岛科技大学·邓慧)
- 基于JSP的在线实时考试系统(长安大学·郑辉)
- 考试后台管理系统(青岛科技大学·邓慧)
- 无纸化考试题库系统(济南大学·汪玥)
- 计算机知识考试系统的设计与实现(电子科技大学·楼凤珍)
- 基于B/S结构的题库管理系统的设计与实现(吉林大学·吴迪)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码驿站 ,原文地址:https://bishedaima.com/yuanma/35220.html