数据结构试题库设计与实现,功能分析

数据结构试题库设计与实现

这个系统针对的用户是教师和超级管理员

需求分析:

  1. 信息需求:系统需要知道登录进来教师或者管理员的 id

  2. 处理需求:

    1. 查看试题

    2. 增加试题

      选择题,填空题,判断题,简答题,应用题,算法分析题,算法设计题,按章节、知识点、题型分类,并标注难度系数。

      对题目和答案中涉及到的图形和表格进行存储和处理。

    3. 编辑试题

    4. 删除试题

  3. 安全需求:只有教师和超管才能进入改系统

  4. 完整性需求:参照完整性,一个教师或者超管对应多个题库和多个试题等

题库管理

按章节分类的话,初始想法把章节单独拿出来做一个表,做成题库管理,题库包括:

  1. 线性表题库
  2. 栈和队列题库
  3. 树与二叉树题库
  4. 图题库
  5. 查找题库
  6. 排序题库
  7. 之后可能还有算法设计与分析之类的题目,比如贪心,动态规划等,所以单独拿出来做一个题库管理。

题库可以进行增删改查

添加题库时,用户要填题库名和题库描述。

搜索题库可以按照题库名进行搜索

题库管理页面显示 题库名,各个类型题目(选择题,填空题,判断题,简答题,应用题,算法分析题,算法设计题)的数量和创建时间。

试题管理

试题管理页面显示题目类型,题目内容,提交的教师,所属题库,创建时间

添加试题时,用户要填

  • 题目类型

  • 难度等级 容易,一般,困难

  • 归属题库 可以多选,因为一条题可能包含图和队列两个章节的内容

  • 题目内容

  • 题目整体分析 可选

  • 答案

    • 如果是单选题,多选,判断给出一个表格填写答案内容和答案解析以及正确答案

      image-20210116104106670

    • 如果是简答题,应用题,算法分析题,算法设计题

      • 将答案拍照放入数据库中,学生在 数据结构在线训练系统中写出的简答题,应用题,算法分析题,算法设计题也一样形成图片存储到数据库中。

搜索试题 可以按照题目类型或者归属题库或者题目内容或者教师名字形成动态sql进行搜索。

表的设计

教师/管理员 与 题库 一对多

教师 与 试题 一对多

问题 与 答案 一对多

问题 与 题库 一个题库有多个问题 多对多

系统E-R图如下:

以教师为例

数据结构试题库设计与实现 (1)

表设计如下

该系统有四张表:

1. 题库表 repository:


参数 类型 描述 非空
id varchar(64) 题库id
user_id varchar(64) 教师/超管id
title varchar(255) 题库标题
remark varchar(255) 题库描述
multi_count int(11) 多选题数量
judge_count int(11) 判断题数量
radio_count int(11) 单选题数量
saq_count int(11) 简答题数量
applied_count int(11) 应用题数量
aap_count int(11) 算法分析题数量
adp_count int(11) 算法设计题数量
create_time datetime 创建时间
update_time datetime 更新时间

2. 试题表 question:

参数 类型 描述 非空
id varchar(64) 试题id
user_id varchar(64) 教师/超管 id
question_type int(11) 题目类型,比如1:单选,2:多选
level int(11) 难度等级。比如:1 简单,2:普通,3:难
content varchar(2000) 题目内容
analysis varchar(2000) 整题解析
create_time datetime 创建时间
update_time datetime 更新时间

由于题库和试题是多对多的关系,把这个关系拿出来单独做一个表

3. 试题题库表 qu_repo

参数 类型 描述 非空
id varchar(64) 试题题库id
qu_id varchar(64) 试题id
repo_id varchar(64) 试题归属题库id
qu_type int(11) 题目类型

这里有题目类型,主要是可以不通过 repository表、qu_repo表和question表连表查询而直接通过 repository表和qu_repo表连表查询更新各个试题的数量,减少查询时间。

4. 试题答案表 qu_answer

参数 类型 描述 非空
id varchar(64) 答案id
qu_id varchar(64) 试题id
is_right tinyint(3) 是否正确 0错误 1正确
1_content varchar(5000) 答案内容(单选,多选,判断)
analysis varchar(5000) 答案分析
2_content MEDIUMBLOB 答案内容(简答题,应用题,算法分析题,算法设计题)

MEDIUMBLOB可以存储16MB以下的图片。

原文地址:https://www.cnblogs.com/iandf/p/14286843.html