当前位置: 首页 > news >正文

毕业设计:基于springboot的精品在线试题库系统(源码)

4 系统设计

4.1系统概要设计

精品在线试题库系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构,图4.1就是开发出来的程序工作原理图。

图4.1 程序工作的原理图

4.2系统功能结构设计

下图就是系统功能结构图。

图4.1 系统功能结构图

4.3数据库设计

4.3.1数据库E-R图设计

程序设计是离不开对应数据库的设计操作的,这样的做法就是减少数据对程序的依赖性,所以数据库的设计也是需要花费大量的日常时间来进行设计的,在设计中对程序开发需要存储的数据信息进行实体划分,先确认实体,然后设计实体的属性等操作,这种设计就是数据库设计里面不能少的必须有的E-R模型设计。为了降低程序设计的对应的数据库设计难度,开发人员也可以使用相应的工具来进行E-R模型设计,现在市面上设计E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,还有微软的Visio绘图工具。为了简便起见,本程序在设计E-R模型的时候,就选用了微软的Visio这款功能强大,操作便利的绘图工具。

下面就展示精品在线试题库系统的实体E-R图。

(1)下图就是管理员实体E-R图

图4.7 管理员实体E-R图

(2)下图就是教师实体E-R图

图4.8 教师实体E-R图

(3)下图就是学生信息实体E-R图

图4.9 学生信息实体E-R图

4.3.2 数据库表结构设计

本次程序开发选用的数据库管理工具是MySQL数据管理工具,使用它存放数据也需要创建程序对应的数据库文件,并命名刚创建的数据库文件,有了数据库也需要创建各种数据表来充实数据库,在数据表的创建中,不仅需要对数据表命名,也需要对数据表的字段进行设计,包括每个数据表里面需要设置的字段名称,字段对应的数据类型信息,字段的主键设置这个也是不可缺少的,因为每个数据表里面的主键就是标记着这个数据表跟其他数据表相区分的唯一标志。就相当于生活中的每个人都有姓名,但是上网搜索自己的名字,会发现全国上下有很多人的名字跟自己的名字一模一样,包括姓氏以及名字,区分每个人的唯一信息就是每个人的身份证号信息,主键在数据表里面也是起着这样的重要作用。下面就介绍本次开发的程序精品在线试题库系统的数据表结构信息。

1学生表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

xuehao

String

学号

4

mima

String

密码

5

xueshengxingming

String

学生姓名

6

xingbie

String

性别

7

touxiang

String

头像

8

zhuanye

String

专业

9

shouji

String

手机

10

youxiang

String

邮箱

2试题表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

paperid

Integer

所属试卷id(外键)

4

papername

String

试卷名称

5

questionname

String

试题名称

6

options

String

选项,json字符串

7

score

Integer

分值

8

answer

String

正确答案

9

analysis

String

答案解析

10

type

Integer

试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空)

11

sequence

Integer

试题排序,值越大排越前面

3教师表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

jiaoshigonghao

String

教师工号

4

mima

String

密码

5

jiaoshixingming

String

教师姓名

6

xingbie

String

性别

7

zhaopian

String

照片

8

zhicheng

String

职称

9

renjiaokemu

String

任教科目

10

lianxidianhua

String

联系电话

11

jiaoshiyouxiang

String

教师邮箱

4试卷表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

name

String

试卷名称

4

time

Integer

考试时长(分钟)

5

status

Integer

试卷状态

5专业表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

zhuanye

String

专业

6考试记录表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

userid

Integer

用户id

4

username

String

用户名

5

paperid

Integer

试卷id(外键)

6

papername

String

试卷名称

7

questionid

Integer

试题id(外键)

8

questionname

String

试题名称

9

options

String

选项,json字符串

10

score

Integer

分值

11

answer

String

正确答案

12

analysis

String

答案解析

13

myscore

Integer

试题得分

14

myanswer

String

考生答案

7管理员表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

username

String

用户名

3

password

String

密码

4

role

String

角色

5

addtime

Date

新增时间


5 系统实现

5.1 学生管理

