基于spring boot实现的成绩分析系统

基于spring boot实现的成绩分析系统 一,开发目的 随着现代化社会的发展,每年都会有大量苦读寒窗的考生参加高考,但是由于竞争压力大,很多考生由于成绩不理想不能报考自己心仪的高等院校

本文包含相关资料包-----> 点击直达获取<-------

基于spring boot实现的成绩分析系统

一、开发目的

随着现代化社会的发展,每年都会有大量苦读寒窗的考生参加高考,但是由于竞争压力大,很多考生由于成绩不理想不能报考自己心仪的高等院校,一方面是由于自身能力不足,另一方面,在平常学习过程种,教师没能够一对一判断出不同学生的不足。于是为了提高学校的教学质量,通过考试成绩能够及时较为准确的得出学生成绩分析数据,具体到每一个同学的不足,引导教师能够较为准确的明白学生在学习过程中遇到的问题,于是开发了这款成绩分析系统。

二、项目背景

中学成绩分析系统能够将学生成绩进行可视化数据分析,辅助教学,提高教学质量。

三、涉及技术

  • 基本平台 :JDK1.8+MySql8.0

  • 浏览器 :IE9+,谷歌,火狐,360,搜狗等大部分浏览器

3.1 方案一:单体项目(首选)

  • 前端 :html+css+js+jquery+echart

  • 后端 :SpringBoot+SpringDataJpa+SpringSecurity+POI+MySql

3.2 方案二:前后端分离项目

  • 前端 :React+Axios+ElementUI+echart

  • 后端 :SpringBoot+MyBatisPlust+POI+MySql+Jwt

四、项目需求

4.1 用户模块

  • 提供管理员、教师两种角色的登录

  • 提供教师账号由管理员注册及表格批量导入注册

  • 提供管理员、教师自我信息修改。管理员修改教师信息,教师修改学生基本信息。

4.2 学生模块

  • 提供学生账号由教师或者管理员注册及表格批量导入注册

  • 学生账号由科任教师添加、编辑成绩

4.3 成绩分析模块

  • 对数据表中的数据进行分析,提供JSON数据,前端通过echart等数据可视化框架展示数据。

五.系统设计

5.1 数据库设计

5.1.1 表结构设计

学习成绩表

班级表

考试信息表

学生表

权限表

用户表

用户权限表

5.1.2 E-R图

5.2 系统设计

5.2.1 业务代码

