摘要:本文开始先介绍了基于微信小程序的课程测试系统的选题背景和选题意义以及开发技术特色,然后对基于微信小程序的课程测试系统的可行性、功能需求、系统用例等方面进行了分析。最后对基于微信小程序的课程测试系统进行了功能结构以及数据库E-R图和表进行了设计。最终把基于微信小程序的课程测试系统分为了小程序端和web后台端,角色有学生、老师和管理员三种角色,小程序端上的学生可以进行注册与登录、搜索和浏览课程信息、刷题、考试、题库、错题本、论坛、分享、账户维护等;web后台端上的老师可以进行试卷管理、单选题管理、多选题管理、判断题管理、填空题管理、账户维护等;web后台端上的管理员可以进行用户信息管理、课程信息管理、新闻信息管理、账户维护等。基于微信小程序的课程测试系统选择了IntelliJ IDEA 2019.3.4 x64集成开发工具和微信开发者工具,Java语言的Spring+SpringMVC+Mybatis框架和前端的Bootstrap框架进行了界面设计和渲染以及MySQL数据库存储数据。
关键词:微信小程序,课程测试,Java,SSM,MySQL
系统的需求分析就是对开发项目所设计的功能模块,所用的技术等进行分析。在系统中对项目进行需求分析对相关的用例图进行设计便可以查看到各个角色的功能模块。
基于微信小程序的课程测试系统划分了微信端和web后台端,用户角色有学生、老师、管理员三种角色,其中老师和管理员这2种角色可以在web后台端进行操作,学生在微信端进行操作。其中web后台端采用idea开发工具,java开发语言的ssm开发环境配合mysql数据库进行开发,微信端采用微信开发者工具进行开发。
微信端(学生)功能如下:
(1)注册登录:学生可以在线注册和登录使用本小程序;
(2)课程信息:可以查询和查看相关课程的详细信息,并可以进行刷题等一系列操作;
(3)刷题:可以选择考试题、作业题来进行刷题操作,并可以收藏起来不会的试题,可以移除收藏。答题完成后会判断答对几道题,答错几道题,得分;
(4)考试:可以根据未考试、已考试来查看相关试卷,并进行考试操作。
(5)题库:可以选择考试题、作业题来查看题目内的试题,方便自己巩固学习,也可以从我的收藏内来查看自己以前收藏过的相应题库;
(6)错题本:可以查看到自己答错过哪些试题,并进行巩固学习;
(7)论坛:可以在论坛内进行发帖、回帖进行交流互动;
(8)分享:可以查看到老师分享的相关学习资料,同时学生自己的学习资料也可以进行上传分享;
(9)账户维护:可以对自己的个人信息等进行更新维护;
Web后台端(老师)功能如下:
(1)单选题管理:可以对课程内的单选题信息进行添加和管理;
(2)多选题管理:可以对课程内的多选题信息进行添加和管理;
(3)判断题管理:可以对课程内的判断题信息进行添加和管理;
(4)简答题管理:可以对课程内的简答题信息进行添加和管理;
(5)考试管理:可以对课程内的考试信息进行创建和管理,创建试卷后会自动从4种题型内进行随机抽10道题来进行组卷;
(6)账户维护:可以对自己的个人信息等进行更新维护;
Web后台端(管理员)功能如下:
(1)用户管理:可以对系统内老师、学生、管理员的用户信息进行维护和管理;
(2)课程管理:可以对系统内支持的课程信息进行发布和管理;
(3)新闻管理:可以对系统内的新闻资讯信息进行发布和管理;
(4)账户维护:可以对自己的个人信息等进行更新维护;
系统功能模块图示例如图4所示。
2数据库关系表
在基于微信小程序的课程测试系统中所有的用户信息都存放在用户数据库表当中。其用户信息表设计如表7所示。
表7 用户信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | Int | 否 | 12 | 主键编号 |
username | varchar | 是 | 125 | 用户名 |
passwd | varchar | 是 | 125 | 密码 |
roletype | varchar | 是 | 125 | 角色id |
img | varchar | 是 | 125 | 头像地址 |
sex | varchar | 是 | 125 | 性别 |
tel | varchar | 是 | 125 | 电话 |
| varchar | 是 | 125 | 邮箱 |
管理员可以对课程信息进行发布和管理,其中所有的课程信息都存放在课程信息表当中。其课程信息表设计如表8所示。
表8 课程信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | Int | 否 | 12 | 主键编号 |
title | varchar | 是 | 50 | 课程名称 |
img | varchar | 是 | 50 | 课程主图 |
note | text | 是 | 课程介绍 | |
ndate | varchar | 是 | 50 | 发布时间 |
系统中所有课程的题库信息都关联着相关的课程,这些题库信息都存放在题库信息表当中。其题库信息表设计如表9所示。
表9 题库信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | Int | 否 | 12 | 主键编号 |
title | varchar | 是 | 500 | 题目名 |
opa | varchar | 是 | 255 | 选项A |
opb | varchar | 是 | 255 | 选项B |
opc | varchar | 是 | 255 | 选项C |
opd | varchar | 是 | 255 | 选项D |
daan | varchar | 是 | 50 | 答案 |
fenxi | text | 是 | 解析 | |
typeid | int | 是 | 11 | 课程id |
note | text | 是 | 阅读材料 | |
ctype | varchar | 是 | 50 | 作业题/考试题 |
leixing | int | 是 | 11 | 题型 |
系统中所有课程的试卷信息都关联着相关的课程,这些试卷信息都存放在试卷信息表当中。其试卷信息表设计如表10所示。
表10 试卷信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | Int | 否 | 12 | 主键编号 |
title | varchar | 是 | 500 | 试卷名 |
note | text | 是 | 备注 | |
ndate | varchar | 是 | 50 | 发布时间 |
cid | int | 是 | 11 | 课程id |
dtime | int | 是 | 11 | 考试时间 |
系统中所有课程的成绩信息都关联着相关的课程,这些成绩信息都存放在成绩信息表当中。其成绩信息表设计如表11所示。
表11 成绩信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | int | 否 | 11 | 主键编号 |
uid | int | 否 | 11 | 学生id |
score | int | 否 | 11 | 得分 |
zongfen | int | 否 | 11 | 总分 |
ksid | int | 否 | 11 | 试卷id |
系统中所有用户的发帖信息都关联着相关的学生,这些发帖信息都存放在发帖信息表当中。其发帖信息表设计如表12所示。
表12 发帖信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | int | 否 | 12 | 编号 |
title | varchar | 是 | 125 | 帖子标题 |
note | text | 是 | 帖子内容 | |
uid | int | 否 | 12 | 用户id |
ndate | varchar | 是 | 125 | 发帖时间 |
系统中所有用户的回帖信息都关联着相关的学生,这些回帖信息都存放在回帖信息表当中。其回帖信息表设计如表13所示。
表13 回帖信息表
字段名称 | 数据类型 | 是否空 | 长度 | 说明 |
id | int | 否 | 12 | 主键编号 |
pid | varchar | 是 | 125 | 帖子id |
note | text | 是 | 回帖内容 | |
uid | int | 否 | 12 | 用户id |
ndate | varchar | 是 | 125 | 回帖时间 |