当前位置: 首页 > news >正文

JAVA实现智能停车场管理系统 开源

在这里插入图片描述

目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、研究内容
    • A. 车主端功能
    • B. 停车工作人员功能
    • C. 系统管理员功能
    • 1. 停车位模块
    • 2. 车辆模块
    • 3. 停车记录模块
    • 4. IC卡模块
    • 5. IC卡挂失模块
  • 三、界面展示
    • 3.1 登录注册
    • 3.2 车辆模块
    • 3.3 停车位模块
    • 3.4 停车数据模块
    • 3.5 IC卡档案模块
    • 3.6 IC卡挂失模块
    • 3.7 系统基础模块
  • 四、免责说明


一、摘要

1.1 项目介绍

随着我国经济的不断发展,人民生活水平的也日益提高,外出购物、旅游意向也越来越强,对交通出行的需求也越来越大。在一些大型商贸场所,无论是人流量还是车流都格外大,而道路承载压力也随之增加,所以城市停车问题的解决也越发急迫。由此观之,如何解决商场等人流量多等地的停车问题,是解决交通拥堵的关键点。

项目编号: S 005 ,源码已在 B i l i b i l i 中上架,需要的朋友请自行下载。 \color{red}{项目编号:S005,源码已在 Bilibili 中上架,需要的朋友请自行下载。} 项目编号:S005,源码已在Bilibili中上架,需要的朋友请自行下载。

https://gf.bilibili.com/item/detail/1103632029

为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。

综上所述,设计一个智能停车场管理系统能够简化人们停车流程,提高停车效率,从而解决拥挤问题,节省人们时间的同时也间接推动经济发展。本文研究的系统采用JAVA开发,智能停车场管理系统的应用取得了显著的效果。通过智能停车场管理系统的运行,停车场实现了车辆进出的自动化、停车场管理的精细化和收费流程的标准化,从而提高停车场管理效率和准确性,为停车场管理决策提供更完整、准确的数据支持。

  • 前端:Vue 2.7.10

  • 后端:Spring Boot 3.1.10

  • 数据库:MySQL 8.0.31

1.2 项目录屏


二、研究内容

能停车场管理系统包含的车主管理模块、车辆管理模块、停车场模块、停车记录模块、IC卡模块、IC卡挂失模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,智能停车场管理系统基于角色的访问控制,给车主和停车场管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

A. 车主端功能

包括:我的车辆模块、我的停车模块、我的IC卡等模块。

  1. 我的车辆模块:用于车主查询自己的车辆数据,前端使用View UI组件库的Table组件来实现表格预览,包括车辆的车牌号、行驶证、车辆类型、车主姓名等数据,如对数据有异议,可以联系Button组件请求后端API接口,从而实现功能。

  2. 我的停车模块:用于车主查询自己的车辆的停车数据,前端使用View UI组件库的Form组件来实现,提交用户输入的表单数据,包括车辆的车牌号、停放开始时间、停放结束时间、停车费用等数据,如对数据有异议,可以联系系统管理员做核实处理。

  3. 我的停车模块:用于车主查询自己的IC卡数据,前端使用View UI组件库的List列表组件来实现,包括IC卡号、开卡日期、开卡经办人、服务电话等数据,如IC卡遗失,可以在线发起挂失手续。

B. 停车工作人员功能

包括:车辆管理、停车管理、IC卡管理模块。(提示:可以自助添加角色,可视化分配菜单权限实现)

  1. 车辆管理:受理车主提出的车辆新增、车辆编辑、车辆删除申请,增删改查由mybatis来实现。

  2. 停车管理:受理车主提出的停车数据更新业务,更新功能后端由mybatis来实现。

  3. IC卡管理:受理车主提出的挂失业务、开卡业务、余额充值业务,功能后端由mybatis来实现。

C. 系统管理员功能

在车主、停车工作人员所有功能的基础上,可以对系统角色权限进行更改维护、可以对停车费收费规则进行更新,采用RABC基于角色的访问控制,使用spring security 框架来实现鉴权控制。

在这里插入图片描述

1. 停车位模块

