2 关键技术介绍
2.1 SSM框架
开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
2.2 Java技术及架构介绍
Java以Linux为基础并且使用Java语言进行开发的操作平台。Java的开放性让他允许所有人对系统进行修改和完善,这一点也让他在近些年成为便携设备上主要的操作系统。Java同时还内置了内置丰富的应用程序,比如电话、摄像头、播放器。这些都为在系统上开发程序提供了便利。该系统运用小程序完成前台的开发,包括登录注册、个性化特征的收集、基于个性化特征进行学习信息的推荐和对学习清单管理等。
用户使用我们这个微信小程序的英语学习激励系统只需一个Java手机就可以使用了,而且所有操作都是我们熟悉的操作手法。所有的操作通过手机就可以完成,用户不需培训,只要稍微提示一下即可。所以开发微信小程序的英语学习激励系统使用小程序技术不仅方便了开发者而且用户使用起来也非常方便,可以说是相对来说比较完美的开发平台了。
2.3 MYSQL数据库
MySQL数据库管理系统,是目前最流行的关系型数据库管理系统之一。它相对与SQLServer来说小了很多,电脑内存比较小的人用这个会比较方便而且MySQL安装起来非常方便,不需要有很多插件的安装,基本上只需要点击下一步执行,只有在最后的时候选一下数据集选项。MySQL查询起来也非常方便,连接数据库之后直接打开就可看到,对于我这种懒人来说真的非常实用。MYSQL能够以极高的效率完成各种数据库查询,并能方便的使用存储过程,同时我们一般在使用MySQL是基本上都是使用简单的可视化工具查看,界面简单清晰,以图形的形式表达用户界面易查看的,又能够使数据库管理和系统管理更加简单、直观。由于MySQL对Web端的支持,用户能轻易的在浏览器里面运行界面获取数据关系,所以这次课题选用MySQL数据库。
2.4微信小程序框架
微信小程序的开发框架是微信所独有的一套框架,分为View视图层和App Service逻辑层两部分。框架提供了一种类似于Web中html语言的wxml语言,作为视图层的标签语言,用于构造页面的布局。另外提供了一种类似Web中css语言的WXSS语言,作为视图层的标签样式语言,用于表述页面的显示。而在逻辑层的框架,则同样使用了JS语言。微信小程序为了使开发者专注在代码的逻辑层面和数据处理上,还专门提供了两种解决方案,一种是事件,一种是数据的传输。这两种方案都位于小程序框架的视图层和逻辑层之间。用户在视图层进行交互之后,传递到逻辑层对数据进行处理,并返回数据到视图层向用户反馈。对于微信小程序视图层的开发设计,小程序官方提供了一系列的组件,这些基本组件可以极大的帮助开发者完成视图层的开发。同时,对于逻辑层的开发,小程序官方提供了一系列API来方便开发者请求一些额外功能。
2.5 B/S架构
随着软件系统的不断改进和升级,B/S结构产品更为方便的特征体现得十分明显。对于一个中等偏大的公司来说,如果系统管理员每天要在很多台电脑之间来回查看,不断奔走,那么效率和工作量就会变得很低,但是如果使用了B/S结构,那么管理员只要对服务器进行管理就够了。
B/S结构最大的优点它不需要安装任何的软件,它所有的客户端就只是浏览器,所以只要有一台电脑并且可以上网就可以解决所有问题,客户端可以完全地不用管理员维护。无论使用系统的使用者是什么样的规模,也不管分支有多么的庞大,都不会对维护和升级的工作量造成影响,所有的维护和升级只需要操作服务器。随着B/S结构的不断发展,使用的人也不断增加,从而带动了AJAX技术的发展,和B/S结构一样,它也能在客户端上处理程序,这便缓解了服务器的负担,提高了交互性,而且实现了局部实时刷新。
3 需求分析与可行性分析
主要介绍微信小程序的英语学习激励系统的需求分析,通常都是功能需求和非功能需求。及其本次课题英语学习激励的可行性分析。
3.1功能需求分析
系统功能需求分析是通过软件开发者在参与市场调研,与英语学习激励管理者及用户交流后经过详细缜密的思考,再讨论研究后得出的初步系统开发所需实现功能。这是开发系统的开始,也是相当关键的一步,如果不在这个阶段制定系统所需模块,日后会带来不必要的麻烦。因此,必须严肃认真,全身心投入去做好这个步骤。
本系统采用从上往下的步骤开发,基本功能如下:
本课题要求实现一套微信小程序的英语学习激励系统,系统主要包括管理员和用户两大模块
-
管理员;管理员进入系统主要功能包括首页,个人中心,用户管理,单词分类管理,单词本管理,学习清单管理,试卷管理,试题管理,系统管理,考试管理等功能并进行操作。
-
用户;用户进入系统主要功能包括单词本,学习清单,错题本,试卷列表,考试记录,反馈中心等功能并进行操作。
3.2 性能需求分析
对系统的性能,从(功能、运行、界面、安全)等方面进行,下面我们逐一进行分析:
-
系统的功能是否完整进行分析:系统的功能,能对应设计出原始代码和算法,以表格同文字的形式进行详细介绍个人信息保证功能完整;
-
系统的运行是否通畅进行分析:系统的每个功能都有编写数据的关系和应对的代码,通过需求分析和可行性分析进行分析和显示系统的物理数据,保证其进行通畅;
-
系统的界面设计进行分析:对系统中的软件进行处理与分析的方式是由不同代码来进行的;从而使界面容易操作:
-
系统的安全性进行分析:这样才可以每个角色的不同对应的信息也就不同,在登录系统务必使用自己的账号,密码登录,账号与密码错误自然就登录失败了。登录成功可以对自己的信息进行操作,不能对别人的账号的信息进行查看等操作,这样自然保证系统的安全性。
3.3系统设计规则与运行环境
软件系统的优劣很大程度上是由系统设计的完善与否决定的。世间万物都必须遵循生老病死的法则,这是大自然的规则不能违反,软件设计也一样需要遵循系统设计规则。因此,在设计过程中必须遵循系统设计规则。规则如下:
简单性:为了扩大系统使用者的受众面,系统设计应该本着操作越简单越好的原则,这样不仅能提高系统的使用率更能够扩大系统使用面。
针对性:一个系统针对性越强,所能提供的功能必然越完善,用户体验肯定更好,所以应该明确指定系统针对性。
实用性:实用永远是检验一个系统是否成功的唯一标准,使用的语言再高端,使用的结构再新颖但不能满足管理员和用户的要求那就是失败。
运行环境:
本系统是利用B/S结构来开发的,数据库在服务器上进行部署Mysql即可,其他包括My Eclipse等常规开发程序。
3.4系统流程分析
系统流程,用户需要登录进入系统,未注册过的用户需要在输入必填的信息之后注册成功然后登录系统,管理员在后台登录进入可以对用户进行修改管理。使用一些较为稳定的技术总结成一个系统的开发设计过程,是设计与实现各个功能模块的基本技术,这些是每个功能模块能够顺利进行的重要保证。
图3-1系统流程图
3.5 可行性分析
通常一个项目的启动或者投入市场运营都需要一个评估报告,要从需求上分析这个项目是否能在这种环境下实现整体目标,是否有这个市场回报率即我们通常所说的是否能够获得利润或者开发出来是否具有实用性,不能说系统开发出来后根本没有用。所以其目的就是以最小的付出来得到更大的效率。本次课题我们就从技术可行性,操作可行性上来分析。
(1)技术可行性
Java由操作系统,中间件和应用软件三大部分组成。它是与谷歌公司和开放手机联盟共同开发的移动终端平台;该开发平台包括性能评价,出错工具,模拟器和存储器等功能;具有完善的开发环境。
(2)操作可行性
本系统用户只要有一台Java手机,就可以使用了,系统是使用的操作都是用户熟悉的选择框或者按钮等等。所有的操作通过手机就可以完成,用户不需培训,只要稍微提示一下即可。因此,在操作使用上,本系统简单、方便,易于使用户接受,因而是十分可行的。
4 系统设计
4.1软件功能模块设计
小程序总体功能如下图所示:
图 4-1 小程序总体功能模块图
4.2登录注册模块
用户要通过填写自己的账号和密码进入系统,如果用户没有登录的账号需要先进行注册用户在注册页面输入账号和密码,点击注册,按要求输入注册表所要的信息,登录密码和确认密码,点击注册后,系统先判断用户输入的“密码”和“确认密码”是否一致,如果不一致,用户需重新输入;如果一致则注册成功,然后输入刚才注册的个人账号和密码点击“登录”按钮,显示“登录中请稍后”,如果登录信息正确则系统跳转进英语学习激励列表界面;如果登录信息错误则显示 “登录失败”登录注册算法流程图如图4-2登录注册流程图所示。
图4-2登录注册流程图
Web后台端管理员登入正确可以查看用户修改用户信息,查看英语学习激励信息等操作;如果输入错误,则无反馈重新登录。如图4-3后台管理流程图所示
图4-3后台管理流程图
4.3数据库设计
前面系统分析结束后现在进入设计阶段,在这个过程中我们要抽象地分析数据,将数据中的关系理解清楚,然后对概念结构和逻辑结构进行设计。由于MYSQL能够以极高的效率完成各种数据库查询,并能是存储过程更加方便。同时能够使数据库管理和系统管理更加清晰便捷。另外,系统以Web技术支持,使用户能够轻易地发布数据到Web页面上。所以本系统采用了MYSQL进行数据库的存储管理与维护。
表4-1:试卷表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
name | varchar | 200 | 试卷名称 | ||
time | int | 考试时长(分钟) | |||
status | int | 试卷状态 | 0 |
表4-2:单词本评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-3:单词分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dancifenlei | varchar | 200 | 单词分类 |
表4-4:学习清单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
bianhao | varchar | 200 | 编号 | ||
dancimingcheng | varchar | 200 | 单词名称 | ||
dancifenlei | varchar | 200 | 单词分类 | ||
yiwen | varchar | 200 | 译文 | ||
dancitupian | varchar | 200 | 单词图片 | ||
dancijiexi | varchar | 200 | 单词解析 | ||
yingyongchangjing | varchar | 200 | 应用场景 | ||
tianjiashijian | date | 添加时间 | |||
beizhu | longtext | 4294967295 | 备注 | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 |
表4-5:单词本
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dancimingcheng | varchar | 200 | 单词名称 | ||
dancifenlei | varchar | 200 | 单词分类 | ||
yiwen | varchar | 200 | 译文 | ||
dancitupian | varchar | 200 | 单词图片 | ||
yuyinbobao | varchar | 200 | 语音播报 | ||
dancijiexi | longtext | 4294967295 | 单词解析 | ||
yingyongchangjing | varchar | 200 | 应用场景 |
表4-6:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
xingbie | varchar | 200 | 性别 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
touxiang | varchar | 200 | 头像 |
表4-7:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-8:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-9:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-10:反馈中心
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
adminid | bigint | 管理员id | |||
ask | longtext | 4294967295 | 提问 | ||
reply | longtext | 4294967295 | 回复 | ||
isreply | int | 是否回复 |
表4-11:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 收藏id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 收藏名称 | ||
picture | varchar | 200 | 收藏图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩) | 1 | |
inteltype | varchar | 200 | 推荐类型 |
表4-12:公告资讯
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-13:奖励机制
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jianglibianhao | varchar | 200 | 奖励编号 | ||
jianglibiaoti | varchar | 200 | 奖励标题 | ||
fengmian | varchar | 200 | 封面 | ||
fabushijian | datetime | 发布时间 | |||
jianglijizhi | longtext | 4294967295 | 奖励机制 |
表4-14:考试记录表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
paperid | bigint | 试卷id(外键) | |||
papername | varchar | 200 | 试卷名称 | ||
questionid | bigint | 试题id(外键) | |||
questionname | varchar | 200 | 试题名称 | ||
options | longtext | 4294967295 | 选项,json字符串 | ||
score | bigint | 分值 | 0 | ||
answer | varchar | 200 | 正确答案 | ||
analysis | longtext | 4294967295 | 答案解析 | ||
myscore | bigint | 试题得分 | 0 | ||
myanswer | varchar | 200 | 考生答案 |
表4-15:试题表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
paperid | bigint | 所属试卷id(外键) | |||
papername | varchar | 200 | 试卷名称 | ||
questionname | varchar | 200 | 试题名称 | ||
options | longtext | 4294967295 | 选项,json字符串 | ||
score | bigint | 分值 | 0 | ||
answer | varchar | 200 | 正确答案 | ||
analysis | longtext | 4294967295 | 答案解析 | ||
type | bigint | 试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空) | 0 | ||
sequence | bigint | 试题排序,值越大排越前面 | 100 |
5系统实现
微信小程序的英语学习激励系统由前台和后台交互构成。前台是用户对于本系统的使用,用户可以通过手机端登录注册,管理单词本,学习清单,错题本,试卷列表,考试记录,反馈中心等详细信息。
后台主要是管理员模块,可对该小程序的用户进行系统管理,登录进后可对用户进行管理等操作。
5.1微信小程序端
本章主要介绍微信小程序的英语学习激励系统实现,根据系统的需求分析,系统设计,系统前台功能区和系统后台功能区的实现。通过以下系统运行界面和核心代码展示。
用户登录,本系统和大部分系统一样都需要登录才能进入系统进行后续操作,用户输入登录名和密码,具体的实现效果如图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.2管理员功能模块
系统后台登录,管理员通过输入账号、密码,选择角色并点击登录进行系统登录操作,如图5-7所示。
图5-7管理员登录界面图
管理员登录系统后,可以对首页,个人中心,用户管理,单词分类管理,单词本管理,学习清单管理,试卷管理,试题管理,系统管理,考试管理等功能进行相应操作,如图5-8所示。
图5-8管理员功能界面图
用户管理,在用户管理页面可以对索引、账号、姓名、性别、联系方式、头像等内容进行详情、修改或删除等操作,如图5-9所示。
图5-9用户管理界面图
单词分类管理,在单词分类页面可以对索引、单词分类等内容进行修改或删除等操作,如图5-10所示。
图5-10单词分类界面图
单词本管理,在单词本管理页面可以对索引、单词名称、单词分类、译文、单词图片、语音播报、应用场景等内容进行详情,修改,查看评论或删除等操作,如图5-11所示。
图5-11单词本管理界面图
学习清单管理,在学习清单管理页面可以对索引、编号、单词名称、单词分类、译文、单词图片、单词解析、应用场景、添加时间、账号、姓名等内容进行详情,修改或删除等操作,如图5-12所示。
图5-12学习清单管理界面图
试卷管理,在试卷管理页面可以对索引、试卷名称、考试时长、试卷状态等内容进行详情,修改或删除等操作,如图5-13所示。
图5-13试卷管理界面图
试题管理,在试题管理页面可以对试卷、试题名称、分值、答案、类型等内容进行修改或删除等操作,如图5-14所示。
图5-14试题管理界面图
考试管理,在考试记录页面可以对姓名、试卷、考试得分等内容进行查看详情操作,还可以对错题本进行详细操作;如图5-15所示。
图5-15考试管理界面图
系统管理,在公告资讯页面可以对索引、标题、图片等内容进行详情,修改或删除等操作,还可以对轮播图管理,反馈中心进行详细操作;如图5-16所示。
图5-16系统管理界面图
6 系统测试
6.1 测试目标
进行软件的测试是为了知道在开发过程中的错误,并不是去看程序中有什么问题。进行软件测试的重要意义是提醒人们发现错误,并且对其中的错误进行修改,并不是为了显示程序有多正确。在测试过程中发现了错误,可以对其软件的问题进行分析研究,找到解决问题的办法。此文主要是为了增强管理员的针对性工作,增强其检测效率,找到减少错误的方法,这才是完成产品检测的真实目的。
6.2 测试步骤
在进行程序的测试时,需要我,我们分段进行,一步一步实施。从程序来看,程序是不断发展完善的。通常在一个较大的程序中,我们会将其分为几个小部分,由几个模块组成。所以在进行相对较大的程序测试过程中,基本上包含以下几个步骤:
(1)找到程序中详细的错误部位;
(2)发现程序运行中出现的设计错误;
(3)对错误发现方案进行规范化。
经过上述测试,这个微信小程序的英语学习激励系统在各项操作中可按照预期的设计运行,能够实现英语学习激励的开发目标与要求。重要的是,这个系统就是根据用户的需求切身开发,根据对用户需求分析,用最合适的结构保证系统的稳定确保用户在使用该系统的不会崩溃能够稳定的加载出界面,而且为了能让更多年龄层的人都能够使用这个系统让用户很轻易的找到他们所需要的操作。运能够真正的做到以用户为中心进行设计。对于我们这个小程序来说,对系统的质量管控还是比较严格的,如果一个界面出现问题,紧接着页面就会根据错误给出提示追踪到每一行甚至那个单词,从而保证运行的质量。我们这个系统的测试主要就是保证他在运行时的稳定质量。所以经过上述测试结果可以看出,本系统操作流畅。