```java /* * 根据考试id 获取成绩单页面 * * @param id * @return / @RequestMapping("achievement/school_report_clazz") public String schoolReportClazz(Long id, Model model) { List achievementList = achievementService.listAchievementByExamInfoId(id); model.addAttribute("achievementList", achievementList); ExamInfo examInfo = examInfoService.findById(id); model.addAttribute("examInfo", examInfo); List clazzPerformanceAnalysisBeans = null; try { clazzPerformanceAnalysisBeans = PerformanceAnalysisUtil.ClazzPerformanceAnalysis(achievementList); } catch (Exception e) { e.printStackTrace(); } model.addAttribute("clazzPerformanceAnalysisBeans", clazzPerformanceAnalysisBeans); return "school_report"; }

/**
 * 成绩导入页面
 *
 * @param id 考试 id
 * @return
 */
@RequestMapping("achievement/importAchievementPage")
public String importAchievementPage(Long id, Model model) {
    ExamInfo examInfo = examInfoService.findById(id);
    model.addAttribute("examInfo", examInfo);
    return "import_achievement";
}

/**
 * 教师下载学生成绩导入模板
 *
 * @param id
 * @param httpResponse
 * @throws Exception
 */
@ResponseBody
@RequestMapping("achievement/downloadClazzXls")
public void downloadClazzXls(Long id, HttpServletResponse httpResponse) throws Exception {
    ExamInfo examInfo = examInfoService.findById(id);
    Clazz clazz = examInfo.getClazzes().get(0);
    Integer type = clazz.getType();
    Long clazzId = clazz.getId();
    Workbook workbook = null;
    List<Student> studentList = studentService.getStudentsByClazzId(clazzId);
    String name = examInfo.getName() + "成绩导入模板";
    try {
        if (type == 0) {
            List<AchievementImportExcelW> list = new ArrayList<>();
            studentList.forEach(student -> {
                AchievementImportExcelW achievementImportExcelW = new AchievementImportExcelW();
                achievementImportExcelW.setStudentId(student.getId());
                achievementImportExcelW.setStudentName(student.getName());
                list.add(achievementImportExcelW);
            });
            ExportParams exportParams = new ExportParams(name, name, ExcelType.XSSF);
            workbook = ExcelExportUtil.exportBigExcel(exportParams, AchievementImportExcelW.class, list);
        } else if (type == 1) {
            List<AchievementImportExcelL> list = new ArrayList<>();
            studentList.forEach(student -> {
                AchievementImportExcelL achievementImportExcelL = new AchievementImportExcelL();
                achievementImportExcelL.setStudentId(student.getId());
                achievementImportExcelL.setStudentName(student.getName());
                list.add(achievementImportExcelL);
            });


            ExportParams exportParams = new ExportParams(name, name, ExcelType.XSSF);
            workbook = ExcelExportUtil.exportBigExcel(exportParams, AchievementImportExcelL.class, list);
        }

    } finally {
        if (workbook != null) {
            //此处必须要关闭,否则会导致stream closed异常
            ExcelExportUtil.closeExportBigExcel();
        }
    }

    try (ByteArrayOutputStream os = new ByteArrayOutputStream(1024)) {
        assert workbook != null;
        workbook.write(os);
        ExcelUtil.writeIO(httpResponse, os, name);
    } catch (IOException e) {
        throw new Exception("导出报表失败");
    }
}

/**
 * 教师导入本班学生考试成绩
 *
 * @param id
 * @param multipartFile
 * @param response
 * @throws Exception
 */
@ResponseBody
@RequestMapping("achievement/uploadClazzXls")
public void uploadClazzXls(Long id, @RequestParam("file") MultipartFile multipartFile, HttpServletResponse response) throws Exception {
    response.setCharacterEncoding("utf-8");
    long size = multipartFile.getSize();
    if (size <= 0) {
        response.getWriter().write("空!");
        return;
    }

    ExamInfo examInfo = examInfoService.findById(id);
    Clazz clazz = examInfo.getClazzes().get(0);
    Integer type = clazz.getType();

    ImportParams params = new ImportParams();
    params.setHeadRows(1);
    params.setTitleRows(1);
    if (type == 0) {
        List<AchievementImportExcelW> result = null;
        result = ExcelImportUtil.importExcel(multipartFile.getInputStream(),
                AchievementImportExcelW.class, params);
        result.forEach(item -> {
            Student student = studentService.queryById(item.getStudentId());
            Achievement achievement = new Achievement();
            achievement
                    .setChinese(item.getChinese())
                    .setMath(item.getMath())
                    .setEnglish(item.getEnglish())
                    .setPolitics(item.getPolitics())
                    .setHistory(item.getHistory())
                    .setGeography(item.getGeography())
                    .setExamInfo(examInfo)
                    .setStudent(student);
            achievementRepository.save(achievement);
        });


    } else if (type == 1) {
        List<AchievementImportExcelL> result = null;
        result = ExcelImportUtil.importExcel(multipartFile.getInputStream(),
                AchievementImportExcelL.class, params);
        result.forEach(item -> {
            Student student = studentService.queryById(item.getStudentId());
            Achievement achievement = new Achievement();
            achievement
                    .setChinese(item.getChinese())
                    .setMath(item.getMath())
                    .setEnglish(item.getEnglish())
                    .setPhysics(item.getPhysics())
                    .setChemistry(item.getChemistry())
                    .setBiology(item.getBiology())
                    .setExamInfo(examInfo)
                    .setStudent(student);
            achievementRepository.save(achievement);
        });
    }
    response.getWriter().write("导入成功!");
}

} ```

5.2.2 前端代码

```html

位置:
    基本信息

```

六、项目演示

登录

主页

成绩单

班级管理

学生管理

用户管理

班级管理

导入模板

考试发布

文件操作

打印成绩单

参考文献

  • 基于B/S结构的学生成绩管理系统的设计与实现(吉林大学·印明阳)
  • 基于JavaEE和Weka的学生成绩管理系统的分析与实现(沈阳师范大学·陈思蒙)
  • 计算机知识考试系统的设计与实现(电子科技大学·楼凤珍)
  • 基于Spring MVC的高校奖学金评定系统的设计与实现(内蒙古大学·杨晓蒙)
  • 面向学生成绩分析的数据挖掘系统设计与实现(苏州大学·夏华)
  • 基于B/S模式的小学成绩管理系统设计与实现(厦门大学·加沙拉提·白斯汉)
  • 职业学校学生成绩管理系统的设计实现(河北科技大学·黄丽娟)
  • 黑旋风绩效考核系统的设计实现与测试(华中科技大学·陈小丽)
  • 黑旋风绩效考核系统的设计实现与测试(华中科技大学·陈小丽)
  • 基于平衡计分卡的绩效管理系统的设计与实现(北京交通大学·张峰)
  • 泰安银行绩效考核系统的设计与实现(山东大学·王雷琪)
  • 基于B/S结构的学生成绩管理系统的设计与实现(吉林大学·印明阳)
  • 基于B/S结构的学生成绩管理系统的设计与实现(吉林大学·印明阳)
  • 基于平衡计分卡的绩效管理系统的设计与实现(北京交通大学·张峰)
  • 基于SSH框架高校教工业绩绩效测评管理系统设计与实现(吉林大学·滕婵娟)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码助手 ,原文地址:https://m.bishedaima.com/yuanma/35570.html

相关推荐

发表回复

登录后才能评论