admin 管理员组文章数量: 1184232
2024年4月24日发(作者:多态java实现)
136
基于小程序的英语选课平台的研究与实现
基于小程序的英语选课平台的研究与实现
Research
and
Implementation
of
E
j
glish
Course
Selection
Platform
Based
on
Applet
王光荣
刘志刚
(
中国科学技术大学工程科学学院
,
安徽
合肥
230027
)
摘要
:
随着研究生的扩招
,
研究生英语实践课选课的人数逐渐增多
,
很多学生又奔波于校区之间
,
基于
asp
的英语选课
平台难以满足大家的需求,
开发基于移动端的选课平台变得尤为重要
,
而微信小程序作为即用即走的轻量
APP
[
1-2
]
,且能一
次开发在多个平台使用
,
因此选用微信小程序作为前端显示
,
后端采用
Java
的
SpringBoot
框架集成
Radis
缓存数据库和
SQL
Sarvar
数据库
,
搭建英语课选课平台
,
实现响应快
,
并发性好的特点
,
为学生英语课的学习带来了诸多便利
。
关键词
:
选课系统
;
微信小程序
;
Java
Web
;
SpringBoot
;
Redis
;
SQL
Server
Abstract
:With
the
expansion
of
graduate
enrollment,
the
number
of
graduate
students'
English
practical
course
selections
gradually
increasing,and
many
students
rush
between
the
asp-based
English
course
selection
platforms
difficult
to
meet
the
needs
of
everyone,so
it
is
particularly
important
to
develop
the
course
selection
platform
based
on
the
mobile
termi-
a
lightweight
app
that
can
be
used
immediately,wechat
applet
can
be
developed
on
multiple
platforms
at
one
time
devel-
opment,so
it
is
necessary
to
choose
applet
is
used
as
the
front-end
display,and
the
back-end
uses
Java's
springboot
framework
to
integrate
redis
cache
database
and
SQL
Server
database
to
build
an
English
course
selection
platform.
Keywords
:
course
selection
system,weChat
applet,Java
Web,springboot,redis,SQL
Server
研究生英语课分为基础英语和应用英语,
其中应用英语为
针对高校在校研究生开设的注重培养其英语应用能力,将其已
掌握的英语语言知识转变为他们今后在科研或工作学术交流过
据一致性
。
在服务器端的代码中
,
将处理逻辑进行了分层
[
6-
3
3
,
其中
pojo
为实体层
,
负责存放实体类
,
类中的变量与数据库中的字段—
—
对应
,
鉴于Java
的命名规则
,
在配置中实现了数据库下划线命
名法与类中驼峰命名法的对应
。
mapper
为映射层
,
主要放置
程的英语综合应用能力⑶
。
中科大研究生英语语言实践中心
(
English
Practice
Canter
)
通过学生实践课堂训练保证研究生
英语教学质量
,
为研究生英语提供个性化的学习服务平台
,
通过
整合英语学习与英语实践的过程,在保证课堂教学的前提下,将
SQL
语句,来实现数据库的增删改查
。
service
层放置主要的处
理逻辑
,
调用
mapper
层获取数据或更新数据
,
然后将返回的数
英语学习有效地延伸到课外
,
使课外英语实践活动与课堂教学
内容有机地结合起来
[
4
]
。
实践课主要以小班口语课和自主学习
据加工返回到
controllar
层
,
controller为控制层
,
负责接收
http
或https
请求
,
将请求的数据进行初步处理,再调用
service
层
做进一步业务逻辑处理
,
将处理好的数据以
Json
的格式封装并
返回到小程序进行渲染
。
2
系统功能设计实现
为主,
本选课平台主要服务于基础英语和应用英语的实践课部
分的课程管理和学生选课
。
鉴于课程的要求和性质不同,
学生需在整个学期都用到此
平台
,
根据自己的需要来预约不同的课程
、完成课程
、
评价课程
等冋
,
对于系统的便捷性
、
并发性
、
流畅性等提岀了较高的要求,
本系统采用了
SpringBoot
框架
,
它是
Spring
框架的替代,
可以方便快捷地配置开发环境
,
利用控制反转的核心特性
,
并通
本文基于
SpringBoot
框架整合
MyBatis
框架
、
Redis
缓存数据
库等流行技术来开发前后端分离的选课系统,
满足研究生英语
教学的需求
。
过依赖注入实现控制反转来实现管理对象生命周期容器化
,
利
用面向切面编程进行声明式的事务管理
,
整合多种持久化技术
管理数据访问
,
提供大量优秀的
Wab
框架方便开发
[
3-4
]
。
通过快
捷的配置
,
整合了
JDBC
数据库连接池实现对
SQL
Sarvar
数
1
系统整体架构
本系统整体框架如图
1
所示,
使用微信小程序作为前端显
示,实现与用户的交互;然后将业务逻辑的代码部署到
tomcat
服务器
,
监听前端发送的请求并进行数据处理
,
为前端返回数
据,最后在单独的服务器上部署数据库。
缓存数据库Radis
返回
据库的管理
,
整合
Mybatis
实现对数据的封装和操作
,
整合了
Radis
来解决数据高并发的问题
,
然后将将代码运行在自带的
tomcat
服务器上
。
访问量较多的数据
,
并保持与持久化数据库
SQL
Sarvar
的数
2.1
小程序展示模块设计实现
根据系统的需要
,
小程序前端使用分块设计
,
分为
“
首页
”
、
“
选课
”
、
“
我的
”
三大块来放置不同的内容
,
整体功能分布如图
2
所示,效果图如图
3
所示
。
用尸交可
EM*
屉巾
血回爺惟
it
is
图
1
系统结构
图
2
微信小程序功能分布设计
《
工业控制计算机
》
2021
年第
34
卷第
5
期
tree-
hl
細讲別
N
测
Hh
Fr
讯阳
JtK
I
tiw
dwfkjp^
into
fl
muttJvnclMnBi
VT
niMpariof
Cr^i
PrvAca
Ftatfew.
WAinq
Hrtferw..
Uw
PB
血
$4il-K L[vw4nq Enqlsh Lwn*>? Spport IK E 邮 抄 Q 弭 “ 却叩吓詬 $ J 計 op M I grddUdfer hludnTfs to rnp^firrt llwir 两 Hh, HVtlh IT undttpiE 哼 ill fl [ *« — 图 3 微信小程序整体效果图 2.2 登录模块设计实现 选课平台采用前后端分离的设计模式 , 降低了耦合度 , 这对 于数据传输的安全性也提岀了较高的要求, 登录模块需要解决 此类问题 。 用户的登录需要有小程序 , 微信服务器和选课平台服 务器的参与 , 为了实现登录的便捷性和安全性 , 制定了如图 4 的 登录流程 。 微信小程序的 log,n() 函数可以获取失效码 coda , 将 coda 和学号 、密码(与研究生信息平台相同)一并传到选课平台 服务器 , 选课平台服务器会调用微信接口从微信服务器获取 sassion_key 和该用户登录该小程序的标识 opanid , 选课服务 器通过查询数据库 , 判断学号与 openid 的绑定关系 , 若不存在 则添加 , 然后选课服务器将 session_key+openid+ 学号进行 MD5 加密生成 3rd_sassion 发送到小程序 , 小程序将其存到本 地作为后面的校验码 , 每次请求都将 3rd_sassion 写入请求的 头部在选课平台服务器进行校验 , 若校验通过则返回数据遥之后 若在本机登录此平台 , 会判断授权情况 , 若同一个微信二次登录 同一个学号账号 , 则直接登录 , 省去了学生每次都输入学号密 码,提高了登录便捷性 。 ----- _4wy^ opanld------- : 字世匡空龙堂 口西皿"寧寻陀曲 “ 汚 hi 少旷: 1 建: : 3rd sms ^ ; -* ]rd_Wi ; lpn + 图 4 登录校验流程 2.3 选课模块设计实现 2.3.1数据库设计 跟选课有关的数据表有话题表 info 、 教师表 taachar 、 学期 课表book_sum 、 预约课程表 book 、课堂记录表 class , 它们之 137 间的关系如图 5 所示 , 管理员经过研讨为 info 表中增添话题 , 并 将有关音视频和文字资料跟本表关联起来 , 然后为 book_sum 表批量添加当前学期的课程 , 设置每个课堂的时间 、 教师和外教 等信息 。 学生浏览课表进行选课 , 若选中则在 book 表中插入一 条记录 , 跟上课之前的刷卡系统进行关联 , 等完成课程系统会在 class 表中生成一条上课记录 , 完整记录该学生上课的情况 。 图 5 课程数据表间的关系 2.3.2 数据读取和写入实现 由于选课过程是一个读多写少的过程 , 很多学生会在页面 停留较多时间来浏览课程话题老师等信息 , 所以在这个过程引 入 radis 缓存数据库来提高系统的响应速度和并发性 。但首先 要解决 Radis 与 SQL Sarvar 的一致性问题 ,即保证缓存与持 久化数据库中的数据保持一致 。 鉴于此采取如下措施:在课程库 存查询时 , 过程如图 6 所示 , 先查询缓存数据库 , 若有此字段 , 直 接返回 , 若没有则直接查询 SQL Sarvar 数据库 , 将结果返回并 写到缓存数据库中遥若管理员要更改学期课表中的数据 , 过程如 图 7 所示 , 需要先将缓存中的本课程删除 , 然后更新数据库 , 等 有人查询的时候会将最新值插入到缓存中 , 保证了缓存与数据 库中数据的一致性 [ 9-10 ] 遥 最关键的是学生选课过程, 要提高并发性和响应速度 , 这时 候先在缓存中完成选课过程 , 然后定时写到数据库中 , 保证了很 多学生在同时预约课程时系统有较快响应速度 。 除此之外 , 还需 要解决库存问题 , 如果两个人在课程可预约人数还剩一人的时 候同时选进去 , 这时候可能造成 “ 超卖 ” 现象 。 138 鉴于此我们用 Radis 的锁来解决此问题 , 选用 SETNX 锁来 实现 , 模拟如下步骤 : 1 ) 小程序 A 请求服务器设置 kay 的值 , 如果设置成功就表 示加锁成功 ; 2 ) 小程序 B 也去请求服务器设置 kay 的值 , 如果返回失败 , 那么就代表加锁失败 ; 3 ) 小程序 A 执行代码完成 , 删除锁 ; 4 ) 小程序 B 在等待一段时间后在去请求设置 kay 的值 , 设 置成功 ; 5 ) 小程序B执行代码完成 , 删除锁 。 通过以上步骤 , 使得每堂课的人数不会超过额定人数 。 除此之外 , 需要解决课程预约的均匀性问题 [ 11 ] ,对于口语实 践课每个学生需要预约 20个课时 , 要尽可能让每个人的选课时 间均匀分布在整个学期 , 在课程总量不变的情况下 , 还要在每次 课程放岀来时 , 让每个人都有课程可选 。 经过计算给每个人的课 程预约池规定上限,每次最多预约 4 学时的课程,而且只能预约 未来一月课程 , 这样 4000 人 * 4=16000 学时 , 当完成 1 课时 , 系统将这个学时从预约池里去掉 , 他就可以选之后的课程 , 这样 理论上每月开设的课时能满足每个人的需要 , 且多数人整个学 期的预约时间相对均匀 , 使实践课的训练效果达到最好 。 2.4 信息管理模块设计实现 信息管理模块主要负责记录课程的 学习过程和账号的管理 ,具体如图 8 所 示 。 预约记录部分负责记录课程预约过 程中的信息包括预约时间 、 预约 IP 、 岀 席状态等;学习状态记录了上课时间 、 课 堂内容 、 课堂表现等信息 。 考试记录部分作为研究生综合英语 图 8 信息管理模块总览 的需要 , 来记录上机考试的成绩 , 得到如图 9 所示的反馈图 , 并 给岀建议帮助定制化的复习 , 在三次机会用尽之前通过此考试 。 综合英语过关考试是上机完成的, 服务器将每个学生的做题过 程详尽地记录到数据库里 , 需要将这些数据整合统计 , 把结果反 馈到岀题教师端和学生端 , 以便于推进课程的完善和学生英语 能力的提高 。 图 9 综合英语过关考试成绩统计图 账号管理部分主要用于密码修改 、 微信号与学号绑定修改 、 部分个人信息的修改等 , 这里不再一一介绍 。 3 系统测试 3.1 功能测试 打开微信扫描二维码 , 进入选课系统 , 登录并绑定账号 , 根 据自己的学习阶段选不同的课程 , 然后在 “ 我的选课 ”记录里面 基于小程序的英语选课平台的研究与实现 查到了此课程 , 满足选课的基本要求 。 找 100 人同时操作,经测试 有较快的响应速度 , 与后台数据库的比对未发现异常的数据岀 现 , 超库存的现象也没岀现,符合课程的预约要求 。 如图10 所示 。 3.2 性能测试 为了验证系统构架在并发处理能力方面的性能 [ 8-9 ] , 选择 Apacha JMatar 进行负载功能测试和性能测试 , 使用 JMatar 建立用户线程方式 , 分别模拟用户在1s 内并发访问选课系统, 实验环境软件硬件条件 : i3/8G 内存 、 Windows10/Jdk1 .8/ Tomcat9.0/Jmeter5.0/Jedis2.4/SQL Sarvar2008 ,得到平均响 应时间是 980ms , 学校每一届大约有 4000 左右的学生使用此 平台 , 而且选课有周期性 , 可以满足需求 。 4 结束语 选课系统采用了前后端分离的设计 、 降低了代码的耦合性 , 方便了学生的英语实践课选课, 可以随时随地打开手机进行查 看课程和预约课程 。 后端采用 Java Wab 的 SpringBoot 框架, 提高了开发效率 , 降低了维护成本 , 而且易扩展 , 随着课程的发 展 , 此平台也能较快扩展岀新的功能 , 如人脸识别刷进刷岀等, 在数据存储方面引入了缓存数据库 Radis , 提高了系统的响应 速度,对学校其他信息平台的移动端开发有很高的借鉴价值 。 参考文献 [ 1 ] 高辉 . 基于微信小程序的国网江苏电科院移动办公助手 [ D ] . 南京 : 南 京大学 , 2019 [ 2 ] 谢言 . 微信小程序交互的智能鱼缸设计 [ J ] 福 建电脑 , 2021 , 37 ( 1 ) : 93-94 [ 3 ] 林红 , 孙蓝 , 陈纪粱整合语言学习及语言实践 , 培养学生的英语应用能 力研究生英语教学改革的思考 [ J ] . 教育与现代化 , 2007 ( 3 ): 36-49 [ 4 ] 严红红 . 基于 Web 的英语实践中心管理系统研究与开发 [ D ] . 合肥 : 中国科学技术大学 , 2015 [ 5 ] 刘志刚 , 严红红 . 突出实践特色的英语智能化教学平台研究与开发 [ J ] . 计算机光盘软件与应用 , 2014 , 17 ( 24 ): 89-92 [ 6 ] 温迅 . 基于 JMS 中间件技术的高校在线选课系统的研究与实现 [ D ] . 西安 院 西安科技大学 , 2019 [ 7 ] 闫兰英 , 袁帅 . 基于 SpringBoot 的分布式光伏发电管理系统 [ J ] . 计 算机系统应用 , 2021 , 30 ( 1 ) : 78-82 [ 8 ] 曹灿 , 刘志刚 . 基于 SSH 边 Layui 的工程科学前沿与实践系统 [ J ] . 工 业控制计算机 , 2019 , 32 ( 2 ): 91-92 , 96 [ 9 ] 李建华 , 夏汛 , 罗明全 . 基于 ThinkPHP 边 Redis 的高并发微信公众号 开发的研究与实现 [ J ] . 计算机应用与软件 , 2019 , 36 ( 2 ): 108-112 [ 10 ] 张杰 , 刘凯 , 周立军 . 采用 Redis 高并发应用系统设计与实现方法 [ J ] . 计算机与数字工程 , 2020 , 48 ( 5 ): 1222-1226 [ 11 ] 李松涛 . 高职院校教学管理系统中排课算法的研究与实现 [ J ] . 电脑 知识与技术 , 2014 ( 3 ): 520-521 [ 收稿日期 : 2021.2.24 ]
版权声明:本文标题:基于小程序的英语选课平台的研究与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713934658a658444.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论