计算机毕业设计选题推荐-高校实验室管理系统-Java/Python项目实战
✨作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
文章目录
- 一、前言
- 二、开发环境
- 三、系统界面展示
- 四、代码参考
- 五、论文参考
- 六、系统视频
- 结语
一、前言
高校实验室管理系统作为高等教育信息化建设的重要组成部分,对提升教学质量和科研效率具有显著影响。随着教育改革的深入和科研需求的增长,传统的实验室管理模式已无法满足现代高校的需求。据统计,我国高校实验室数量不断增加,但同时也面临着实验场地不足、设备使用率低、技术人员专业素质不高等问题 。
现有高校实验室管理系统普遍存在一些问题,如管理职责不明确、实验室开放度和共享度不足、安全隐患、设备管理不善等 。这些问题限制了实验室资源的有效利用,影响了实验教学和科研活动的开展。
本课题旨在设计并实现一个高效、智能的高校实验室管理系统,通过信息化手段整合实验室资源,优化管理流程,提升实验室使用效率和管理水平。系统将提供用户管理、实验室预约、设备管理、安全教育、应急预案等功能,以满足现代高校实验室管理的需求。
本课题的研究具有重要的理论意义和实际意义。从理论角度来看,它为实验室管理领域提供了新的研究思路,即如何利用信息技术提升实验室管理的效率和质量。从实际角度来看,该系统的应用将有助于提高实验室资源的利用率,保障实验室安全,促进高校教学和科研活动的顺利进行 。
在高校实验室管理系统中,管理员负责系统用户管理、实验室预约审核、设备管理、安全教育和应急预案的制定;教师可以发布实验课程、管理实验室预约、进行实验成绩记录;学生用户能够查看实验课程、进行实验室预约、查看设备信息、参与安全教育。系统通过这些功能模块的整合,旨在提供一个全面、互动的实验室管理平台,满足不同用户角色的需求,优化实验室管理流程,提高管理效率。
二、开发环境
- 开发语言:Java/Python
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot/SSM/Django/Flask
- 前端:Vue
三、系统界面展示
- 高校实验室管理系统界面展示:
用户-查看实验室信息:

用户-预约实验室:

用户-查看仪器设备信息:

用户-借用仪器设备:

用户-预约实验:

用户-化学品申报:

管理员-审核实验室预约:

管理员-试剂药品出入库管理:

