文末联系获取源码
开发语言:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
一、前言介绍
随着学习压力越来越大,很多学校不重视学生的体育锻炼。近几年,教育部门发现缺少体育锻炼会影响学生的全面发展,因此开始大力发展学生的体育锻炼。对教师的体育课进行评分可以保证老师的教学质量,现在大多数学校采用问卷的方式进行体育课评分。这种方式对评分结果的统计非常麻烦,同时也降低了评分的公正性,学生的私人感情影响非常大。目前,网络发展成熟,各类网站平台层出不穷,如果可以有专业的系统提供网上体育课评分,则可以帮助学校的体育课评分。
本基于微信小程序的体育课评分系统编程语言采用Java,数据库为Mysql。在技术中加入Vue,使界面更加丰富、友好。本系统针对体育课的在线评分而开发,使用角色为管理员和学生、教师。学生可以通过注册登录,在界面里浏览体育教案、校园风采,管理自己的心率和查询身体素质测评、比赛成绩、运动报告记录等,可以对教师的体育教案进行评分和提出建议。教师可以管理自己的体育教案和对学生进行点名、对学生的身体素质测评、管理教学比赛成绩和进行课堂小结、记录运动报告等。管理员可以管理用户信息、类型信息.、体育教案信息、教学评分信息、学生心率信息等。在本系统中涉及到和体育相关的多种信息,可以保证学生的体育锻炼。
二、系统功能分析
本系统采用功能针对性强、文字描述精确的方式进行设计。本基于微信小程序的体育课评分系统是关于评分的系统,在设计功能时只取用最基础的功能,目的是提供最精准的服务。本系统包括微信端和管理端两部分。
2.1微信端的功能
(1)体育教案:展示所有教案信息,学生可以浏览并且进行打分、收藏和建议﹔
(2)校园风采信息,展示校园风采详情,并且展示校园风采发布时间方便用户了解;
(3)体育教室信息,以图片方式展示体育教室列表,点击体育教室图片展示详情体育教室的描述,
(4)我的功能,在我的功能里用户可以管理点名册、教学评分、学生心率、身体素质测评、教学比赛成绩和运动报告记录、我的收藏信息。感兴趣的体育教室可以查看;
2.2管理端管理员功能
(1)个人中心,实现密码和个人信息的修改;
(2)类型管理功能,可以更新和删除、修改类型;
(3)点名册管理功能,审核学生的签到信息;
(4)校园风采信息管理功能,可以更新校园风采和进行校园风采的修改、删除;
(5)体育教案管理功能,实现课程的更新和检查;
(6)教学评分功能,查询教师的评分详情;
(7)用户管理功能,实现学生、教师的检查管理;
(8)学生心率管理功能,可以查看学生的心率详情;
(9)身体素质测评管理功能,查看学生的详细身体素质测评内容;
(10)课堂小结管理功能,进行课堂小结;
(11)运动报告记录管理功能,记录学生的运动详情。
三、微信端界面的实现
3.1首页界面的实现
本功能设计的目的是帮助用户一键返回首页,在首页里的元素包括图片、列表框、文字、导航栏等。在首页的上半部分轮播图、中间是体育教案推荐、下面是体育教案。导航栏里是首页、体育教案、校园风采、我的功能按键。首页界面的实现界面如下图所示:
3.2体育教案功能的实现界面
在体育教案功能里可以看到课程类型,点击体育教案功能可以看到教案的详情,并可以对教案进行评分和提出建议。体育教案功能的实现界面如下图所示:
学生评分的实现界面如下图所示:
3.3校园风采功能的实现界面
本界面里可以看到校园的风采信息,实现界面如下图所示:
3.4教学评分功能的实现界面
在本功能模块里展示已评分的体育教案,想要看具体的评分详情需要点击教案标题进入详情页。教学评分功能的实现界面如下图所示:
3.5学生心率功能的实现界面
学生可以添加和管理自己的心率,在填写心率时可以选择教师。添加学生心率信息功能的实现界面如下图所示:
3.6身体素质测评功能的实现界面
本界面展示了学生的具体身体数据各项数据。学生查询身体素质测评功能的实现界面如下图所示:
3.7教学比赛成绩功能的实现界面
学生可以查询比赛的成绩。查询教学比赛成绩功能的实现界面如下图所示:
四、管理员功能的实现界面
管理员的功能为管理微信端信息和更新微信端信息以及管理用户信息。管理的微信端信息包括体育教案信息、校园风采信息和类型信息、用户信息等。管理员功能的实现界面如下图所示:
五、教师功能的实现界面
六、部分核心代码
6.1登录系统主要代码
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yonghu", "用户" );
return R.ok().put("token", token);
}
6.2上传文件关键代码
@RequestMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
/**
* 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
* 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
* 并且项目路径不能存在中文、空格等特殊字符
*/
// FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}