案例018:基于微信小程序的實習記錄系統

文末獲取源碼

開發語言:Java

框架:SSM

JDK版本:JDK1.8

數據庫:mysql 5.7

開發軟件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序開發軟件:HBuilder X

小程序運行軟件:微信開發者

目錄

前言

系統展示

學生前端功能模塊

教師前端功能模塊

管理員后端功能界面

代碼實現

登錄功能實現代碼

注冊功能實現代碼

密碼重置功能實現代碼

修改信息功能實現代碼

刪除信息功能實現代碼

保存信息功能實現代碼


前言

隨著社會的發展,社會的方方面面都在利用信息化時代的優勢。互聯網的優勢和普及使得各種系統的開發成為必需。

本文以實際運用為開發背景,運用軟件工程原理和開發方法,它主要是采用java語言技術和mysql數據庫來完成對系統的設計。整個開發過程首先對實習記錄進行需求分析,得出實習記錄主要功能。接著對實習記錄進行總體設計和詳細設計。總體設計主要包括小程序功能設計、小程序總體結構設計、小程序數據結構設計和小程序安全設計等;詳細設計主要包括實習記錄數據庫訪問的實現,主要功能模塊的具體實現,模塊實現關鍵代碼等。最后對實習記錄進行了功能測試,并對測試結果進行了分析總結,得出實習記錄存在的不足及需要改進的地方,為以后的實習記錄維護提供了方便,同時也為今后開發類似實習記錄提供了借鑒和幫助。

實習記錄開發使系統能夠更加方便快捷,同時也促使實習記錄變的更加系統化、有序化。系統界面較友好,易于操作。


系統展示

學生前端功能模塊

學生登錄,在學生登錄頁面填寫賬號、密碼進行登錄

學生登錄到實習記錄可以查看首頁、實習公告、我的等內容

?實習公告,在實習公告頁面可以填寫公告標題、發布時間、發布人、封面等信息進行提交

在實習信息頁面可以填寫學號、學生姓名、專業、班級、手機號、教師工號、教師姓名、單位名稱、單位地址、聯系電話、崗位、指導人、實習時間等信息,并可根據需要進行提交

?在學生打卡頁面可以填寫學號、學生姓名、教師工號、教師姓名、打卡時間、打卡圖片 、備注等信息,并可根據需要對學生打卡進行提交

在實習日記頁面可以填寫日記編號、添加時間、學號、學生姓名、日記標題、今日體會、今日收獲等信息,并可根據需要對實習日記進行提交

?

教師前端功能模塊

教師登錄,在教師登錄頁面填寫賬號、密碼進行登錄

教師登錄到實習記錄可以查看首頁、實習公告、我的等內容

?實習信息,在實習信息頁面可以填寫學號、學生姓名、專業、班級、手機號、教師工號、教師姓名、單位名稱、單位地址、聯系電話、崗位、指導人、實習時間、審核回復等信息進行審核

在學生打卡頁面可以填寫學號、學生姓名、教師工號、教師姓名、打卡時間、備注等信息,并可根據需要進行提交

?在打卡記錄頁面可以填寫打卡編號、時間、教師工號、教師姓名、打卡人數、未打卡人數、備注等信息,并可根據需要對打卡記錄進行提交

管理員后端功能界面

管理員通過填寫用戶名、密碼、角色進行登錄?

學生管理,通過填寫學號、密碼、學生姓名、性別、學院、專業、班級、手機號、照片、教師工號、教師姓名等信息進行詳情、修改操作

?教師管理,通過填寫教師工號、密碼、教師姓名、性別、照片、職稱、聯系電話、教師郵箱等信息進行詳情、修改、刪除操作

實習公告管理,通過填寫公告標題、發布時間、發布人、封面等信息進行詳情、修改、刪除操作

?學院信息管理,通過填寫學院等信息進行詳情、修改、刪除操作

實習信息管理,通過填寫學號、學生姓名、專業、班級、手機號、教師工號、教師姓名、單位名稱、單位地址、聯系電話、崗位、指導人、實習時間、審核回復、審核狀態等信息進行詳情、修改、刪除操作

?學生打卡管理,通過填寫學號、學生姓名、教師工號、教師姓名、打卡時間、打卡圖片 、備注等信息進行詳情、修改、刪除操作

打卡記錄管理,通過填寫打卡編號、時間、教師工號、教師姓名、打卡人數、未打卡人數、備注等信息進行詳情、修改、刪除操作

