✨作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
一、前言
在当今的教育环境中,随着信息技术的快速发展,教育管理的信息化已经成为提高教育质量、优化资源配置的重要手段。而成绩管理系统是教育信息化管理的重要组成部分,对于提高学校的教学水平和管理效率起着至关重要的作用。特别是随着学生数量的增加,教师的工作负担越来越重,传统的手工管理方式已经无法满足现实需求。因此,建立一个平时成绩量化管理系统,对于提高学生成绩管理的科学性和效率,减轻教师的工作负担,具有重要的实践意义。
尽管目前已经存在一些成绩管理系统,但它们存在一些问题。一方面,这些系统的功能相对单一,往往只提供简单的成绩录入和查询功能,不能覆盖学生、教师和管理人员的需求。另一方面,这些系统的数据分析和可视化功能较弱,不能为教师和管理人员提供足够的数据支持以改进教学和管理。此外,现有的系统往往缺乏对用户权限的管理,导致数据的安全性和保密性无法得到保障。因此,开发一个功能齐全、灵活且安全稳定的平时成绩量化管理系统具有紧迫性和必要性。
本课题的研究目的是开发一个平时成绩量化管理系统,以满足学生、教师和管理人员的需求。该系统将提供以下功能:学生可以查看公告、下载课程资源和成绩;教师可以管理学生信息、上传和下载课程资源、查看和修改教案信息、录入和查询学生成绩、参与论坛讨论;管理人员可以管理教师信息、管理学生信息、上传和下载课程资源、查看和修改教案信息、发布公告、查看用户统计图和课程统计图。同时,该系统将具有强大的数据分析和可视化功能,为教师和管理人员提供科学的数据支持以改进教学和管理。
本课题的研究意义在于推动教育信息化的发展,提高教育管理的效率和水平。通过开发一个平时成绩量化管理系统,可以提高学生成绩管理的科学性和效率,减轻教师的工作负担。同时,该系统将提供强大的数据分析和可视化功能,为教师和管理人员提供科学的数据支持以改进教学和管理。这不仅可以提高学校的教学水平和管理效率,而且可以增进教育公平和质量的提升。此外,该系统的开发和应用还可以为其他领域的管理信息化提供有益的参考和借鉴。
二、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot
- 前端:Vue
三、系统功能模块
- 角色:学生、教师、管理员
- 功能:
学生:
论坛、课程资源、公告、学生成绩;
教师:
学生管理、课程资源管理、教案信息管理、学生成绩管理、论坛管理、用户统计图、课程统计图;
管理员:
教师管理、学生管理、课程资源管理、教案信息管理、学生成绩管理、基础信息管理(教案类型、课程类型、公告类型、学科管理)、论坛管理、公告信息管理、用户统计图、课程统计图。
四、系统界面展示
- 平时成绩量化管理系统-界面展示:
五、代码参考
- Java项目实战-代码参考:
/**
* @ClassName AdminController
* @Deacription TODO
* @Author jinshuhan
* @Version 1.0
**/
@Controller
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
private ClassService classService;
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@PostMapping(value = "/adm/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password, Map<String,Object> map, HttpSession session)
{
Admin adm=adminService.adminLogin(username,password);
if(adm!=null)
{
List<Classes> classes=classService.getAllClass();
session.setAttribute("loginUser",username);
return "redirect:/admmain.html";
}
else
{
map.put("msg","用户名或密码错误");
return "login";
}
}
//返回首页
@GetMapping(value = "/adm/toindex")
public String toindex(){
return "redirect:/admmain.html";
}
//返回学生管理首页
@GetMapping(value = "/adm/tostudmin/{pn}")
public String tostudmin(@PathVariable("pn") Integer pn,Model model)
{
PageHelper.startPage(pn, 6);
List<Student> students=studentService.getAllStudent();
List<Classes> classes = classService.getAllClass();
PageInfo<Student> page = new PageInfo<Student>(students, 5);
model.addAttribute("classes",classes);
model.addAttribute("pageInfo",page);
return "forward:/stuadmin.html";
}
//返回学生添加页面
@GetMapping(value = "/adm/stuadd")
public String stutoaddpage(Model model)
{
List<Classes> classes = classService.getAllClass();
model.addAttribute("classes",classes);
return "adm/addstu";
}
//处理学生添加事务
@PostMapping(value = "/adm/stuAdd")
public String stuAdd(@Valid Student student, BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
Student studentVail=studentService.selectById(student.getStuId());
if(studentVail==null)
{
studentService.addStudent(student);
return "redirect:/adm/tostudmin/1";
}
else{
errmsg.add(new MyError("已存在该学号的学生"));
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/addstu";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/addstu";
}
}
//处理删除学生事务
@DeleteMapping(value = "/adm/stu/{stuId}")
public String delestu(@PathVariable("stuId") String stuId)
{
studentService.deleStu(stuId);
return "redirect:/adm/tostudmin/1";
}
//返回学生修改页面
@GetMapping(value = "/adm/stu/{stuId}")
public String updateStuPage(@PathVariable("stuId") String stuId,Model model)
{
Student stu=studentService.selectById(stuId);
List<Classes> classes=classService.getAllClass();
model.addAttribute("stu",stu);
model.addAttribute("classes",classes);
return "adm/updatestu";
}
//更新学生信息操作
@PutMapping(value = "/adm/stu")
public String updateStu(@Valid Student student,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
System.out.println(student);
studentService.deleStu(student.getStuId());
studentService.addStudentHavePass(student);
return "redirect:/adm/tostudmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/updatestu";
}
}
//根据ID查询学生
@GetMapping(value = "/adm/selectById")
public String selectById(@Param("stuId") String stuId, Model model)
{
Student student=studentService.selectById(stuId);
List<Classes> classes=classService.getAllClass();
model.addAttribute("classes",classes);
model.addAttribute("stus",student);
return "adm/stubyid";
}
//根据班级查询学生
@GetMapping(value = "/adm/selectByClass/{pn}")
public String selectStuByClass(@PathVariable("pn") Integer pn,@Param("className") String className,Model model)
{
PageHelper.startPage(pn, 6);
List<Student> stus=studentService.seleStuByClassName(className);
List<Classes> classes=classService.getAllClass();
PageInfo<Student> page = new PageInfo<Student>(stus, 5);
model.addAttribute("pageInfo",page);
model.addAttribute("classes",classes);
model.addAttribute("className",className);
return "adm/stubyclass";
}
//返回教师管理首页
@GetMapping(value = "/adm/toteadmin/{pn}")
public String toteadmin(@PathVariable("pn") Integer pn,Model model)
{
PageHelper.startPage(pn, 6);
List<Teacher> teachers=teacherService.getAllTeacher();
PageInfo<Teacher> page = new PageInfo<Teacher>(teachers, 5);
model.addAttribute("pageInfo",page);
return "adm/tealist";
}
//返回教师添加页面
@GetMapping(value = "/adm/teaadd")
public String teatoaddpage()
{
return "adm/addtea";
}
//处理教师添加事务
@PostMapping(value = "/adm/teaAdd")
public String teaAdd(@Valid Teacher teacher, BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
Teacher teacherVail=teacherService.selectById(teacher.getTeaId());
if(teacherVail==null)
{
teacherService.addTeacher(teacher);
return "redirect:/adm/toteadmin/1";
}
else{
errmsg.add(new MyError("已存在该工号的教师"));
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "adm/addtea";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "adm/addtea";
}
}
//返回教师修改页面
@GetMapping(value = "/adm/tea/{teaId}")
public String updateTeaPage(@PathVariable("teaId") String teaId,Model model)
{
Teacher tea=teacherService.selectById(teaId);
model.addAttribute("tea",tea);
return "adm/upadtetea";
}
//更新教师信息操作
@PutMapping(value = "/adm/tea")
public String updateTea(@Valid Teacher teacher,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
System.out.println(teacher);
teacherService.deleTea(teacher.getTeaId());
teacherService.addTeacherHavePass(teacher);
return "redirect:/adm/toteadmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "adm/upadtetea";
}
}
//根据ID查询教师
@GetMapping(value = "/adm/selectTeaById")
public String selectTeaById(@Param("teaId") String teaId, Model model)
{
Teacher teacher=teacherService.selectById(teaId);
model.addAttribute("tea",teacher);
return "adm/teabyid";
}
//处理删除教师事务
@DeleteMapping(value = "/adm/tea/{teaId}")
public String deletea(@PathVariable("teaId") String teaId)
{
teacherService.deleTea(teaId);
return "redirect:/adm/toteadmin/1";
}
//返回班级管理首页
@GetMapping(value = "/adm/toclassdmin/{pn}")
public String toclassdmin(@PathVariable("pn") Integer pn,Model model)
{
PageHelper.startPage(pn, 6);
List<Classes> classes=classService.getAllClass();
PageInfo<Classes> page = new PageInfo<Classes>(classes, 5);
model.addAttribute("pageInfo",page);
return "adm/classlist";
}
//返回班级添加页面
@GetMapping(value = "/adm/classadd")
public String classToAddPage()
{
return "adm/addclass";
}
//处理班级添加事务
@PostMapping(value = "/adm/classAdd")
public String classAdd(@Valid Classes classes, BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
if(classService.selectByName(classes.getClassName())==null) {
Classes classVail = classService.selectById(classes.getClassId());
if (classVail == null) {
classService.addClass(classes);
return "redirect:/adm/toclassdmin/1";
} else {
errmsg.add(new MyError("已存在该班级号的班级"));
model.addAttribute("errors", errmsg);
model.addAttribute("class", classes);
return "adm/addclass";
}
}
else
{
errmsg.add(new MyError("已存在该班级名字的班级"));
model.addAttribute("errors", errmsg);
model.addAttribute("class", classes);
return "adm/addclass";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("class",classes);
return "adm/addclass";
}
}
//返回班级修改页面
@GetMapping(value = "/adm/class/{classId}")
public String updateClassPage(@PathVariable("classId") String classId,Model model)
{
Classes classes=classService.selectById(classId);
model.addAttribute("class",classes);
return "adm/upadteclass";
}
//更新班级信息操作
@PutMapping(value = "/adm/class")
public String updateClass(@Valid Classes classes,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
System.out.println(classes);
classService.deleteById(classes.getClassId());
classService.addClass(classes);
return "redirect:/adm/toclassdmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("class",classes);
return "adm/upadteclass";
}
}
//根据Name查询班级
@GetMapping(value = "/adm/selectClassByName")
public String selectClassById(@Param("className") String className, Model model)
{
Classes classes=classService.selectByName(className);
model.addAttribute("class",classes);
return "adm/classbyid";
}
//处理删除班级事务
@DeleteMapping(value = "/adm/class/{classId}")
public String deleClass(@PathVariable("classId") String classId)
{
classService.deleteById(classId);
return "redirect:/adm/toclassdmin/1";
}
// @GetMapping(value = "/adm/selectByClass/{pn}")
//处理删除学生事务从根据班级查找页面发送来的
@DeleteMapping(value = "/adm/stubyclass/{stuId}")
public String delestubyclass(@PathVariable("stuId") String stuId)
{
Student student = studentService.selectById(stuId);
studentService.deleStu(stuId);
try {
return "redirect:/adm/selectByClass/1?className="+ URLEncoder.encode(student.getStuClass(),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "redirect:/adm/toclassdmin/1";
}
//返回学生修改页面从根据班级查找页面发送来的
@GetMapping(value = "/adm/stubyclass/{stuId}")
public String updateStuPagebyclass(@PathVariable("stuId") String stuId,Model model)
{
Student stu=studentService.selectById(stuId);
List<Classes> classes=classService.getAllClass();
model.addAttribute("stu",stu);
model.addAttribute("classes",classes);
model.addAttribute("ininclass",stu.getStuClass());
return "adm/updatestubyclass";
}
//更新学生信息操作从根据班级查找页面发送来的
@PutMapping(value = "/adm/stubyclass")
public String updateStubyclass(@Valid Student student,BindingResult bindingResult,Model model,@Param("ininclass") String ininclass)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
System.out.println(student);
studentService.deleStu(student.getStuId());
studentService.addStudentHavePass(student);
try {
return "redirect:/adm/selectByClass/1?className="+URLEncoder.encode(ininclass,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "redirect:/adm/toclassdmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/updatestubyclass";
}
}
}
/**
* @ClassName StudentController
* @Deacription TODO
* @Author jinshuhan
* @Version 1.0
**/
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
@Autowired
private ClassService classService;
@Autowired
private ResultssService resultssService;
@PostMapping(value = "/stu/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password, Map<String,Object> map, HttpSession session)
{
Student stu=studentService.login(username,password);
if(stu!=null)
{
session.setAttribute("loginUser",username);
return "redirect:/stumain.html";
}
else
{
map.put("msg","用户名或密码错误");
return "login";
}
}
//返回首页
@GetMapping(value = "/stu/toindex")
public String toindex(){
return "redirect:/stumain.html";
}
//返回学生信息修改页面
@GetMapping(value = "/stu/toUpdateMsgPage")
public String toUpdateMsgPage(HttpSession httpSession, Model model)
{
Student stu= studentService.selectById((String) httpSession.getAttribute("loginUser"));
List<Classes> classes=classService.getAllClass();
model.addAttribute("stu",stu);
model.addAttribute("classes",classes);
return "stu/updateStu";
}
//更新学生信息操作
@PutMapping(value = "/stu/updateStuMsg")
public String updateStuMsg(@Valid Student student, BindingResult bindingResult, Model model,HttpSession httpSession)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
Student studentInit=studentService.selectById((String) httpSession.getAttribute("loginUser"));
student.setStuId(studentInit.getStuId());
student.setStuName(studentInit.getStuName());
student.setStuClass(studentInit.getStuClass());
student.setStuSex(studentInit.getStuSex());
studentService.deleStu(studentInit.getStuId());
studentService.addStudentHavePass(student);
return "redirect:/updateSucc.html";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "stu/updateStu";
}
}
//返回学生成绩首页
@GetMapping(value = "/stu/toresdmin/{pn}")
public String toresdmin(@PathVariable("pn") Integer pn,Model model,HttpSession httpSession)
{
PageHelper.startPage(pn, 9);
List<Resultss> resultsses = resultssService.selectByStuId((String) httpSession.getAttribute("loginUser"));
PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
model.addAttribute("pageInfo",page);
return "stu/resultlist";
}
//根据学期查询成绩
@GetMapping(value = "/stu/selectResByTerm/{pn}")
public String selectResByTerm(@PathVariable("pn") Integer pn,@Param("resTerm") String resTerm, Model model,HttpSession httpSession)
{
PageHelper.startPage(pn, 9);
List<Resultss> resultsses=resultssService.selectByStuIdAndResTerm((String) httpSession.getAttribute("loginUser"),resTerm);
PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
model.addAttribute("pageInfo",page);
model.addAttribute("resTerm",resTerm);
return "stu/reslistbyterm";
}
}
六、论文参考
- 计算机毕业设计选题推荐-平时成绩量化管理系统-论文参考:
七、系统视频
平时成绩量化管理系统-项目视频:
基于SpringBoot的平时成绩量化管理系统
结语
计算机毕业设计选题推荐-平时成绩量化管理系统-Java项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我