管理员可以添加,查询,修改,删除学生。下图就是学生管理页面。

图5.1 学生管理页面

5.2 教师管理

管理员可以对教师信息进行添加,删除,查询和修改操作。下图就是通讯录信息管理页面。

图5.2教师信息管理页面

5.3 专业管理

管理员可以对专业进行添加,查询,修改,删除操作。下图就是专业管理页面。

图5.3 专业管理页面

5.4 试卷管理

管理员和教师可以对试卷进行修改,删除操作。下图就是作业管理页面。

图5.4 试卷管理页面

5.5 试题管理

管理员和教师可以对试题进行添加,查询,修改,删除操作。下图就是试题管理页面。

图5.5 试题管理页面

5.6 考试管理

学生可以参加考试。

图5.6 考试管理页面

5.7 错题本

学生参考考试后可以查看自己的错题本,教师和管理员都可以看到学生的错题本。

图5.7 错题本页面

5.8 考试记录

学生参加过考试后可以在自己的考试记录里面查到自己的考试记录,管理员和教师也可以查看到学生的考试记录。

图5.8 考试记录页面

http://www.jsqmd.com/news/717080/

相关文章:

  • 如何高效配置网易云音乐插件管理器:BetterNCM安装器完整指南
  • B站缓存视频合并终极指南:如何一键将碎片视频转为完整MP4
  • 5分钟免费解锁PotPlayer实时字幕翻译:让外语视频秒变中文的终极教程
  • 3分钟终极指南:如何免费永久激活Windows和Office的完整教程
  • 告别手动删除!Element UI/Plus 上传组件文件列表状态同步的完整指南(含自定义模板)
  • CF2226C
  • 口碑好的做日单围巾厂家
  • Golang怎么实现日志记录_Golang如何用zap或logrus搭建结构化日志系统【实战】
  • 试写Spring-boot的RestController
  • 昆仑万维第一季营收25.7亿:同比增46% 净亏8.9亿 艾捷科芯刚融资5.5亿
  • 终极指南:Reloaded-II如何彻底改变你的游戏Mod管理体验
  • 如何脱机维护表空间数据文件_OFFLINE与ONLINE状态的切换场景
  • FFXIV ACT 自动跳过副本动画插件:5分钟快速提升游戏效率完整指南
  • 手把手教你用Vivado仿真LoongArch单周期CPU:从斐波那契程序到上板验证
  • 实测对比:用FasterNet的FasterBlock替换YOLOv8的C2f,推理速度到底能快多少?
  • 别再死记硬背了!用‘我’字口诀搞定ER图1对多、多对多连线标注(附期末真题拆解)
  • FigmaCN中文插件:3分钟解锁专业设计工具的母语体验
  • 5分钟掌握MediaFire批量下载:Python脚本轻松下载整个文件夹
  • 终极指南:如何在Windows文件资源管理器中快速预览STL模型缩略图
  • 什么是UTC, TAI和闰秒,北斗接收机如何发布闰秒
  • 告别写代码!用Shader Graph节点5分钟做个动态溶解效果(URP教程)
  • Yageo国巨Mlcc电容原厂一级代理分销经销商
  • 别再纠结模式了!手把手教你为NI CompactRIO选择最合适的LabVIEW编程模式(含实战对比)
  • 微信数据解密工具PyWxDump:从技术探索到合规反思的三步认知
  • STM32串口高效通信实战:用HAL_UART_Transmit_IT+DMA打造不卡顿的日志输出系统
  • 51单片机AD转换实战:手把手教你用XPT2046和PCF8591读取传感器数据(附完整代码)
  • 5分钟上手Tinke:零基础入门NDS游戏资源编辑器
  • 如何快速掌握无人机数据分析:3步可视化飞行日志
  • 手把手教您 Claude 桌面端无需账号订阅,免费接入国产自定义大模型(Claude Desktop 绕过订阅限制,接入任意自定义 AI 模型)
  • 别再只盯着Apriori了!用Python的mlxtend库5分钟搞定购物篮分析(支持度/置信度/提升度实战)