Vue+SpringBoot打造高校學生管理系統

在這里插入圖片描述


目錄

  • 一、摘要
    • 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 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。

下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!

  1. 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
  2. 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
  3. 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
  4. 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716339.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716339.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716339.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DFS剪枝

剪枝 將搜索過程中一些不必要的部分剔除掉&#xff0c;因為搜索過程構成了一棵樹&#xff0c;剔除不必要的部分&#xff0c;就像是在樹上將樹枝剪掉&#xff0c;故名剪枝。 剪枝是回溯法中的一種重要優化手段&#xff0c;方法往往先寫一個暴力搜索&#xff0c;然后找到某些特…

超詳細紅黑樹的模擬實現

前言 有人說設計出AVL樹的的人是個大牛&#xff0c;那寫紅黑樹&#xff08;RBTree&#xff09;的人就是天才&#xff01; 上一篇文章&#xff0c;我們已經學習了AVL樹&#xff0c;牛牛個人認為AVL樹已經夠優秀了&#xff0c;那讓我們一起探究一下&#xff0c;為什么紅黑樹比AV…

鏈表類型題目

文章目錄 簡介鏈表的常用技巧兩數相加原理代碼代碼|| 兩兩交換鏈表中的節點代碼原理 重排鏈表(重要)原理代碼 合并 K 個升序鏈表代碼遞歸代碼 K 個一組翻轉鏈表原理代碼 簡介 大家好,這里是jiantaoyab,這篇文章給大家帶來的是鏈表相關的題目練習和解析,希望大家能相互討論進步 …

[線代]自用大綱

部分內容整理自張宇和網絡 序 題型分布&#xff1a; 題型單題分值題目數量總分值選擇題5315填空題515解答題12112 *一道大題可能用到六部分所有知識 矩陣 性質 k k k倍和乘積行列式 ∣ k A ∣ k n ∣ A ∣ |kA|k^n|A| ∣kA∣kn∣A∣ ∣ A B ∣ ≠ ∣ A ∣ ∣ B ∣ |AB|≠…

DDE圖像增強

DDE&#xff08;Detail and Darkness Enhancement&#xff0c;細節和暗部增強&#xff09;是一種用于增強圖像細節和暗部區域的方法。其原理可以簡要概括如下&#xff1a; 細節增強&#xff1a;在圖像中突出顯示細節信息&#xff0c;使得圖像更加清晰和具有視覺沖擊力。這可以通…

藍橋杯刷題--python-15-二分(進階)

503. 借教室 - AcWing題庫 n,mmap(int,input().split()) class_list(map(int,input().split())) class_[0]class_ d[0] s[0] t[0] for _ in range(m): dj,sj,tjmap(int,input().split()) d.append(dj) s.append(sj) t.append(tj) def check(k): b[0]*(n2) …

如何解決微服務的數據一致性分發問題?

介紹 系統架構微服務化以后,根據微服務獨立數據源的思想,每個微服務一般具有各自獨立的數據源,但是不同微服務之間難免需要通過數據分發來共享一些數據,這個就是微服務的數據分發問題。Netflix/Airbnb等一線互聯網公司的實踐[參考附錄1/2/3]表明,數據一致性分發能力,是構…

在嵌入式設備中用多項式快速計算三角函數和方根

慣性傳感器的傾角計算要用到三角函數. 在 MCS-51, Cortex M0, M3 之類的芯片上編程時, 能使用的資源是非常有限, 通常只有兩位數KB的Flash, 個位數KB的RAM. 如果要使用三角函數和開方就要引入 math.h, 會消耗掉10KB以上的Flash空間. 在很多情況下受硬件資源限制無法使用 math.…

【 10X summary report】怎么看?詳細解讀筆記

報告內容 在開始正式的分析之前&#xff0c;需要查看在對齊和計數過程中生成的任何總結統計信息。下圖是由Cell Ranger工具創建的10X總結報告&#xff0c;在從10X scRNA-seq實驗生成計數矩陣時會生成。 The left half of the report describes sequencing and mapping statist…