停车位是城市不可或缺的一部分,在城市和人民的生活、工作和流动中具有重要意义。随着城市化进程的加快和汽车保有量的增加,城市交通拥堵问题越来越明显。如果有足够的停车位,可以更好地引导交通,防止交通混乱,缓解交通拥堵,在城市内驾驶车辆的效率取决于停车位的数量和位置。良好的停车位规划和管理可以提高车辆停车效率,减少道路拥堵,提高城市交通效率。停车位的可用性直接影响市民的出行体验。当停车位紧张时,市民很难开车出去,如果有足够的停车位,市民出行将更加方便和舒适。停车位的可用性也会影响商业中心区域的吸引力,如果没有足够的停车位,消费者会选择其他商业中心,这将影响经济发展。

2. 车辆模块

车辆模块是智能停车场管理系统的关键组件之一,用于记录、管理和监控车辆信息和状态。车辆模块可以实现车辆进出的自动化和数据处理的自动化,从而提高停车管理的效率和准确性。通过车辆模块,停车可以为用户提供更智能、更方便的服务,减少用户等待时间和不良体验。车辆模块可以有效控制车辆的交通流量,缓解道路拥堵,改善城市交通拥堵问题。车辆模块可以记录和监控车辆的进出,可以减少非法侵入和车辆盗窃等安全问题。车辆模块在停车管理系统中具有重要的研究意义,可以提高停车管理的效率和服务质量,改善城市交通拥堵,加强安全监督管理,为停车管理提供数据支持。

3. 停车记录模块

停车记录是对车辆的停车位置、停留时间和计费状态等信息的有效记录和管理。停车记录可以让车主清楚地知道他们的车辆停在哪里和什么时候停,避免车辆被盗和其他安全问题。通过停车记录,可以获得停车位使用情况、停车流量等信息,让停车场管理者更好地分析和制定停车策略,帮助维护停车场的秩序和安全。停车记录也可以用于精细化管理,例如通过针对特定高峰时间和特定情况的差异化定价政策来提高停车利用率和管理效率。通过停车记录,可以了解车主的停车习惯和需求,为车主提供更好的停车服务,提高停车场的服务质量和用户体验。

4. IC卡模块

IC卡是智能卡的缩写,车主可以拥有一张或多张的IC卡,用于停车费用的缴纳,IC卡字段包括IC卡号、开卡日期、所属人、经办人、服务电话、余额、创建人、创建时间,车主可以申请新的IC卡,停车场管理员可以新增、挂失、编辑、条件查询车主的IC卡。

5. IC卡挂失模块

IC卡是一张实体卡,车主难免会遗失或损坏,当出现这类情况时则无法完成停车费用缴纳,这就需要建一个IC卡挂失模块,给车主的挂失卡替换为新的IC卡,IC卡挂失字段包括原卡号、新卡号、申请人、申请日期、申请状态、审核状态、经办人、创建时间,车主可以选择自己名下的IC卡发起挂失申请,停车场管理员可以审核车主的IC卡挂失申请。

在这里插入图片描述

三、界面展示

3.1 登录注册

在这里插入图片描述
登录界面的 Vue 代码如下。

<Tabs v-model="tabName" @on-click="changeTabName" class="loginTab"><TabPane label="账号密码登录" name="userAndPassword"><Form ref="usernameLoginForm" :model="form" :rules="usernameLoginFormRules" class="form"><FormItem prop="username" class="loginInput"><Row><Input v-model="form.username" size="large" clearable placeholder="登录账号" autocomplete="off"><Icon class="iconfont icon-yonghu" slot="prefix" style="line-height:50px" /></Input></Row></FormItem><FormItem prop="password"><Input style="height:50px;line-height:50px" type="password" v-model="form.password" size="large" placeholder="请输入登录密码" password autocomplete="off"><Icon class="iconfont icon-mima1" slot="prefix" style="line-height:50px" /></Input></FormItem><FormItem prop="imgCode"><Row type="flex" justify="space-between" style="align-items: center;overflow: hidden;"><Input v-model="form.imgCode" size="large" clearable placeholder="请输入验证码" :maxlength="10" class="input-verify" /><div class="code-image" style="position:relative;font-size:12px;"><Spin v-if="loadingCaptcha" fix></Spin><img :src="captchaImg" @click="getCaptchaImg" alt="验证码加载失败" style="width:110px;cursor:pointer;display:block" /></div></Row></FormItem></Form><Row type="flex" justify="space-between" align="middle"><Checkbox v-model="saveLogin" size="large">是否自动登录</Checkbox><router-link to="/regist"><a class="forget-pass">没有账号?点我注册</a></router-link></Row><Row><Button class="login-btn" type="primary" size="large" :loading="loading" @click="submitLogin" long><span v-if="!loading" style="letter-spacing:20px; font-weight:bold">登录</span><span v-else>正在登录...请稍后}</span></Button></Row></TabPane><TabPane label="企业微信扫码" name="mobile"><div id="qywxsmqywxsm"></div></TabPane>
</Tabs>

