目錄
- 一、摘要
- 1.1 項目介紹
- 1.2 項目錄屏
- 二、功能模塊
- 2.1 學生管理模塊
- 2.2 學院課程模塊
- 2.3 學生選課模塊
- 2.4 成績管理模塊
- 三、系統設計
- 3.1 用例設計
- 3.2 數據庫設計
- 3.2.1 學生表
- 3.2.2 學院課程表
- 3.2.3 學生選課表
- 3.2.4 學生成績表
- 四、系統展示
- 五、核心代碼
- 5.1 查詢課程
- 5.2 新增學生選課
- 5.3 編輯學生選課
- 5.4 課程打分
- 5.5 安排補考
- 六、免責說明
一、摘要
1.1 項目介紹
基于Vue+SpringBoot+MySQL的高校學生管理系統包含學院課程模塊、學生選課模塊、課程補考模塊,還包含系統自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,高校學生管理系統基于角色的訪問控制,給教務管理員、教師、學生使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。
1.2 項目錄屏
二、功能模塊
2.1 學生管理模塊
學生管理模塊幫助學校或教育機構更好地管理和監督學生的學習情況,提高教育質量,學生管理模塊可以記錄學生的個人基本信息、學習成績、考勤狀態等信息,有助于將學生數據保存,這些信息對于學校了解學生的情況、與家長溝通以及做出教育決策非常重要。學生管理模塊幫助學校創建和發布課程,讓學生了解他們的上課時間和內容,也可以使用它來管理考試,例如考試時間表和成績統計,學生管理模塊幫助學校更好地管理課堂,包括課堂內的互動、活動組織和學生評分,學生管理模塊可以方便教師和家長之間的溝通,傳達學生的在校表現和學習情況,學生管理模塊能夠幫助學校更好地管理和監督學生,提高教育質量,全面提高學生的成績,有助于學生管理模式的促進發展。
2.2 學院課程模塊
大學課程模塊使學生和其他用戶更容易找到、選擇、管理和學習適合學生的內容,在現代社會,知識的代際變化非常快,有必要通過學習不斷提高自己,傳統的教育方式越來越難以滿足大眾化和個性化學習的需要,學院課程模塊可以通過互聯網技術和數據分析的方法,為學生提供更加多樣化和靈活的學習資源和服務,學院課程模塊為學生提供更全面、個性化和高效的學習模式,它可以提供好處,幫助您更好地滿足時代對知識更新的需求。
2.3 學生選課模塊
學生選課模塊幫助學校更好地管理和安排教育資源,同時為學生提供更獨立、更方便的選擇體驗,首先,學校可以通過學生選修科目模塊實現對選修科目數據的實時監控和統計,掌握每節課的選考情況,對下學期的教學進度做出科學合理的決策。第二,學生可以通過學生選擇模塊自由選擇自己感興趣的課程,并可以實時查看選擇結果,了解自己的選擇情況,從而大大提高選修課的效率和準確性。最后,在學生選課模塊中,學生可以看到班級介紹、班級評價等信息,從而更好地了解自己選擇的班級的內容和特點,更好地規劃自己的學習生活。
2.4 成績管理模塊
成績管理模塊幫助學生和教師更好地管理和理解學生的表現,對于學生來說,通過成績管理模塊,他們可以及時跟蹤自己的成績、考試時間表和各科的學習進度,從而全面掌握自己的學習情況,同時成績管理模塊為學生提供個性化的成績報告,讓他們更好地了解自己需要加強的地方。對于教師來說,成績中心模塊幫助他們快速準確地輸入和組織學生的成績信息,并根據學生的表現提供合理的評估和分析,這樣教師可以及時發現學生的問題和困難,并根據目的進行指導和指導,有助于提高學生的學習效果和學業水平。此外成績管理模塊為教師提供了統計分析的功能,使他們能夠更全面地了解班級或學院的學業情況,并制定更合理的教育計劃和策略。
三、系統設計
3.1 用例設計
3.2 數據庫設計
3.2.1 學生表
3.2.2 學院課程表
3.2.3 學生選課表
3.2.4 學生成績表
四、系統展示
五、核心代碼
5.1 查詢課程
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢課程")
public Result<IPage<Curriculum>> getByPage(@ModelAttribute Curriculum curriculum ,@ModelAttribute PageVo page){QueryWrapper<Curriculum> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(curriculum.getTitle())) {qw.like("title",curriculum.getTitle());}if(!ZwzNullUtils.isNull(curriculum.getType())) {qw.eq("type",curriculum.getType());}if(!ZwzNullUtils.isNull(curriculum.getLevel())) {qw.eq("level",curriculum.getLevel());}IPage<Curriculum> data = iCurriculumService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Curriculum>>().setData(data);
}
5.2 新增學生選課
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增選課")
public Result<CourseSelection> insert(CourseSelection courseSelection){Curriculum curriculum = iCurriculumService.getById(courseSelection.getCurriculumId());if(curriculum == null) {return ResultUtil.error("課程不存在");}QueryWrapper<CourseSelection> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",courseSelection.getCurriculumId());oldQw.eq("student_id",courseSelection.getStudentId());if(iCourseSelectionService.count(oldQw) > 0L) {return ResultUtil.error("已完成選課");}courseSelection.setTitle(curriculum.getTitle());courseSelection.setType(curriculum.getType());courseSelection.setContent(curriculum.getContent());courseSelection.setKnowledgePoints(curriculum.getKnowledgePoints());courseSelection.setWeeklyHours(curriculum.getWeeklyHours());courseSelection.setLevel(curriculum.getLevel());User student = iUserService.getById(courseSelection.getStudentId());if(student == null) {return ResultUtil.error("學生不存在");}courseSelection.setStudentName(student.getNickname());courseSelection.setGrade(BigDecimal.ZERO);courseSelection.setGradeUser("");courseSelection.setGradeTime("");courseSelection.setMakeupExam("");iCourseSelectionService.saveOrUpdate(courseSelection);return new ResultUtil<CourseSelection>().setData(courseSelection);
}
5.3 編輯學生選課
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "編輯選課")
public Result<CourseSelection> update(CourseSelection courseSelection){Curriculum curriculum = iCurriculumService.getById(courseSelection.getCurriculumId());if(curriculum == null) {return ResultUtil.error("課程不存在");}QueryWrapper<CourseSelection> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",courseSelection.getCurriculumId());oldQw.eq("student_id",courseSelection.getStudentId());if(iCourseSelectionService.count(oldQw) > 0L) {return ResultUtil.error("已完成選課");}courseSelection.setTitle(curriculum.getTitle());courseSelection.setType(curriculum.getType());courseSelection.setContent(curriculum.getContent());courseSelection.setKnowledgePoints(curriculum.getKnowledgePoints());courseSelection.setWeeklyHours(curriculum.getWeeklyHours());courseSelection.setLevel(curriculum.getLevel());User student = iUserService.getById(courseSelection.getStudentId());if(student == null) {return ResultUtil.error("學生不存在");}courseSelection.setStudentName(student.getNickname());iCourseSelectionService.saveOrUpdate(courseSelection);return new ResultUtil<CourseSelection>().setData(courseSelection);
}
5.4 課程打分
@RequestMapping(value = "/check", method = RequestMethod.GET)
@ApiOperation(value = "打分")
public Result<CourseSelection> check(@RequestParam String id,@RequestParam BigDecimal grade){CourseSelection cs = iCourseSelectionService.getById(id);if(cs == null) {return ResultUtil.error("選課不存在");}User currUser = securityUtil.getCurrUser();cs.setGrade(grade);cs.setGradeUser(currUser.getNickname());cs.setGradeTime(DateUtil.now());if(grade.compareTo(BigDecimal.valueOf(60)) >= 0) {cs.setMakeupExam("無需補考");} else {cs.setMakeupExam("補考待安排");}iCourseSelectionService.saveOrUpdate(cs);return ResultUtil.success();
}
5.5 安排補考
@RequestMapping(value = "/make", method = RequestMethod.GET)
@ApiOperation(value = "安排補考")
public Result<CourseSelection> make(@RequestParam String id,@RequestParam String makeupExam){CourseSelection cs = iCourseSelectionService.getById(id);if(cs == null) {return ResultUtil.error("選課不存在");}cs.setMakeupExam(makeupExam);iCourseSelectionService.saveOrUpdate(cs);return ResultUtil.success();
}
六、免責說明
- 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
- 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!
- 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。