基于微信小程序的刷题系统的设计与实现springboot+论文源码调试讲解
第3章 系统设计
3.1系统总体结构设计
一个好的设计不止是功能完整,操作流畅,还要符合用户的审美和界面的友好。在进入正式系统实施前,不可缺少的步骤为系统的总体结构设计,本系统为实用性的系统,所以开发的功能都是针对试题信息相关的。本系统的结构可以分为管理员界面和用户操作界面。在管理员界面主要内容是试卷、试题、用户信息、科目类型、考试信息等,学生的主要功能是考试和刷题。本系统的总体结构图如下图3.1所示:
图3.1基于微信小程序的刷题系统的功能结构图
3.2系统开发步骤
系统的开发步骤可以分为系统开发、系统规划和系统实施。每一步都是在上上步的基础上进行的,不能跳级,在下一级进行时,不会对上一级的工作进行大的改变。所以就需要在每一级设计时充分保证正确才可以进行一下级的设计。这种开发步骤是最省时省力的方法,是经过国内外长久实践得出的最有效方法。
3.3数据库设计
3.3.1数据库概念结构设计
数据库的概念结构设计就是需要在系统分析的过程中分析开发本系统是要做什么,然后设计出大的框架,根据大的框架把系统进行转换成怎么做的物理模型。然后再进行设计。
在所有的系统设计中数据库的设计占有举足轻重的地位,选择合适的数据库软件进行设计非常重要。因为本系统的功能非常有针对性,没有进行扩展,所以本系统采用小型轻便的mysql软件进行设计。数据库的安全保障着系统里数据的安全,本系统的主要数据为试题信息、试卷信息以及用户信息、知识点信息。本系统的ER关系图如下图3.2所示:
图3.2实体关系ER图
(1)管理员的属性包括编号、用户名和密码等,管理员的ER图如下图3.3所示:
图3.3管理员信息ER图
(2)试卷信息主要为管理员进行管理,学生进行浏览,试卷信息的属性包括编号、题目、数量、分数等,详细的试卷信息ER图如下图3.4所示:
图3.4试卷信息ER图
(3)成绩信息的属性包括编号、学生、分数等,成绩信息的ER图如下图3.5所示:
图3.5成绩信息ER图
(5)用户信息属性包括账号、密码、姓名、性别、编号等,用户信息ER图如下图3.6所示:
图3.6用户信息ER图
3.3.2数据库逻辑结构设计
数据库的逻辑结构设计也可以称为数据库表的设计,一般情况下采用第三范式进行设计,因为数据库的概念结构可以单独使用,不特定于某个数据库所以就需要对数据库的概念结构进行转换,从上节的数据ER图转换出本系统的数据库表,主要包括管理员信息表、用户信息表、试卷信息表、试题信息表、知识点信息表等,具体的数据库表如下表3.1-3.7所示:
表3.1 config
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | name | varchar | 100 | 否 | ||||||
3 | value | varchar | 100 | 是 |
表3.2 discusszhishidian
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | addtime | timestamp | 是 | CURRENT_TIMESTAMP | ||||||
3 | refid | bigint | 20 | 否 | ||||||
4 | userid | bigint | 20 | 否 | ||||||
5 | nickname | varchar | 200 | 是 | ||||||
6 | content | longtext | 否 | |||||||
7 | reply | longtext | 是 |
表3.3 exampaper
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | addtime | timestamp | 是 | CURRENT_TIMESTAMP | ||||||
3 | name | varchar | 200 | 否 | ||||||
4 | time | int | 11 | 否 | ||||||
5 | status | int | 11 | 否 | 0 |
表3.4 examquestion
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | addtime | timestamp | 是 | CURRENT_TIMESTAMP | ||||||
3 | paperid | bigint | 20 | 否 | ||||||
4 | papername | varchar | 200 | 否 | ||||||
5 | questionname | varchar | 200 | 否 | ||||||
6 | options | longtext | 是 | |||||||
7 | score | bigint | 20 | 是 | 0 | |||||
8 | answer | varchar | 200 | 是 | ||||||
9 | analysis | longtext | 是 | |||||||
10 | type | bigint | 20 | 是 | 0 | |||||
11 | sequence | bigint | 20 | 是 | 100 |
表3.5 examrecord
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | addtime | timestamp | 是 | CURRENT_TIMESTAMP | ||||||
3 | userid | bigint | 20 | 否 | ||||||
4 | username | varchar | 200 | 是 | ||||||
5 | paperid | bigint | 20 | 否 | ||||||
6 | papername | varchar | 200 | 否 | ||||||
7 | questionid | bigint | 20 | 否 | ||||||
8 | questionname | varchar | 200 | 否 | ||||||
9 | options | longtext | 是 | |||||||
10 | score | bigint | 20 | 是 | 0 | |||||
11 | answer | varchar | 200 | 是 | ||||||
12 | analysis | longtext | 是 | |||||||
13 | myscore | bigint | 20 | 否 | 0 | |||||
14 | myanswer | varchar | 200 | 是 |
表3.6 kemuleixing
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | addtime | timestamp | 是 | CURRENT_TIMESTAMP | ||||||
3 | leixing | varchar | 200 | 是 |
表3.7 storeup
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | addtime | timestamp | 是 | CURRENT_TIMESTAMP | ||||||
3 | userid | bigint | 20 | 否 | ||||||
4 | refid | bigint | 20 | 是 | ||||||
5 | tablename | varchar | 200 | 是 | ||||||
6 | name | varchar | 200 | 否 | ||||||
7 | picture | varchar | 200 | 否 |
第4章 系统实现
4.1登录功能模块的实现
登录功能包括用户登录和管理员登录,在登录界面设计中包括用户名和密码、身份的检验。用户名和密码、身份的检验过程由数据库自动完成,此过程需要1秒左右。首先由用户填写账号和密码,然后选择身份,最后点击登录系统,数据库自行对用户名和密码进行对比,所填写数据正确方能进行登录,所填写数据错误则需要返回登录界面重新登录。用户登录界面的设计运行界面效果如下图4.1所示:
图4.1用户系统登录界面效果
4.2 知识点管理功能界面的实现
知识点信息管理是最基本的功能,管理员可以对知识点进行添加和修改。在本界面里可以看到文字信息、图片信息等。知识点信息管理界面的运行效果界面如下图4.2所示:
图4.2知识点信息界面的运行效果
4.3密码信息管理模块实现
密码信息管理是对用户的登录密码进行修改,可以防止密码的外泄,此功能非常的实用,也是一个系统必备的功能之一,密码信息管理功能的界面实现效果如下图4.3所示:
图4.3密码信息管理功能实现界面
4.4 用户信息管理功能的实现
用户管理功能分为管理员管理用户信息和用户管理自己的信息两种,管理员可以看到用户的账号、真实姓名等信息,可以删除用户的账号信息。用户信息管理功能的界面实现效果如下图4.4所示:
图4.4用户信息管理功能界面实现效果
4.5 试题信息管理功能的实现
系统里展示的试题信息包括判断题、选择题、填空题,管理员可以上新试题信息,也可以修改试题信息,当试题信息被淘汰时也可以直接进行删除,试题信息管理功能的界面实现效果如下图4.5所示:
图4.5试题信息管理功能的运行效果界面
管理员添加试题信息的效果图如下图4.6所示:
图4.6添加试题信息的界面效果
4.6考试管理功能的界面设计实现
考试管理功能为考试记录、错题本和试卷列表的管理。本功能与用户我的功能一样。考试信息管理功能的界面实现效果如下图4.7所示:
图4.7考试信息管理功能的界面实现效果
4.7试卷信息管理功能的界面设计实现
本功能与试题信息功能一致,是对试卷生成的管理,管理员查询试卷信息的实现界面如下图4.8所示:
图4.8查询试卷信息的实现界面效果
4.8科目类型管理功能的界面实现
管理员可以设置科目的类型,方便用户的学习。科目类型添加的界面实现如下图4.9所示:
图4.9添加科目类型的功能实现界面
4.9用户首页功能的实现
本功能为用户的功能,可以在首页里看到知识点信息,可以收藏知识点和评论。首页功能的实现界面如下图4.10所示:
图4.10首页功能实现界面
4.10前台展示知识点详情功能的实现
用户可以了解具体的知识点详情,在本界面里可以收藏知识点和评论知识点。知识点详情的实现界面如下图4.11所示:
图4.11知识点详情实现界面
4.11在线考试功能的实现
用户可以实现在线考试,实现界面如下图4.12所示:
图4.12在线考试实现界面
4.12用户错题本功能实现界面
用户在考试后对做错的题目可以显示在错题本里。错题本功能的实现界面如下图4.13所示:
图4.13用户错题本功能实现界面