在这里插入图片描述
在这里插入图片描述
查询用户(车主)的核心代码如下。

@RequestMapping(value = "/getUserList", method = RequestMethod.GET)
@ApiOperation(value = "查询所有车主")
public Result<List<User>> getUserList(@RequestParam Integer type){QueryWrapper<User> qw = new QueryWrapper<>();qw.eq("type",type);return new ResultUtil<List<User>>().setData(iUserService.list(qw));
}

3.2 车辆模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询车辆")
public Result<IPage<Vehicle>> getByPage(@ModelAttribute Vehicle vehicle ,@ModelAttribute PageVo page){QueryWrapper<Vehicle> 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 = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("owner_id",currUser.getId());}if(!ZwzNullUtils.isNull(vehicle.getCarNumber())) {qw.like("car_number",vehicle.getCarNumber());}if(!ZwzNullUtils.isNull(vehicle.getCarType())) {qw.like("car_type",vehicle.getCarType());}if(!ZwzNullUtils.isNull(vehicle.getOwnerName())) {qw.like("owner_name",vehicle.getOwnerName());}IPage<Vehicle> data = iVehicleService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Vehicle>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增车辆")
public Result<Vehicle> insert(Vehicle vehicle){User user = iUserService.getById(vehicle.getOwnerId());if(user == null) {return ResultUtil.error("车主不存在");}vehicle.setOwnerName(user.getNickname());iVehicleService.saveOrUpdate(vehicle);return new ResultUtil<Vehicle>().setData(vehicle);
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "编辑车辆")
public Result<Vehicle> update(Vehicle vehicle){User user = iUserService.getById(vehicle.getOwnerId());if(user == null) {return ResultUtil.error("车主不存在");}vehicle.setOwnerName(user.getNickname());iVehicleService.saveOrUpdate(vehicle);return new ResultUtil<Vehicle>().setData(vehicle);
}

3.3 停车位模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询停车位")
public Result<IPage<ParkingSpace>> getByPage(@ModelAttribute ParkingSpace parkingSpace ,@ModelAttribute PageVo page){QueryWrapper<ParkingSpace> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(parkingSpace.getTitle())) {qw.like("title",parkingSpace.getTitle());}if(!ZwzNullUtils.isNull(parkingSpace.getStatus())) {qw.eq("status",parkingSpace.getStatus());}IPage<ParkingSpace> data = iParkingSpaceService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<ParkingSpace>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增停车位")
public Result<ParkingSpace> insert(ParkingSpace parkingSpace){if(Objects.equals(0, parkingSpace.getSortOrder().compareTo(BigDecimal.ZERO))) {parkingSpace.setSortOrder(BigDecimal.valueOf(iParkingSpaceService.count() + 1L));}iParkingSpaceService.saveOrUpdate(parkingSpace);return new ResultUtil<ParkingSpace>().setData(parkingSpace);
}

