目錄
- 一、摘要
- 1.1 項目介紹
- 1.2 項目錄屏
- 二、功能模塊
- 2.1 實驗課程檔案模塊
- 2.2 實驗資源模塊
- 2.3 學生實驗模塊
- 三、系統設計
- 3.1 用例設計
- 3.2 數據庫設計
- 3.2.1 實驗課程檔案表
- 3.2.2 實驗資源表
- 3.2.3 學生實驗表
- 四、系統展示
- 五、核心代碼
- 5.1 一鍵生成實驗
- 5.2 提交實驗
- 5.3 批閱實驗
- 5.4 新增實驗資源
- 5.5 查詢實驗課程
- 六、免責說明
一、摘要
1.1 項目介紹
大學計算機課程管理平臺包含實驗課程模塊、實驗資源模塊、學生實驗模塊,前端采用Vue.js,采用View UI組件庫美化界面,后端采用SpringBoot框架。在操作系統、開發語言、服務器,數據庫、連接技術方面,對應使用Window操作系統、Java語言、Tomcat服務器、MySql數據庫以及MyBatis技術完成系統搭建,大學計算機課程管理平臺基于B/S架構,采用前后端分離架構,用戶可以在系統上查詢計算機實驗課程、下載實驗資源。
隨著計算機技術日漸成熟,它已進入人類社會的各個領域并發揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對學校的課程信息進行管理,與手工維護課程相比,有巨大的的優勢。越來越多的高校開始采用大學計算機課程管理平臺,將學生選擇的課程和課程資源通過網絡進行管理,為學生、教師和教務管理人員提供便利。
大學計算機課程管理平臺使用Idea開發工具完成了編碼實現。前端采用Vue.js,采用View UI組件庫美化界面,后端采用SpringBoot框架。在操作系統、開發語言、服務器,數據庫、連接技術方面,對應使用Window操作系統、Java語言、Tomcat服務器、MySql數據庫以及MyBatis技術完成系統搭建。該系統基于B/S架構,采用前后端分離架構,用戶可以在系統上查詢計算機實驗課程、下載實驗資源。
1.2 項目錄屏
二、功能模塊
2.1 實驗課程檔案模塊
實驗課程檔案模塊是高校實驗教育中用于記錄和管理實驗課程信息的模塊,實驗課程檔案模塊可以記錄和管理實驗教學的過程和結果,幫助教師更好地評估學生的知識獲取水平和實驗操作技能,確保實驗教學質量,實驗課程檔案模塊可以記錄實驗教學的詳細過程和結果,使教師能夠在后續的實驗教學中更有效地管理教學,安排教育資源,提高實驗教學的效率,實驗課程檔案模塊提供了豐富的實驗數據和結果,使教師能夠輕松評估和改進自己的實驗課程,并為未來的實驗教育提供有力支持,實驗課程檔案模塊記錄了實驗教學的基本信息、過程和結果,可以為實驗教學的研究和考核提供基礎數據和資料,實驗課程檔案模塊對高校實驗教學是非常必要的,通過實驗課程檔案模塊,可以保證實驗教育的質量,提高實驗教育的效率,方便課堂評估,加強實驗教育和研究,為實驗教育的標準化、標準化和信息化提供有力支撐。
2.2 實驗資源模塊
實驗資源模塊是用于管理教育機構中與科學實驗相關的資源的模塊,實驗資源模塊可以統一管理各類實驗設備、設備、文獻等資源,并進行分類、編號、記錄等操作,使實驗資源更加規范、規范、便捷,編寫、提供參考資料和教材,促進學生的實驗自主性、創新性和探索性,提高實驗教育效果,實驗資源模塊可以提供智能輔助服務,使實驗資源的使用更加高效、經濟和安全,如網上購物、預訂使用和維護,實驗資源模塊不僅可以支持實驗教育,還可以為科學研究提供必要的技術支持和數據分析,促進學術研究的發展。實驗資源模塊對于教育和研究機構來說是非常必要的,該模塊可以統一實驗資源的管理,提高實驗教育的有效性,節省成本和時間,支持科學研究,同時,實驗資源模塊可以促進和幫助教育科研機構的數字化轉型和智能化升級。
2.3 學生實驗模塊
學生實驗模塊是一種用于管理和組織學生實驗的教育軟件模塊,學生實驗模塊使學生對教學內容和理論知識有更直觀的理解,并通過實際操作提高實踐能力,學生實驗模塊允許學生自己操作設備和工具,并具有移動雙手和創新的能力。學生實驗模塊幫助學生加深對課程內容的理解,加深對課程的理解,學生實驗模塊可以為教師提供全面的實驗計劃、操作指導和評估系統,并通過實驗數據進行分析和反饋,以提高教育質量和效果。通過學生實驗模塊,可以提高學生的實踐能力和動手能力,加深他們對教學的理解和理解,并提供更全面的教育支持和反饋,以提高教學質量和效果。
三、系統設計
3.1 用例設計
3.2 數據庫設計
3.2.1 實驗課程檔案表
3.2.2 實驗資源表
3.2.3 學生實驗表
四、系統展示
五、核心代碼
5.1 一鍵生成實驗
@RequestMapping(value = "/oneCreateExp", method = RequestMethod.GET)
@ApiOperation(value = "一鍵生成實驗")
public Result<Object> oneCreateExp(@RequestParam String id){ExperimentCurriculum curriculum = iExperimentCurriculumService.getById(id);if(curriculum == null) {return ResultUtil.error("實驗不存在");}// 刪除原來的QueryWrapper<Experiment> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",curriculum.getId());iExperimentService.remove(oldQw);// 生成新的QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("type",0);List<User> studentList = iUserService.list(userQw);for (User stu : studentList) {Experiment e = new Experiment();e.setCurriculumId(curriculum.getId());e.setCurriculumName(curriculum.getTitle());e.setStudentId(stu.getId());e.setStudentName(stu.getNickname());e.setExpResult("");e.setExpReport("");e.setUploadTime("");e.setGrade(BigDecimal.ZERO);e.setCheckFlag(false);e.setCheckTime("");e.setCheckUser("");iExperimentService.saveOrUpdate(e);}return ResultUtil.success();
}
5.2 提交實驗
@RequestMapping(value = "/upload", method = RequestMethod.GET)
@ApiOperation(value = "提交實驗")
public Result<Object> upload(@RequestParam String id,@RequestParam String result,@RequestParam String url){Experiment exp = iExperimentService.getById(id);if(exp == null) {return ResultUtil.error("實驗不存在");}exp.setExpResult(result);exp.setExpReport(url);exp.setUploadTime(DateUtil.now());iExperimentService.saveOrUpdate(exp);return ResultUtil.success();
}
5.3 批閱實驗
@RequestMapping(value = "/check", method = RequestMethod.GET)
@ApiOperation(value = "批閱實驗")
public Result<Object> check(@RequestParam String id,@RequestParam BigDecimal grade){Experiment exp = iExperimentService.getById(id);if(exp == null) {return ResultUtil.error("實驗不存在");}User currUser = securityUtil.getCurrUser();exp.setGrade(grade);exp.setCheckFlag(true);exp.setCheckTime(DateUtil.now());exp.setCheckUser(currUser.getNickname());iExperimentService.saveOrUpdate(exp);return ResultUtil.success();
}
5.4 新增實驗資源
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增實驗資源")
public Result<ExperimentResources> insert(ExperimentResources experimentResources){ExperimentCurriculum curriculum = iExperimentCurriculumService.getById(experimentResources.getCurriculumId());if(curriculum == null) {return ResultUtil.error("實驗課程不存在");}experimentResources.setCurriculumName(curriculum.getTitle());String fileUrl = experimentResources.getFileUrl();if(!ZwzNullUtils.isNull(fileUrl)) {String[] split = fileUrl.split("/");File f = iFileService.getById(split[split.length - 1]);if(f != null) {experimentResources.setFileId(f.getId());experimentResources.setFileName(f.getName());experimentResources.setFileSize(f.getSize());}}iExperimentResourcesService.saveOrUpdate(experimentResources);return new ResultUtil<ExperimentResources>().setData(experimentResources);
}
5.5 查詢實驗課程
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢實驗課程")
public Result<IPage<ExperimentCurriculum>> getByPage(@ModelAttribute ExperimentCurriculum experimentCurriculum ,@ModelAttribute PageVo page){QueryWrapper<ExperimentCurriculum> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("id",currUser.getId());userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND (role_id = '1536606659751841795' OR role_id = '1536606659751841799')");if(iUserService.count(userQw) < 1L) {qw.eq("teacher_id",currUser.getId());}if(!ZwzNullUtils.isNull(experimentCurriculum.getTitle())) {qw.like("title",experimentCurriculum.getTitle());}if(!ZwzNullUtils.isNull(experimentCurriculum.getContent1())) {qw.like("content1",experimentCurriculum.getContent1());}if(!ZwzNullUtils.isNull(experimentCurriculum.getTeacherName())) {qw.like("teacher_name",experimentCurriculum.getTeacherName());}IPage<ExperimentCurriculum> data = iExperimentCurriculumService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<ExperimentCurriculum>>().setData(data);
}
六、免責說明
- 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
- 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!
- 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。