?


代碼實現

登錄功能實現代碼

@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("賬號或密碼不正確");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}

注冊功能實現代碼

@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用戶已存在");}userService.insert(user);return R.ok();}

密碼重置功能實現代碼

@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("賬號不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密碼已重置為:123456");}

修改信息功能實現代碼

 @RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用戶名已存在。");}userService.updateById(user);//全部更新return R.ok();}

刪除信息功能實現代碼

@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}

保存信息功能實現代碼

@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用戶已存在");}userService.insert(user);return R.ok();}

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

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

相關文章

【python入門篇】函數(6)

這一節將詳細介紹Python中函數的用法&#xff0c;包括函數的定義、調用、參數、返回值、作用域等。 函數的概述&#xff1a; Python函數是一種封裝了特定任務的可重用代碼塊。通過將程序分解為更小、更具體的任務&#xff0c;函數提供了一種有效的方式來組織和管理代碼&#xf…

保姆級連接FusionInsight MRS kerberos Hive

數新網絡&#xff0c;讓每個人享受數據的價值https://xie.infoq.cn/link?targethttps%3A%2F%2Fwww.datacyber.com%2F 概述 本文將介紹在華為云 FusionInsight MRS&#xff08;Managed Relational Service&#xff09;的Kerberos環境中&#xff0c;如何使用Java和DBeaver實現遠…

threejs創建一個旋轉的正方體【完整代碼】

效果&#xff1a; 中文網three.js docs 1.搭建環境 安裝three 首先我們需要新建一個項目 vue/react都可 這里以vue為演示 npm i three 找到一個新的頁面 在頁面script的地方導入three import * as THREE from "three" 或者自己逐個導入 import {PerspectiveC…

京東采銷面對面,洞悉行業新趨勢 京東3C數碼生態大會在武漢圓滿舉行

為促進湖北省3C數碼產業發展&#xff0c;本地企業降本增效、促進行業交流、充分發揮京東集團全鏈路生態服務能力&#xff0c;支持地方3C特色產業提質增量。2023年11月23日&#xff0c;由京東零售、京東物流主辦&#xff0c;湖北省電子商務行業協會聯合協辦的“聚力共贏、攜手共…

【Kotlin精簡】第9章 Kotlin Flow

1 前言 上一章節我們學習了Kotlin的協程【Kotlin精簡】第8章 協程&#xff0c;我們知道 協程實質是對線程切換的封裝&#xff0c;能更加安全實現異步代碼同步化&#xff0c;本質上協程、線程都是服務于并發場景下&#xff0c;其中協程是協作式任務&#xff0c;線程是搶占式任務…

保姆級 ARM64 CPU架構下安裝部署Docker + rancher + K8S 說明文檔

1 K8S 簡介 K8S是Kubernetes的簡稱&#xff0c;是一個開源的容器編排平臺&#xff0c;用于自動部署、擴展和管理“容器化&#xff08;containerized&#xff09;應用程序”的系統。它可以跨多個主機聚集在一起&#xff0c;控制和自動化應用的部署與更新。 K8S 架構 Kubernete…

從Redis反序列化UserDetails對象異常后中發現FastJson序列化的一些問題

最近在使用SpringSecurityJWT實現認證授權的時候&#xff0c;出現Redis在反序列化userDetails的異常。通過實踐發現&#xff0c;使用不同的序列化方法和不同的fastJson版本&#xff0c;異常信息各不相同。所以特地記錄了下來。 一、項目代碼 先來看看我項目中redis相關配置信息…

視頻號小店常見問題分享,讓你少走彎路,少花冤枉錢!

我是電商珠珠 視頻號團隊自22年7月&#xff0c;就開始發展起了自己的電商平臺-視頻號小店。 關于視頻號小店有很多人可能還不太了解&#xff0c;尤其是對于新手來說&#xff0c;并不知道是干什么的。 我踏足電商這個領域也已經五六年了&#xff0c;視頻號小店也做了一年多了…

SpringBoot集成MapStruct

引入mapstruct依賴 <dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>${org.mapstruct.version}</version> </dependency>配置maven-compiler-plugin <build><plugins>&…

VMware Workstation 17 虛擬機自啟動失效 解決腳本

VMware Workstation17新增加了虛擬機自啟配置 但是很奇怪在我的一臺計算機上能夠自啟&#xff0c;在另一臺計算機上就失效 編寫腳本 以命令方式完成虛擬機開機自啟 #虛擬機自啟.batif "%1""hide" goto CmdBegin start mshta vbscript:createobject("w…