3.4 停车数据模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询停车记录")
public Result<IPage<ParkingData>> getByPage(@ModelAttribute ParkingData parkingData ,@ModelAttribute PageVo page){QueryWrapper<ParkingData> 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 = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("owner_id",currUser.getId());}if(!ZwzNullUtils.isNull(parkingData.getCarNumber())) {qw.like("car_number",parkingData.getCarNumber());}if(!ZwzNullUtils.isNull(parkingData.getOwner())) {qw.like("owner",parkingData.getOwner());}IPage<ParkingData> data = iParkingDataService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<ParkingData>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增停车记录")
public Result<ParkingData> insert(ParkingData parkingData){Vehicle car = iVehicleService.getById(parkingData.getCarId());if(car == null) {return ResultUtil.error("车辆不存在");}// 判断余额QueryWrapper<IcCard> icQw = new QueryWrapper<>();icQw.eq("user_id",car.getOwnerId());icQw.last("limit 1");IcCard ic = iIcCardService.getOne(icQw);if(ic == null) {return ResultUtil.error("您没有IC卡,请申请");}if(parkingData.getCost().compareTo(ic.getBalance()) > 0) {return ResultUtil.error("您IC卡余额不足");}// 记录数据parkingData.setCarNumber(car.getCarNumber());parkingData.setOwnerId(car.getOwnerId());parkingData.setOwner(car.getOwnerName());iParkingDataService.saveOrUpdate(parkingData);ic.setBalance(ic.getBalance().subtract(parkingData.getCost()));iIcCardService.saveOrUpdate(ic);return new ResultUtil<ParkingData>().setData(parkingData);
}

3.5 IC卡档案模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询IC卡")
public Result<IPage<IcCard>> getByPage(@ModelAttribute IcCard icCard ,@ModelAttribute PageVo page){QueryWrapper<IcCard> 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 = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("user_id",currUser.getId());}if(!ZwzNullUtils.isNull(icCard.getCarNumber())) {qw.like("car_number",icCard.getCarNumber());}if(!ZwzNullUtils.isNull(icCard.getWorkUser())) {qw.like("work_user",icCard.getWorkUser());}IPage<IcCard> data = iIcCardService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<IcCard>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增IC卡")
public Result<IcCard> insert(IcCard icCard){User user = iUserService.getById(icCard.getUserId());if(user == null) {return ResultUtil.error("归属人不存在");}icCard.setUserName(user.getNickname());User currUser = securityUtil.getCurrUser();icCard.setWorkUser(currUser.getNickname());icCard.setDate(DateUtil.today());iIcCardService.saveOrUpdate(icCard);return new ResultUtil<IcCard>().setData(icCard);
}

在这里插入图片描述

@RequestMapping(value = "/recharge", method = RequestMethod.POST)
@ApiOperation(value = "充值")
public Result<Object> recharge(@RequestParam String id, @RequestParam BigDecimal number){IcCard ic = iIcCardService.getById(id);if(ic == null) {return ResultUtil.error("IC卡不存在");}ic.setBalance(ic.getBalance().add(number));iIcCardService.saveOrUpdate(ic);return ResultUtil.success();
}

3.6 IC卡挂失模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询IC卡挂失")
public Result<IPage<IcCardLoss>> getByPage(@ModelAttribute IcCardLoss icCardLoss ,@ModelAttribute PageVo page){QueryWrapper<IcCardLoss> 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 = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("apply_id",currUser.getId());}if(!ZwzNullUtils.isNull(icCardLoss.getCarNumber())) {qw.like("car_number",icCardLoss.getCarNumber());}if(!ZwzNullUtils.isNull(icCardLoss.getApplyUser())) {qw.like("apply_user",icCardLoss.getApplyUser());}if(!ZwzNullUtils.isNull(icCardLoss.getStatus())) {qw.eq("status",icCardLoss.getStatus());}IPage<IcCardLoss> data = iIcCardLossService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<IcCardLoss>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增IC卡挂失")
public Result<IcCardLoss> insert(IcCardLoss icCardLoss){IcCard ic = iIcCardService.getById(icCardLoss.getCarId());if(ic == null) {return ResultUtil.error("IC卡不存在");}icCardLoss.setCarNumber(ic.getCarNumber());User currUser = securityUtil.getCurrUser();icCardLoss.setApplyId(currUser.getId());icCardLoss.setApplyUser(currUser.getNickname());iIcCardLossService.saveOrUpdate(icCardLoss);return new ResultUtil<IcCardLoss>().setData(icCardLoss);
}