賣wordpress網站模板的網站

WP模板牛 http://www.wpniu.com 上面有很多免費wordpress模板資源的網站&#xff0c;除了免費模板&#xff0c;還有付費模板。 My模板(我的模板) http://www.mymoban.com 老牌網站模板資源站&#xff0c;上面有wordpress模板、帝國CMS模板、WooCommerce模板可以直接免費下載…

Linux whois命令教程:查詢域名所有者信息(附案例詳解和注意事項)

Linux whois命令介紹 whois命令是一個用于查詢域名所有者信息的工具。它可以直接從命令行進行查詢&#xff0c;這對于沒有圖形用戶界面的系統或者需要在shell腳本中進行查詢的情況非常有用。 Linux whois命令適用的Linux版本 whois命令在大多數Linux發行版中都可以使用&…

C++之stack

1、stack簡介 stack是實現的一個先進后出&#xff0c;后進先出的容器。它只有一個出口&#xff0c;只能操作最頂端元素。 2、stack庫函數 &#xff08;1&#xff09;push() //向棧壓入一個元素 &#xff08;2&#xff09;pop() //移除棧頂元素 &#xff08;3…

基于springboot+vue的中國陜西民俗網

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

在 Angular 中使用 Renderer2

Renderer2 類 Renderer2 類是 Angular 提供的一個抽象服務&#xff0c;允許在不直接操作 DOM 的情況下操縱應用程序的元素。這是推薦的方法&#xff0c;因為它使得更容易開發可以在沒有 DOM 訪問權限的環境中渲染的應用程序&#xff0c;比如在服務器上、在 Web Worker 中或在原…

Java如何剪切視頻

背景&#xff1a;如何使用Java批量切割視頻 FFmpeg 是一個強大的開源多媒體處理工具&#xff0c;被廣泛應用于音視頻的錄制、轉碼、編輯等方面。它支持幾乎所有主流的音視頻格式&#xff0c;能夠在各種操作系統平臺上運行&#xff0c;包括 Windows、macOS 和 Linux。FFmpeg 提…

nginx,php-fpm

一&#xff0c;Nginx是異步非阻塞多進程&#xff0c;io多路復用 1、master進程&#xff1a;管理進程 master進程主要用來管理worker進程&#xff0c;具體包括如下4個主要功能&#xff1a; &#xff08;1&#xff09;接收來自外界的信號。 &#xff08;2&#xff09;向各worker進…

SAP PP學習筆記04 - BOM2 -通過Serial來做簡單的BOM變式配置,副明細,BOM狀態,BOM明細狀態,項目種類,遞歸BOM

本章繼續講BOM。 本章講通過Serial來做簡單的BOM變式配置。還講了BOM的相關概念&#xff1a;副明細&#xff0c;BOM狀態&#xff0c;BOM明細狀態&#xff0c;項目種類&#xff0c;遞歸BOM 等。 1&#xff0c;通過Serial&#xff08;序列號&#xff09;來做簡單的 VC&#xff0…

spring自定義注解之-ElementType.METHOD方法級注解聲明

自定義注解類型和常用場景 可以參考之前的文章 &#xff1a; ElementType.FIELD字段級注解聲明 如果在項目中&#xff0c;多處地方都需調用到同一個方法進行邏輯處理&#xff0c;且與方法的業務邏輯無關&#xff0c;比如監控&#xff0c;日志等&#xff0c;則可用自定義的方法…

【JavaSE】面向對象——繼承性

繼承性 繼承性的概念 所謂繼承&#xff0c;就是程序猿在保持原有類特性的基礎上進行擴展&#xff0c;增加新功能&#xff0c;這樣的類被稱為派生類或者子類&#xff0c;原有類被稱為超類或者基類。 在對于繼承性概念進行書寫前&#xff0c;我曾查閱許多資料來保證對其表達的…

Some collections -- 2024.3

一、TensorFlow Android (dataset: Mnist) We used TensorFlow to define and train our machine learning model, which can recognize handwritten numbers, called a number classifier model in machine learning terminology. We transform the trained TensorFlow mod…