緩存組件狀態,提升用戶體驗:探索 keep-alive 的神奇世界

&#x1f90d; 前端開發工程師&#xff08;主業&#xff09;、技術博主&#xff08;副業&#xff09;、已過CET6 &#x1f368; 阿珊和她的貓_CSDN個人主頁 &#x1f560; 牛客高級專題作者、在牛客打造高質量專欄《前端面試必備》 &#x1f35a; 藍橋云課簽約作者、已在藍橋云…

Day31| Leetcode 455. 分發餅干 Leetcode 376. 擺動序列 Leetcode 53. 最大子數組和

進入貪心了&#xff0c;我覺得本專題是最燒腦的專題 Leetcode 455. 分發餅干 題目鏈接 455 分發餅干 讓大的餅干去滿足需求量大的孩子即是本題的思路&#xff1a; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {…

仿ChatGPT對話前端頁面(內含源碼)

仿ChatGPT對話前端頁面&#xff08;內含源碼&#xff09; 前言布局樣式和Js部分關鍵點全部源碼 前言 本文主要講解如何做出類似ChatGPT的前端頁面。具體我們的效果圖是長這樣&#xff0c;其中除了時間是動態的之外&#xff0c;其他都是假數據。接下來讓我們從布局和樣式的角度…

Android Tombstone 與Debuggerd 原理淺談

一、前言 Android系統類問題主要有stability、performance、power、security。Android集成一個守護進程tombstoned是android平臺的一個守護進程&#xff0c;它注冊成3個socket服務端&#xff0c;客戶端封裝在crash_dump和debuggerd_client。 crash_dump用于跟蹤定位C crash&am…

前端入門(三)Vue生命周期、組件技術、事件總線、

文章目錄 Vue生命周期Vue 組件化編程 - .vue文件非單文件組件組件的注意點組件嵌套Vue實例對象和VueComponent實例對象Js對象原型與原型鏈Vue與VueComponent的重要內置關系 應用單文件組件構建 Vue腳手架 - vue.cli項目文件結構refpropsmixin插件scoped樣式 Vue生命周期 1、bef…

MBA-論證有效性分析

論證有效性分析∶分析下述論證中存在的缺陷和漏洞&#xff0c;選擇若干要點&#xff0c;寫一篇 600 字左石的文章.對該論證的有效性進行分析和評論。&#xff08;論證有效性分析的一般要點是∶概念特別是核心概念的界定和使用是否準確并前后一致&#xff0c;有無各種明顯的邏輯…

cineSync 3.3新功能: 深入iconik集成、激光工具、OTIOZ支持等

cineSync 3.3為大家帶來了靈活性和精準度&#xff0c;使連接審閱會話與iconik中的媒體管理和存儲更加容易&#xff0c;并且引入了顏色配置文件以快速測試顏色配置&#xff0c;還有通過激光指針等新工具帶來新的可能性。 在ftrack&#xff0c;我們意識到當今的遠程創意工作流比以…

vue3 導出數據為 excel 文件

文章目錄 安裝插件封裝組件 -- Export2Excel.js多表封裝界面使用 -- 數據處理成二維數組更多 菜鳥最近做了一個需求&#xff0c;就是需要上傳表單并識別&#xff0c;然后識別出來的內容要可以修改&#xff0c;然后想的就是識別內容變成 form 表單&#xff0c;所以并沒有使用 Sp…

反爬蟲機制與反爬蟲技術(二)

反爬蟲機制與反爬蟲技術二 1、動態頁面處理與驗證碼識別概述2、反爬蟲案例:頁面登錄與滑塊驗證碼處理2.1、用例簡介2.2、庫(模塊)簡介2.3、網頁分析2.4、Selenium準備操作2.5、頁面登錄2.6、模糊移動滑塊測試3、滑塊驗證碼處理:精確移動滑塊3.1、精確移動滑塊的原理3.2、滑…

【模塊補充】importlib

importlib 【一】介紹 importlib 模塊是 Python 中用于動態加載和導入模塊的內置模塊。它提供了一組函數和類&#xff0c;使得我們可以在運行時根據需要加載模塊&#xff0c;并且可以對已導入的模塊進行操作和管理。 【二】詳解及示例&#xff1a; 【1】動態加載模塊&#…