在这里插入图片描述

@RequestMapping(value = "/audit", method = RequestMethod.POST)
@ApiOperation(value = "审核IC卡挂失")
public Result<Object> audit(@RequestParam String id){IcCardLoss cl = iIcCardLossService.getById(id);if(cl == null) {return ResultUtil.error("挂失单不存在");}cl.setStatus("已审核");iIcCardLossService.saveOrUpdate(cl);IcCard ic = iIcCardService.getById(cl.getCarId());if(ic != null) {ic.setCarNumber(cl.getNewNumber());iIcCardService.saveOrUpdate(ic);}return ResultUtil.success();
}

3.7 系统基础模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
智能停车场管理系统是一款高科技软件产品,用于在计算机管理下对停车场进行全面维护,据专家称,智能停车场管理系统始于2013年,该系统不断改进,其功能日益满足当地的实际需求,智能停车场管理系统的运行变得更加人性化。

在我国,智能停车场管理系统随着中国大量公共停车场的出现而逐渐发展,中国最初的智能停车场管理系统是在引进和消化类似外国系统的基础上逐步发展起来的,并在此基础上不断改进,具有更为综合的重要性。总体而言,智能停车管理系统和标准软件的开发正处于较高阶段,但这些要求并不是一成不变的,随着时间的推移,智能停车场管理系统会继续发展。


四、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

相关文章:

JAVA实现智能停车场管理系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系统管理员功能1. 停车位模块2. 车辆模块3. 停车记录模块4. IC卡模块5. IC卡挂失模块 三、界面展示3.1 登录注册3.2 车辆模块3.3 停车位模块3.4 停车数据模块3.5 IC卡档案模块3.6 IC卡挂…...

深入理解Docker之:存储卷相关概念详解和分析

深入理解Docker之&#xff1a;存储卷相关概念详解和分析 1. 为什么要使用存储卷 Docker镜像由多个只读层叠加而成&#xff0c;启动容器时&#xff0c;Docker会加载只读镜像层&#xff0c;并在镜像栈顶部添加一个读写层如果运行中的容器修改了现有的一个已经存在的文件&#x…...

Node.js的基本概念node -v 和npm -v 这两个命令的作用

Node.js 是一个开源且跨平台的 JavaScript 运行时环境&#xff0c;它可以让你在服务器端运行 JavaScript 代码。Node.js 使用了 Chrome 的 V8 JavaScript 引擎来执行代码&#xff0c;非常高效。 在 Node.js 出现之前&#xff0c;JavaScript 通常只在浏览器中运行&#xff0c;用…...

mysql bin_log日志恢复数据

1、开启bin_log日志 开启方式1 my.ini 下配置开启或者vi /etc/my.cnf log_binmysql-bin server_id1 2、参考文章 https://blog.csdn.net/DreamEhome/article/details/130010601 (重点) 【mysql】binlog日志_mysql binlog日志-CSDN博客 MySQL 开启binlog日志和windows服务…...

