💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。
👇🏻 精彩专栏 推荐订阅👇🏻
计算机毕业设计精品项目案例-200套
🌟文末获取源码+数据库+文档🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人
一.前言
课堂是教师开展教学,学生获得知识的重要场所。传统的课堂管理方式通过上课期间教师或班长点名的方式签到,占用了大量的课堂时间,还有沟通效率低等问题,随着智能手机和移动网络的飞速发展和普及,这些问题可以通过移动应用来得到解决。为有效优化课堂教学效率,向师生提供多元化的教学学习模式,搭建一个移动端的课堂管理助手系统,
把该App应用到教学实践中,能够极大地丰富传统课堂的教学模式,推动信息化教学的发展。
二.技术环境
JDK版本:JDK1.8
开发环境:开发语言:Java
框架:SSM
服务器:tomcat7
数据库:mysql 5.7
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
移动端框架:uniapp
开发软件:HBuilder X
开发模式:混合开发
运行工具:微信开发者工具/Android Studio
三.功能设计
考虑到实际生活中在“课堂管理助手”移动应用开发管理方面的需要以及对该系统认真的分析,将系统权限按学生、教师和管理员这三类涉及用户划分。
(1)学生功能需求
学生进入app可以实现个人中心、课堂信息、课堂作业、在线答疑、课堂签到、学生请假、学生作业、作业评分、课堂点名、答题记录、错题本、我要发帖、我的发帖等功能进行操作。学生用例图如图所示。
(2)管理员功能需求
管理员登陆后,主要模块包括首页、个人中心、班级管理、课程管理、教师管理、学生管理、课堂信息管理、课堂作业管理、在线答疑管理、课堂签到管理、学生请假管理、学生作业管理、作业评分管理、课堂点名管理、论坛管理、系统管理等功能。管理员用例图如图所示。
(3)教师功能需求
教师登陆后,主要模块包括首页、个人中心、课堂信息管理、课堂作业管理、在线答疑管理、课堂签到管理、学生请假管理、学生作业管理、作业评分管理、课堂点名管理、课堂答题管理、题目管理、答题管理等功能。教师用例图如图所示。
系统总体功能结构图如下所示:
四.数据设计
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。本系统主要实体属性图如下所示:
五.部分效果展示
5.1移动端模块实现效果
用户登录,用户进入系统,输入自己的账号和密码进行系统登录操作,如图所示。
学生登陆app后,可以对首页、课堂信息、答题、论坛交流、我的等内容进行详细操作,如图所示。
课堂信息,在课堂信息页面可以查看课堂名称、图片、课程、上课时间、签到时间、学习资料、日期、教师工号、教师姓名、详情等信息,如图所示。
论坛交流,在论坛交流页面可以查看帖子标题、发布人、发布时间等信息,如图所示。
学生,在我的页面可以对个人中心、课堂信息、课堂作业、在线答疑、课堂签到、学生请假、学生作业、作业评分、课堂点名、答题记录、错题本、我要发帖、我的发帖等详细信息进行操作,如图所示。
作业评分,在作业评分页面可以查看作业名称、提交图片、作业评分、评分等级、教师工号、学号、班级、作业评语等信息,如图所示。
5.2管理员模块实现效果
管理员登陆app后,可以查看首页、个人中心、班级管理、课程管理、教师管理、学生管理、课堂信息管理、课堂作业管理、在线答疑管理、课堂签到管理、学生请假管理、学生作业管理、作业评分管理、课堂点名管理、论坛管理、系统管理等功能,还能对每个功能逐一进行相应操作。
课程管理,在课程管理页面可以对索引、课程等内容进行详情,修改或删除等操作,如图所示。
教师管理,在教师管理页面可以对索引、教师工号、教师姓名、性别、照片、职称、联系电话等内容进行详情,修改或删除等操作,如图所示。
课堂信息管理,在课堂信息管理页面可以对索引、课堂名称、图片、课程、上课时间、签到时间、学习资料、日期、教师工号、教师姓名等内容进行详情,修改或删除等操作,如图所示。
课堂作业管理,在课堂作业管理页面可以对索引、作业名称、课堂名称、作业图片、作业要求、发布日期、教师工号、教师姓名等内容进行详情,修改或删除等操作,如图所示。
在线答疑管理,在在线答疑管理页面可以对索引、标题、图片、教师工号、日期、学号、姓名、班级、审核回复、审核状态等内容进行详情,修改或删除等操作,如图所示。
课堂签到管理,在课堂签到管理页面可以对索引、课堂名称、图片、教师工号、签到时间、签到备注、学号、姓名、班级、地址、审核回复、审核状态等内容进行详情,修改或删除等操作,如图所示。
学生请假管理,在学生请假管理页面可以对索引、请假标题、教师工号、请假图片、请假时间、学号、姓名、班级、审核回复、审核状态等内容进行详情,修改或删除等操作,如图所示。
学生作业管理,在学生作业管理页面可以对索引、作业名称、提交图片、教师工号、评分状态、提交日期、学号、姓名、手机、班级、审核回复、审核状态等内容进行详情,修改或删除等操作,如图所示。
作业评分管理,在作业评分管理页面可以对索引、作业名称、提交图片、作业评分、评分等级、教师工号、学号、班级等内容进行详情,修改或删除等操作,如图所示。
课堂点名管理,在课堂点名管理页面可以对索引、学号、图片、点名内容、点名时间、教师工号等内容进行详情,修改或删除等操作,如图所示。
论坛管理,在论坛管理页面可以对索引、帖子标题、用户名、状态等内容进行详情,查看评论,修改或删除等操作,如图所示。
5.3教师模块实现效果
教师登陆app后,可以对首页、个人中心、课堂信息管理、课堂作业管理、在线答疑管理、课堂签到管理、学生请假管理、学生作业管理、作业评分管理、课堂点名管理、课堂答题管理、题目管理、答题管理等功能进行相应操作,如图所示。
六.部分功能代码
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,YonghuEntity yonghu,
HttpServletRequest request){
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,YonghuEntity yonghu,
HttpServletRequest request){
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( YonghuEntity yonghu){
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu"));
return R.ok().put("data", yonghuService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(YonghuEntity yonghu){
EntityWrapper< YonghuEntity> ew = new EntityWrapper< YonghuEntity>();
ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu"));
YonghuView yonghuView = yonghuService.selectView(ew);
return R.ok("查询用户成功").put("data", yonghuView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
YonghuEntity yonghu = yonghuService.selectById(id);
return R.ok().put("data", yonghu);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(yonghu);
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));
if(user!=null) {
return R.error("用户已存在");
}
yonghu.setId(new Date().getTime());
yonghuService.insert(yonghu);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(yonghu);
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));
if(user!=null) {
return R.error("用户已存在");
}
yonghu.setId(new Date().getTime());
yonghuService.insert(yonghu);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
//ValidatorUtils.validateEntity(yonghu);
yonghuService.updateById(yonghu);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
yonghuService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}