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

WeChat

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

]


本文标签: 选课 课程 实现 系统 程序