四、代码参考
- 项目实战代码参考:
@RestController
@RequestMapping("/shiyankecheng")
public class ShiyankechengController {@Autowiredprivate ShiyankechengService shiyankechengService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ShiyankechengEntity shiyankecheng,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {shiyankecheng.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<ShiyankechengEntity> ew = new EntityWrapper<ShiyankechengEntity>();PageUtils page = shiyankechengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyankecheng), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ShiyankechengEntity shiyankecheng, HttpServletRequest request){EntityWrapper<ShiyankechengEntity> ew = new EntityWrapper<ShiyankechengEntity>();PageUtils page = shiyankechengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyankecheng), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ShiyankechengEntity shiyankecheng){EntityWrapper<ShiyankechengEntity> ew = new EntityWrapper<ShiyankechengEntity>();ew.allEq(MPUtil.allEQMapPre( shiyankecheng, "shiyankecheng")); return R.ok().put("data", shiyankechengService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ShiyankechengEntity shiyankecheng){EntityWrapper< ShiyankechengEntity> ew = new EntityWrapper< ShiyankechengEntity>();ew.allEq(MPUtil.allEQMapPre( shiyankecheng, "shiyankecheng")); ShiyankechengView shiyankechengView = shiyankechengService.selectView(ew);return R.ok("查询实验课程成功").put("data", shiyankechengView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ShiyankechengEntity shiyankecheng = shiyankechengService.selectById(id);return R.ok().put("data", shiyankecheng);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ShiyankechengEntity shiyankecheng = shiyankechengService.selectById(id);return R.ok().put("data", shiyankecheng);}/*** 后端保存*/@RequestMapping("/save")@SysLog("新增实验课程") public R save(@RequestBody ShiyankechengEntity shiyankecheng, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyankecheng);shiyankechengService.insert(shiyankecheng);return R.ok();}/*** 前端保存*/@SysLog("新增实验课程")@RequestMapping("/add")public R add(@RequestBody ShiyankechengEntity shiyankecheng, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyankecheng);shiyankechengService.insert(shiyankecheng);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactional@SysLog("修改实验课程")public R update(@RequestBody ShiyankechengEntity shiyankecheng, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyankecheng);shiyankechengService.updateById(shiyankecheng);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")@SysLog("删除实验课程")public R delete(@RequestBody Long[] ids){shiyankechengService.deleteBatchIds(Arrays.asList(ids));return R.ok();}}
@RestController
@RequestMapping("/shiyanshiyuyue")
public class ShiyanshiyuyueController {@Autowiredprivate ShiyanshiyuyueService shiyanshiyuyueService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ShiyanshiyuyueEntity shiyanshiyuyue,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {shiyanshiyuyue.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();PageUtils page = shiyanshiyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyanshiyuyue), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ShiyanshiyuyueEntity shiyanshiyuyue, HttpServletRequest request){EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();PageUtils page = shiyanshiyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyanshiyuyue), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ShiyanshiyuyueEntity shiyanshiyuyue){EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();ew.allEq(MPUtil.allEQMapPre( shiyanshiyuyue, "shiyanshiyuyue")); return R.ok().put("data", shiyanshiyuyueService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ShiyanshiyuyueEntity shiyanshiyuyue){EntityWrapper< ShiyanshiyuyueEntity> ew = new EntityWrapper< ShiyanshiyuyueEntity>();ew.allEq(MPUtil.allEQMapPre( shiyanshiyuyue, "shiyanshiyuyue")); ShiyanshiyuyueView shiyanshiyuyueView = shiyanshiyuyueService.selectView(ew);return R.ok("查询实验室预约成功").put("data", shiyanshiyuyueView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ShiyanshiyuyueEntity shiyanshiyuyue = shiyanshiyuyueService.selectById(id);return R.ok().put("data", shiyanshiyuyue);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ShiyanshiyuyueEntity shiyanshiyuyue = shiyanshiyuyueService.selectById(id);return R.ok().put("data", shiyanshiyuyue);}/*** 后端保存*/@RequestMapping("/save")@SysLog("新增实验室预约") public R save(@RequestBody ShiyanshiyuyueEntity shiyanshiyuyue, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyanshiyuyue);shiyanshiyuyueService.insert(shiyanshiyuyue);return R.ok();}/*** 前端保存*/@SysLog("新增实验室预约")@RequestMapping("/add")public R add(@RequestBody ShiyanshiyuyueEntity shiyanshiyuyue, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyanshiyuyue);shiyanshiyuyueService.insert(shiyanshiyuyue);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactional@SysLog("修改实验室预约")public R update(@RequestBody ShiyanshiyuyueEntity shiyanshiyuyue, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyanshiyuyue);shiyanshiyuyueService.updateById(shiyanshiyuyue);//全部更新return R.ok();}/*** 审核*/@RequestMapping("/shBatch")@Transactional@SysLog("审核实验室预约")public R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf){List<ShiyanshiyuyueEntity> list = new ArrayList<ShiyanshiyuyueEntity>();for(Long id : ids) {ShiyanshiyuyueEntity shiyanshiyuyue = shiyanshiyuyueService.selectById(id);shiyanshiyuyue.setSfsh(sfsh);shiyanshiyuyue.setShhf(shhf);list.add(shiyanshiyuyue);}shiyanshiyuyueService.updateBatchById(list);return R.ok();}/*** 删除*/@RequestMapping("/delete")@SysLog("删除实验室预约")public R delete(@RequestBody Long[] ids){shiyanshiyuyueService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** (按值统计)*/@RequestMapping("/value/{xColumnName}/{yColumnName}")public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("yColumn", yColumnName);EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));}List<Map<String, Object>> result = shiyanshiyuyueService.selectValue(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** (按值统计(多))*/@RequestMapping("/valueMul/{xColumnName}")public R valueMul(@PathVariable("xColumnName") String xColumnName,@RequestParam String yColumnNameMul, HttpServletRequest request) {String[] yColumnNames = yColumnNameMul.split(",");Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);List<List<Map<String, Object>>> result2 = new ArrayList<List<Map<String,Object>>>();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));}for(int i=0;i<yColumnNames.length;i++) {params.put("yColumn", yColumnNames[i]);List<Map<String, Object>> result = shiyanshiyuyueService.selectValue(params, ew);for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}result2.add(result);}return R.ok().put("data", result2);}/*** (按值统计)时间统计类型*/@RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("yColumn", yColumnName);params.put("timeStatType", timeStatType);EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));}List<Map<String, Object>> result = shiyanshiyuyueService.selectTimeStatValue(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** (按值统计)时间统计类型(多)*/@RequestMapping("/valueMul/{xColumnName}/{timeStatType}")public R valueMulDay(@PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,@RequestParam String yColumnNameMul,HttpServletRequest request) {String[] yColumnNames = yColumnNameMul.split(",");Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("timeStatType", timeStatType);List<List<Map<String, Object>>> result2 = new ArrayList<List<Map<String,Object>>>();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));}for(int i=0;i<yColumnNames.length;i++) {params.put("yColumn", yColumnNames[i]);List<Map<String, Object>> result = shiyanshiyuyueService.selectTimeStatValue(params, ew);for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}result2.add(result);}return R.ok().put("data", result2);}/*** 分组统计*/@RequestMapping("/group/{columnName}")public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("column", columnName);EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));}List<Map<String, Object>> result = shiyanshiyuyueService.selectGroup(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** 总数量*/@RequestMapping("/count")public R count(@RequestParam Map<String, Object> params,ShiyanshiyuyueEntity shiyanshiyuyue, HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {shiyanshiyuyue.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<ShiyanshiyuyueEntity> ew = new EntityWrapper<ShiyanshiyuyueEntity>();int count = shiyanshiyuyueService.selectCount(MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyanshiyuyue), params), params));return R.ok().put("data", count);}}
五、论文参考
- 计算机毕业设计选题推荐-高校实验室管理系统论文参考:

六、系统视频
高校实验室管理系统项目视频:
计算机毕业设计选题推荐-高校实验室管理系统-项目实战
结语
计算机毕业设计选题推荐-高校实验室管理系统-Java/Python项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
相关文章:
计算机毕业设计选题推荐-高校实验室管理系统-Java/Python项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...
nest定义响应码message文本
需求 需要对接口的异常响应码,手动设置message文本!!! 例如:项目中使用multer中间件实现文件上传,multer设置了文件大小限制,该中间件校验文件时错误(文件超出)会自动响…...
Java | Leetcode Java题解之第342题4的幂
题目: 题解: class Solution {public boolean isPowerOfFour(int n) {return n > 0 && (n & (n - 1)) 0 && n % 3 1;} }...
【日常开发】java中一个list对象集合 将字段a为 大豆 小麦 玉米等元素放在最前面 并组成新集合
🎈边走、边悟🎈迟早会好 在Java中实现这个功能,可以使用Stream来筛选出符合条件的元素,将它们放在新集合的前面,同时保留其他元素在新集合的后面。以下是如何实现的代码示例: 代码示例: impo…...
C++ 设计模式——原型模式
原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 UML 图原型模式 UML 图解析优点和缺点适用场景总结 原型模式 原型(Prototype)模式是一种创建型模式。原型模式通过(原型对象)克隆出对个一模一样的对象。实际上,该模式与其说是一种设计模式,…...
【Harmony OS 4.0】待办列表案例
src/main/ets/example1/Models.ets // 定义class类数据模型 export class TaskDataModel {// private 私有属性,在类对象外不允许随意更改数据,必须本地初始化。private tasks: Array<string> [早起晨练, 准备早餐, 阅读名著, 学习ArkTs, 玩游戏…...
快速把文件名统计到excel表的方法
文件名统计到EXCEL表,这似乎很多人都没听说过,因为它与EXCEL表格不沾边,那么这个需求如何实现,用到什么方法,今天给大家介绍一个比较实用的方法,它可以把文件名或文件夹的名快速提取并统计到EXCEL表格上去。…...
开源通用验证码识别OCR —— DdddOcr 源码赏析(一)
文章目录 [toc] 前言DdddOcr环境准备安装DdddOcr使用示例 源码分析实例化DdddOcr实例化过程 分类识别分类识别过程 未完待续 前言 DdddOcr 源码赏析 DdddOcr DdddOcr是开源的通用验证码识别OCR 官方传送门 环境准备 安装DdddOcr pip install ddddocr使用示例 示例图片如…...
上升ECMAScript性能优化技巧与陷阱(下)
4. 深拷贝和浅拷贝的选择不当 在JavaScript中,对象是通过引用传递的,这意味着当你将一个对象赋值给另一个变量时,你实际上是在传递对象的引用,而不是对象本身。这导致了一个常见的问题:当你修改一个对象的属性时&…...
用7EPhone云手机进行TikTok的矩阵运营
“根据市局机构Statista发布的报告显示,截至2024年4月,TikTok全球下载量超过49.2亿次,月度活跃用户数超过15.82亿。TikTok的流量受欢迎程度可想而知,也一跃成为了全球第五大最受欢迎的社交APP。” 人群密集的地方社区也是适合推广…...
谷歌浏览器下载文件被阻止怎么解除
在工作生活中,我们会使用谷歌浏览器下载各种各样的文件,不过偶尔会遇到文件下载被阻止的情况。为了解决这一问题,本文为大家分享了实用的措施建议,一起来了解一下吧。(本文由https://chrome.cmrrs.com/站点的作者进行编…...
apt E: 无法定位软件包 winehq-stable
执行了 添加wine源 wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources还需要执行 更新源 apt update...
P2460[SDOI2007] 科比的比赛
第一次做洛谷系列,紧张,请多关照哦 题目传送门:[SDOI2007] 科比的比赛 - 洛谷 思路分析 这道题大概题意是给定我们的主人公 Kobe Bryant 的 mm 个对手,nn 场比赛相对应的获胜概率。求 Kobe Bryant 最大全部获胜概率和打败对手能…...
linux学习--第二天
--Linux文件系统 -显示文件命令 cat 1. cat -b 文件:从1开始对非空输出行编号 2. cat -n 文件:从1开始对所有行编号 3. cat -s 文件:将连续多行空白行合并 more(显示一屏文本内容) 1. more -num 文件ÿ…...
使用 Flask、Celery 和 Python 实现每月定时任务
为了创建一个使用 Flask、Celery 和 Python 实现的每月定时任务,我们需要按照以下步骤进行: 1.安装必要的库 我们需要安装 Flask、Celery 和 Redis(作为消息代理)。我们可以使用 pip 来安装它们: bash复制代码 p…...
【c语言】整数在内存中的储存(大小端字节序)
整数在内存中的储存(大小端字节序) 1.整数在内存中的储存 2.大小端字节序 3.整数在内存中储存例子 4.字节序判断 5.死循环现象 文章目录 整数在内存中的储存(大小端字节序)整数在内存中的储存大小端字节序什么是大小端为什么会有…...
浅谈SIMD、向量化处理及其在StarRocks中的应用
前言 单指令流多数据流(SIMD)及其衍生出来的向量化处理技术已经有了相当的历史,并且也是高性能数据库、计算引擎、多媒体库等组件的标配利器。笔者在两年多前曾经做过一次有关该主题的内部Geek分享,但可能是由于这个topic离实际研发场景比较远࿰…...
【ML】Image Augmentation)的作用、使用方法及其分类
图像增强(Image Augmentation)的作用、使用方法及其分类 1. 图像增强的定义2. 图像增强的作用3. 什么时候使用图像增强?4. 图像增强详细方法分类梳理4.1 图像增强方法列表4.2 边界框增强方法5. 参考资料 yolov3(一:模型…...
设计模式六大原则(一)--单一职责原则
1. 简介 1.1. 概述 一个类或模块应该只负责完成一项任务或承担一个责任。如果一个类或模块承担了多个职责,那么当需要修改其中一个职责的功能时,就可能会对其他职责产生影响,从而导致代码耦合度增加,维护起来更加困难。 1.2. 主要特点 单一职责原则(Single Responsibi…...
c语言学习,malloc()函数分析
1:malloc() 函数说明: 申请配置size大小内存空间 2:函数原型: void *malloc(size_t size) 3:函数参数: 参数size,为申请内存大小 4:返回值: 配置成功则返回指针&#…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
