目录
全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末
一、前言
随着信息技术的飞速发展和教育信息化的不断推进,学生选课系统已成为现代高校教学管理的重要组成部分。该系统旨在提高选课效率,简化管理流程,并为学生提供更加便捷、灵活的选课体验。本文基于Java语言,结合Spring Boot框架和MySQL数据库,设计并实现了一个功能完善的学生选课系统。Java作为一种广泛应用的编程语言,具有跨平台、面向对象、安全性高等特点;Spring Boot则以其简洁的配置和强大的功能,极大地简化了Java应用的开发过程;MySQL作为开源的关系型数据库管理系统,具有高性能、高可靠性和易用性等优点。通过该系统,学生可以方便地查看课程信息、进行选课操作,并实时查看选课结果;教师则可以发布课程信息、管理选课名单等。本文详细介绍了系统的设计思路、实现过程及关键技术,旨在为类似系统的开发提供参考和借鉴。
二、技术介绍
语言:Java
使用框架:Spring Boot
前端技术:JS、Vue 、css3
开发工具:IDEA/Eclipse
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
前端环境:Node.Js 12\14\16
三、系统实现
管理员功能实现
教师管理
管理员进入指定功能操作区之后可以管理教师。其页面见下图。教师的资料需要管理员负责管理,包括修改,新增,删除等操作。
学生管理
管理员进入指定功能操作区之后可以管理学生信息。其页面见下图。学生是本系统的一个角色,其相关信息需要管理员添加,修改,删除等。
专业信息管理
管理员进入指定功能操作区之后可以管理专业信息。其页面见下图。管理员在本页面修改专业名称,删除指定的专业信息,管理员提交专业名称可以查询专业信息。
教师功能实现
课程查询
教师进入指定功能操作区之后可以查询课程。其页面见下图。课程信息是管理员负责增删改查,教师只需要查询课程,查看课程详情。
学生选课管理
教师进入指定功能操作区之后可以管理学生选课信息。其页面见下图。学生参与课程选课,教师负责审核,并在课程学习结束之后,为学生学习的课程进行打分。
学生成绩管理
教师进入指定功能操作区之后可以管理学生成绩信息。其页面见下图。教师修改学生成绩的分数等信息,可以删除学生成绩信息。
学生功能实现
课程信息管理
学生进入指定功能操作区之后可以管理课程信息。其页面见下图。学生查看课程的学分,开课时间与结束时间,课程名称等信息,学生点击课程信息右侧的学生选课按钮,可以选择该课程。
学生选课查询
学生进入指定功能操作区之后可以查询学生选课信息。其页面见下图。学生提供教师姓名,或者是提供课程名称可以查询学生选择的课程信息,查询出来的选课信息可以显示学生已选的课程的审核情况。
学生成绩查询
学生进入指定功能操作区之后可以查询学生成绩。其页面见下图。学生查询已选课程的成绩信息,查看成绩详情,包括分数,是否合格,教师姓名等信息。
四、论文参考
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
五、核心代码
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
标签:username,毕设,return,ok,选课,源码,user,userService,public From: https://blog.csdn.net/Seapostmoon/article/details/142833542六、源码获取
感谢大家点赞、收藏、关注、评论啦 、获取联系方式在个人简介绿泡泡