1、项目介绍

现在确定本系统用例模型有三种,分别是管理员、教师和学生。下面分别对这三个角色的功能进行描述:

1、 管理员

进入系统后登陆管理员账号进入教师页面。管理员主要功能如下:班级管理、学生管理、老师管理、课程管理、考勤管理、成绩管理、报表管理、记录管理、系统管理、日志管理

2、教师

进入系统后登陆教师账户进入教师页面,主要功能如下:班级管理、学生管理、老师管理、课程管理、考勤管理、成绩管理、报表管理、记录管理

3、学生

进入系统后登陆学生账户进入学生页面,主要功能如下:班级管理、学生管理、课程管理、考勤管理、成绩管理、报表管理、记录管理

2、技术框架

运行系统:Windows

编程语言:Java

系统架构:B/S

后端框框:SpringBoot

前端框架:HTML+jQuery+Ajax+Freemarker

前后端分离:否

数据库:MySQL

Maven项目:否

运行环境:JDK8+MySQL5.7+Maven3.6+IntelliJ IDEA

3、演示视频

基于SpringBoot的学生选课管理系统

4、项目截图

5、文档截图

6、代码示例

@RequestMapping("/score")
@Controller
@Api(tags = "成绩管理接口")
public class ScoreController {
    @Autowired
    private IScoreService scoreService;

    @Autowired
    private IUserService userService;

    @Autowired
    private ICourseService courseService;

    @Autowired
    private IOperaterLogService operaterLogService;


    @GetMapping("/index")
    @ApiOperation("跳转成绩页接口")
    public String index(Model model){
        //查询学生
        List<User> users = userService.findAllStudent();
        model.addAttribute("users",users);
        model.addAttribute("courses",courseService.queryAll());
        //查询课程
        return "views/score/score_list";
    }

    @GetMapping("/listpage")
    @ApiOperation("查询成绩分页数据接口")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "ScoreQuery", value = "成绩查询对象", defaultValue = "scoreQuery对象")
    })
    @ResponseBody
    public PageList listpage(ScoreQuery scoreQuery){
        return  scoreService.listpage(scoreQuery);
    }


    /**
     * 添加成绩操作
     * @param score
     * @return
     */
    @PostMapping("/addScore")
    @ApiOperation("添加成绩接口")
    @ResponseBody
    public Message addScore(Score score){
        if(StringUtils.isEmpty(score.getScore())){
            return Message.error("请填写该学生的成绩");
        }
       Map<String, Object> queryMap = new HashMap<>();
        queryMap.put("userId",score.getUserid());
        queryMap.put("courseId",score.getCourseid());
        Score byUidAndCid = scoreService.findByUidAndCid(queryMap);
        if(byUidAndCid!=null){
            return Message.error("该学生的课程成绩已经添加过了!");
        }
        try {
            scoreService.addScore(score);
            operaterLogService.add("添加学生成绩成功");
            return Message.success();
        } catch (Exception e) {
            e.printStackTrace();
            return Message.error("成绩添加失败");
        }


    }


    @PostMapping(value="/deleteBatchScore")
    @ApiOperation("批量删除成绩接口")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "ids", value = "如:88,89,99")
    })
    @ResponseBody
    public AjaxResult deleteBatchScore(String ids){
        String[] idsArr = ids.split(",");
        List list = new ArrayList();
        for(int i=0;i<idsArr.length;i++){
            list.add(idsArr[i]);
        }
        try{
            scoreService.batchRemove(list);
            operaterLogService.add("删除学生成绩成功");
            return new AjaxResult();
        }catch(Exception e){
            return new AjaxResult("批量删除失败");
        }
    }

}

Logo

一站式 AI 云服务平台

更多推荐