C++系列之list的模拟实现

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; list的节点类 template struct list_Node { public: list_Node* _prev; list_…...

什么情况下你会使用AI工具(chatgpt、bard)?

在当今数字化和智能化的时代&#xff0c;AI工具已成为许多领域的常见工具。在本文中&#xff0c;我将探讨什么情况下会使用AI工具。前言 – 人工智能教程 ChatGPT是一款由OpenAI开发的大型语言模型&#xff0c;可以生成文本、翻译语言、编写不同类型的创意内容&#xff0c;并以…...

【go】两数求和

文章目录 题目代码解法2 代码仓库 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案…...

软考高项-成本管理

工具和技术 三点估算 通过考虑估算中的不确定性与风险&#xff0c;使用3种估算值来界定活动成本的近似区间&#xff0c;可以提高活动成本估算的准确性&#xff1b; 储备分析 为应对成本的不确定性&#xff0c;成本估算中可以包括应急储备。应急储备的管理方法&#xff1a; 将…...

24年FRM备考知识点以及一级公式表

FRM一级公示表以及备考知识点 链接&#xff1a;https://pan.baidu.com/s/17RpFF9OyfRk7FGtEQrxf3A?pwd1234 提取码&#xff1a;1234 FRM二级公示表以及备考知识点 链接&#xff1a;https://pan.baidu.com/s/175D05wV1p94dIfBZThutCQ?pwd1234 提取码&#xff1a;1234...

Spring Cloud学习:二【详细】

目录 Nacos的配置 Nacos的单机启动 服务注册 Nacos服务分级存储模型 优先访问同集群的服务 根据权重负载均衡 环境隔离Namespace Nacos调用流程 Nacos与Eureka注册对比 Nacos与Eureka的共同点 Nacos与Eureka的区别 Nacos配置管理 统一配置 配置自动刷新 多环境配…...

Unity的live2dgalgame多语言可配置剧情框架

这段代码用于读取表格 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using OfficeOpenXml; using System.IO; using UnityEngine.Networking; using UnityEngine.UI; using Random UnityEngine.Random;public class Plots…...

再畅通工程(最小生成树)

题目描述&#xff1a;还是畅通工程 某省调查乡村交通状况&#xff0c;得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通&#xff08;但不一定有直接的公路相连&#xff0c;只要能间接通过公路可达即可&#xff09;&…...

前后端分离不可忽视的陷阱,深入剖析挑战,分享解决方案,助你顺利实施分离开发。

不管你设计的系统架构是怎么样&#xff0c;最后都是你的组织内的沟通结构胜出。这个观点一直在组织内不断地被证明&#xff0c;但也不断地被忽略。 前后端分离的利与弊 近几年&#xff0c;随着微服务架构风格的引入、前后端生态的快速发展、多端产品化的出现&#xff0c;前后…...

(四)库存超卖案例实战——优化redis分布式锁

前言 在上一节内容中&#xff0c;我们已经实现了使用redis分布式锁解决商品“超卖”的问题&#xff0c;本节内容是对redis分布式锁的优化。在上一节的redis分布式锁中&#xff0c;我们的锁有俩个可以优化的问题。第一&#xff0c;锁需要实现可重入&#xff0c;同一个线程不用重…...

【ROS入门】雷达、摄像头及kinect信息仿真以及显示

文章结构 雷达信息仿真以及显示Gazebo仿真雷达配置雷达传感器信息xacro文件集成启动仿真环境 Rviz显示雷达数据 摄像头信息仿真以及显示Gazebo仿真摄像头新建xacro文件&#xff0c;配置摄像头传感器信息xacro文件集成启动仿真环境 Rviz显示摄像头数据 kinect信息仿真以及显示Ga…...

实用篇-认识微服务

一、服务架构演变 1. 单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个包部署 单体架构的优点&#xff1a; 架构简单部署成本低 单体架构的缺点&#xff1a; 耦合度高 2. 分布式架构 分布式架构&#xff1a; 根据业务功能对系…...

【产品运营】产品需求应该如何管理

产品项目在进行时经常会有一些需求需要实现&#xff0c;需求是产品更新迭代的动力&#xff0c;需求也是从用户诉求转化而来&#xff1b;在做需求管理时&#xff0c;我们需要判断一个需求的优先级等方面&#xff0c;对产品进行优化&#xff1b; 目录&#xff1a; 一、 为什么要…...

Linux 系统调用IO口,利用光标偏移实现文件复制

用系统调用IO函数实现从一个文件读取最后2KB数据并复制到另一个文件中&#xff0c;源文件以只读方式打开&#xff0c;目标文件以只写的方式打开&#xff0c;若目标文件不存在&#xff0c;可以创建并设置初始值为0664&#xff0c;写出相应代码&#xff0c;要对出错情况有一定的处…...

【原创】指针变量作为函数参数要点注意

指针变量作为函数参数要点注意&#xff08;已写至笔记&#xff09; 1传参指针不加*&#xff08;main中函数&#xff09; 2收参指针要加*&#xff08;被main调用的函数&#xff09; 3传参指针名可与收参指针名不同&#xff0c;不影响 4【问】如何看主函数中指针所指内容是否改变…...

SpringMVC Day 04 : 数据绑定

前言 SpringMVC是一个非常流行的Java Web框架&#xff0c;它提供了很多方便的功能和工具来帮助我们构建高效、灵活的Web应用程序。其中&#xff0c;数据绑定就是SpringMVC中非常重要的一部分&#xff0c;它可以帮助我们方便地将请求参数绑定到Java对象上&#xff0c;从而简化了…...

2.3.1 协程设计原理与汇编实现

1.为什么要有协程&#xff1f; 同步的编程方式&#xff0c;异步的性能。同步编程时&#xff0c;我们需要等待io就绪。但是在协程这里&#xff0c;我们使用一种机制&#xff0c;当io需要等待时&#xff0c;就切到下一个io&#xff0c;之后当之前的io就绪时&#xff0c;再切换回来…...

J2EE项目部署与发布(Windows版本)->会议OA单体项目Windows部署,spa前后端分离项目Windows部署

会议OA单体项目Windows部署spa前后端分离项目Windows部署 1.会议OA单体项目Windows部署&#xff08;以实施的角度&#xff09; 将项目放入webapp&#xff0c;项目能够访问: 首先拿到war包和数据库脚本&#xff0c;并检查是否有什么问题。 如何查看项目报错信息&#xff08;当你…...

Lua脚本语言

1. 概念 Lua&#xff08;发音为"loo-ah"&#xff0c;葡萄牙语中的"lua"意为月亮&#xff09;是一种轻量级的、高效的、可嵌入的脚本编程语言。官网Lua最初由巴西计算机科学家Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年开…...

cat()函数和print()函数的区别

目录 区别一&#xff1a; 区别二&#xff1a; cat、print函数都是输出函数。 区别一&#xff1a; cat()函数不能赋值&#xff1b; print()函数可以赋值。 x<-cat("hello world") //赋值 hello world x //cat函数无返回值 NULLy<-print("hello …...

宝塔面板安装Python和Flask(新版Python项目)

&#xff08;一&#xff09;宝塔面板的项目菜单&#xff0c;打开Python项目的“项目版本管理” 安装Python版本3.10.0。 会创建一个Python版本的文件夹www/server/pyproject_evn/versions/ 会创建一个Python虚拟环境的文件夹www/server/pyproject_evn/python_venv/ &#xf…...

火柴排队.

题意&#xff1a;给两列火柴&#xff0c;可以交换任意相邻的火柴&#xff0c;使得&#xff08;ai-bi)^2的和最小&#xff0c;求最小交换次数。 分析&#xff1a;使得&#xff08;ai-bi)^2的和最小&#xff0c;即a^2-2abb^2的和最小&#xff0c;那么使得2ab最大&#xff0c;就可…...

改善游戏体验:数据分析与可视化的威力

当今&#xff0c;电子游戏已经超越了娱乐&#xff0c;成为一种文化现象&#xff0c;汇聚了全球数十亿的玩家。游戏制作公司正采用越来越复杂的技术来提高游戏质量&#xff0c;同时游戏数据分析和可视化工具变得不可或缺。 数据的力量&#xff1a;解析游戏体验 游戏制作涉及到大…...

GEE:本地影像上传到GEE的Assets中,并输入机器学习算法中作为特征变量

作者:CSDN @ _养乐多_ 当我们在 Google Earth Engine(GEE)中应用机器学习算法时,会输入一些影像作为特征变量数据,进一步根据这些特征影像去推理未知区域的数据。但是 GEE 平台上计算特征变量的 API 函数并不是非常全面,我们希望获得更多的特征用于分类。这个时候,我们…...

【Mybatis源码】XMLConfigBuilder构建器 - 读取XML配置初始化Configuration对象

XMLConfigBuilder是Mybatis中定义的进行构建Configuration对象的类,此类用于读取XML配置文件创建并初始化Configuration对象; 上一篇中我们介绍了XMLConfigBuilder构建器加载XML配置文件以及创建Configuration对象https://blog.csdn.net/m1729339749/article/details/133983…...

Python算法练习 10.28

leetcode 700 二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,1,…...