基于springboot+html汽车维修系统汽车维修系统的设计与实现

news2024/11/15 17:35:51

基于springboot+html汽车维修系统汽车维修系统的设计与实现

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

目前,全国汽车维修行业有一二类企业30多万家,从业人员近300万人,每年都在以10%左右的速度快速增长。国营、集体、股份制、私营、个体、中 外合资等多种经济成分的汽车维修企业在共同发展,4S 店、特约维修服务站、 综合维修厂、快修连锁店、专项维修店等多样化的经营方式各展其长,形成了一个门类齐全、品种多样,分布广泛,服务方便,能够满足不同消费层次需求的汽车维修市场。中国汽车市场发展潜力巨大,特别是私人汽车消费,在未来20年将持续高速增长。中国汽车保有量的快速增长将直接带动国内汽车维修保养市的发展,中国的汽保行业在未来的5-10年中有着无限广阔的发展空间。
随着信息技术的不断革新和渗透,各行各业都在探索拥抱信息技术的合作方式,汽修行业也不例外。信息化的汽车维修管理系统能够实现在数秒钟内从上万份客户档案中找出你所需要的某个车的报修历史记录,能从上万个零配件中找出某个零配件的库存 情况及存放地点,更加方便快捷。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Spring:Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
  3. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  4. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  5. Jsp:JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
  6. Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
  7. Html:HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
    超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:部门
(car_dept)

字段名类型默认值列注释
idint(50)NULLID
dept_namevarchar(100)NULL部门名称
dept_locationvarchar(100)NULL部门地址

2:dictionary(dictionary)

字段名类型默认值列注释
idint(50)NULL
dictionary_typevarchar(40)NULL类别
codevarchar(40)NULL编码key
valvarchar(100)NULL编码对应值
statusvarchar(4)NULL状态(1:启用[新建默认该状态],2:禁用)
remakevarchar(100)NULL备注

3:仓库
(house)

字段名类型默认值列注释
idint(11)NULLID
house_namevarchar(255)NULL仓库名
house_addressvarchar(255)NULL仓库地址
remarkvarchar(255)NULL备注
statusint(11)NULL标记

4:用户菜单表
(menu)

字段名类型默认值列注释
idint(11)NULLID
user_idint(11)NULL用户编号
menuint(255)NULL菜单名

5:订单
(orders)

字段名类型默认值列注释
idint(50)NULL
registration_idint(50)NULL登记表编号
order_timedatetimeNULL下单时间
staff_idint(50)NULL下单员工id
statusint(4)NULL订单状态(0:未支付,1:已支付,2:维修中,3:质检中,4:已完成)
repair_idint(50)NULL维修人员编号
quality_inspector_idint(50)NULL质检人编号
pay_moneyvarchar(100)NULL支付金额
complete_timedatetimeNULL完成时间

6:配件
(parts)

字段名类型默认值列注释
idint(11)NULLID
parts_type_idvarchar(255)NULL配件类别编号
parts_namevarchar(255)NULL配件名称
statusint(11)NULL标记
parts_pricevarchar(255)NULL采购价格
parts_set_pricevarchar(255)NULL销售价格
parts_numint(11)NULL库存
parts_house_idint(11)NULL仓库编号

7:零件类别
(parts_type)

字段名类型默认值列注释
idint(11)NULLID
type_namevarchar(255)NULL类别名称

8:采购
(purchase)

字段名类型默认值列注释
idint(11)NULLID
purchase_parts_idint(11)NULL零件编号
purchase_suppliers_idint(11)NULL供应商编号
purchase_numint(11)NULL需求量
purchase_start_timedatetimeNULL创建时间
purchase_end_timedatetimeNULL完成时间
statusint(11)NULL标记
purchase_staff_idint(11)NULL采购员

9:测试
(registration)

字段名类型默认值列注释
idint(50)NULLID
visit_namevarchar(100)NULL来访人姓名
visit_sexvarchar(100)NULL来访人性别
visit_telvarchar(100)NULL来访人联系电话
visit_emailvarchar(100)NULL来访人邮箱
visit_timedatetimeNULL来访时间
car_modelvarchar(100)NULL车辆型号
car_license_platevarchar(100)NULL车辆牌照
staff_idint(50)NULL接待人id
statusint(4)NULL预约状态(0:预约,1:放弃预约,2:已下单

10:staff(staff)

字段名类型默认值列注释
idint(50)NULL
user_namevarchar(100)NULL用户名
user_pwdvarchar(100)NULL密码
nick_namevarchar(100)NULL昵称
head_imgvarchar(100)NULL头像
dept_idint(50)NULL部门编号
statusint(4)NULL状态([0:可用1:禁用])
jurisdictionint(4)NULL权限[0:最高管理员,1:普通管理员]

11:供应商管理
(suppliers)

字段名类型默认值列注释
idint(11)NULLID
supplier_namevarchar(255)NULL供应商名称
supplier_uservarchar(255)NULL联系人
supplier_telvarchar(255)NULL联系方式
supplier_emailvarchar(255)NULL邮箱
supplier_addressvarchar(255)NULL地址
supplier_longitudevarchar(255)NULL经度
supplier_latitudevarchar(255)NULL纬度
supplier_codevarchar(255)NULL邮政编码
supplier_cardvarchar(255)NULL银行卡号
statusint(11)NULL标记

12:维修领料
(task)

字段名类型默认值列注释
idint(11)NULLID
task_orders_idint(11)NULL订单编号
task_parts_idint(11)NULL零件编号
task_numint(11)NULL领取数量
task_staff_idint(11)NULL员工编号
task_timedatetimeNULL申请时间
task_really_numint(11)NULL实际领取数量
statusint(11)NULL标记

13:结算
(wind_account)

字段名类型默认值列注释
idint(11)NULLID
account_orders_idint(11)NULL订单编号
account_staff_idint(11)NULL结算人
account_timedatetimeNULL结算时间
statusint(11)NULL支付状态
account_car_timedatetimeNULL取车时间
account_parts_moneyvarchar(255)NULL用料费用
account_work_moneyvarchar(255)NULL项目费用
account_moneyvarchar(255)NULL实际支付

14:维修任务

(work)

字段名类型默认值列注释
idint(11)NULLID
work_orders_idint(11)NULL维修订单
work_staff_idint(11)NULL员工编号
start_timedatetimeNULL开始时间
end_timedatetimeNULL完成时间
statusint(11)NULL标记
work_typeint(11)NULL任务分类
work_timeint(11)NULL维修工时

五、功能模块:

  1. 系统前台:系统首页展示了汽车维修收入折线图和系统人员的分布的分布图。

    系统前台

  2. 接待管理:接待管理用于来访客户的基本信息的展示与管理和订单信息的展示与管理的界面。

    接待管理

  3. 维修信息:维修信息包括维修器械信息的展示与管理和维修任务信息的展示与管理的界面。

    维修信息

  4. 质检信息:质检信息是对质检任务基本信息的展示与管理的界面。

    质检信息

  5. 财务信息:财务信息是对订单信息的展示与管理的界面。

    财务信息

  6. 仓库管理:仓库管理包括零件信息的展示与管理,供货商信息的展示与管理,仓库库存信息的展示与管理,采购信息的展示与管理,维修资料的展示与管理。

    仓库管理

  7. 个人信息:个人信息是个人信息展示和操作的界面。

    个人信息

  8. 系统管理:系统管理是对部门信息、人员信息、字典信息进行展示和操作的界面。

    系统管理

六、代码示例:

系统前台
public ControllerResultData<Staff> updateById(Staff staff) {
        ControllerResultData<Staff> controllerResultData = new ControllerResultData<>();
        try {
            int row = staffService.updateById(staff);
            controllerResultData.setDefaultSuccess();
            staff.setInfluenceRow(row);
            controllerResultData.setData(staff);
        } catch (Exception ex) {
            ex.printStackTrace();
            controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
            controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
        }
        return controllerResultData;
接待管理
public ControllerResultData<Order> deleteById(Order order){
		ControllerResultData<Order> controllerResultData = new ControllerResultData<>();
		try{
			int row = orderService.deleteById(order.getId());
			controllerResultData.setDefaultSuccess();
			order.setInfluenceRow(row);
			controllerResultData.setData(order);
		}catch(Exception ex){
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}

维修信息
public ControllerResultData<Task> updateById(Task task){
		ControllerResultData<Task> controllerResultData = new ControllerResultData<>();
		try{
			//通过id获取orderId
			Task taskDaoById = taskDao.findById(task.getId());
			//修改零件库存
			Parts byId = partsDao.findById(Integer.parseInt(taskDaoById.getTaskPartsId()));
			//判断审核数量不能大于库存数量
			if (Integer.parseInt(task.getTaskReallyNum()) > Integer.parseInt(byId.getPartsNum())){
				controllerResultData.setDefaultFail();
				return controllerResultData.setMsg("库存数量不足!");
			}

			Parts parts = new Parts();
			int partsNum = Integer.parseInt(byId.getPartsNum());
			int taskNum = Integer.parseInt(task.getTaskReallyNum());
			int num = partsNum - taskNum;
			parts.setPartsNum(num+"");
			parts.setId(Integer.parseInt(taskDaoById.getTaskPartsId()));
			int row = taskService.updateById(task);
			if (row > 0){
				partsDao.updateById(parts);
			}
			controllerResultData.setDefaultSuccess();
			task.setInfluenceRow(row);
			controllerResultData.setData(task);
		}catch(Exception ex){
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}
质检信息
 public ControllerResultData<String> delteByIds(String ids) throws Exception {
        ControllerResultData<String> controllerResultData = new ControllerResultData<>();
        try {
            List<Integer> list = new ArrayList<>();
            String[] ids1 = ids.split(",");
            for (int i = 0; i < ids1.length; i++) {
                list.add(Integer.parseInt(ids1[i]));
            }
            int id = workService.deleteByIds(list);
            if (id > 0) {
                controllerResultData.setDefaultSuccess();
            } else {
                controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
                controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
            controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
        }
        return controllerResultData;
    }
财务信息
public ControllerResultData<Order> insert(Order order){
		ControllerResultData<Order> controllerResultData = new ControllerResultData<>();
		try {
			int id = orderService.insert(order);
			order.setId(id);
			controllerResultData.setDefaultSuccess();
			controllerResultData.setData(order);
		}catch(Exception ex) {
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}
仓库管理
public ControllerResultData<String> delteByIds(String ids) throws Exception {
		ControllerResultData<String> controllerResultData = new ControllerResultData<>();
		try {
			List<Integer> list = new ArrayList<>();
			String[] ids1 = ids.split(",");
			for (int i = 0; i < ids1.length; i++) {
				list.add(Integer.parseInt(ids1[i]));
			}
			int id = houseService.deleteByIds(list);
			if(id > 0){
				controllerResultData.setDefaultSuccess();
			}else{
				controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
				controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
			}
		}catch(Exception ex) {
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}
个人信息
  public ControllerResultData<List<Staff>> findList(Staff staff) {
        ControllerResultData<List<Staff>> controllerResultData = new ControllerResultData<>();
        try {
            staff.setPage((staff.getPage() - 1) * staff.getLimit());
            List<Staff> list = staffService.findList(staff);
            int count = staffService.findPageCount(staff);
            controllerResultData.setCount(count);
            controllerResultData.setData(list);
            controllerResultData.setDefaultSuccess();
        } catch (Exception ex) {
            ex.printStackTrace();
            controllerResultData.setDefaultFail();
        }
        return controllerResultData;
    }
系统管理
public ControllerResultData<String> delteByIds(String ids) throws Exception {
		ControllerResultData<String> controllerResultData = new ControllerResultData<>();
		try {
			List<Integer> list = new ArrayList<>();
			String[] ids1 = ids.split(",");
			for (int i = 0; i < ids1.length; i++) {
				list.add(Integer.parseInt(ids1[i]));
			}
			int id = menuService.deleteByIds(list);
			if(id > 0){
				controllerResultData.setDefaultSuccess();
			}else{
				controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
				controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
			}
		}catch(Exception ex) {
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}

七、论文参考:

八、项目总结:

随着汽车迅速进入千家万户,我国进入了发展的黄金时期,汽车维修业和汽车保修设备行业在市场的洗礼中开始由传统的劳动密集型向资金、技术密集型、由生产型向服务型过渡,形成了利润丰厚的汽车后市场。当前世界各大汽车生产厂商在汽车制造方面竞争其剧烈的情况下,己经越来越重视汽车服务产业,并得到了充分发展。在汽车维修已成为万众瞩目的行业这一背景之下,若仍然采用纯手工的管理方式,将会增加信息维护与查找的难度,对企业的市场核心竞争力以及服务质量均有着严重影响,基于这种大环境下,提出了汽车维修管理系统的设计框架,旨在减轻工作人员的重压、实现自动化、信息化、智能化管理。
本设计以IDEA为开发平台,后端使用Java、springboot、springMvc、Mybatis-plus等核心技术实现后台管理,前端使用Html、css、layui、Jquery等技术实现前台展示,数据管理mysql一个关系型数据管理系统。
系统可分为八大基础模板,分别是系统首页、接待管理、维修信息、质检信息、财务管理、仓库管理、个人中心、系统管理。其中首页又可以细分为收入折线图、系统人员分布图俩部分,接待管理又可以细分为信息登记、订单列俩部分,维修信息又可以分为维修资料、维修任务俩部分,仓库管理又可以细分为零件列表、供应商管理、仓库、采购、维修用料审核五部分,系统管理又可以细分为部门列表、人员列表、字典表管理三部分。
最后通过对整个系统的测试、数据库系统的读写以及多方面的测试操作,将系统完善放入服务器上启动,可以完成基本的设计任务。

九、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

本设计以IDEA为开发平台,后端使用Java、springboot、springMvc、Mybatis-plus等核心技术实现后台管理,前端使用Html、css、layui、Jquery等技术实现前台展示,数据管理mysql一个关系型数据管理系统。
系统可分为八大基础模板,分别是系统首页、接待管理、维修信息、质检信息、财务管理、仓库管理、个人中心、系统管理。其中首页又可以细分为收入折线图、系统人员分布图俩部分,接待管理又可以细分为信息登记、订单列俩部分,维修信息又可以分为维修资料、维修任务俩部分,仓库管理又可以细分为零件列表、供应商管理、仓库、采购、维修用料审核五部分,系统管理又可以细分为部门列表、人员列表、字典表管理三部分。
最后通过对整个系统的测试、数据库系统的读写以及多方面的测试操作,将系统完善放入服务器上启动,可以完成基本的设计任务。

九、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/355679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OR青年导师访谈特辑 | 香港理工大学助理教授 马玮:一次拉长的面试 一个交流的平台

OR青年计划 由【运筹OR帷幄】社区主办的【OR青年计划】&#xff0c;旨在帮助对运筹学应用有理想和追求的同学&#xff0c;近距离与学界、业界导师交流课题&#xff0c;深入了解运筹学的细分方向&#xff0c;为后续的深造、就业生涯打下坚实的基础&#xff01;更多内容请查看链…

springmvc图书馆自习室座位预约管理系统java ssm

红枫图书馆自习室座位预约系统的开发过程中&#xff0c;采用B / S架构&#xff0c;主要使用jsp技术进行开发&#xff0c;中间件服务器是Tomcat服务器&#xff0c;使用Mysql数据库和Eclipse开发环境。该红枫图书馆自习室座位预约系统包括学生、管理员。其主要功能包括个人中心、…

Go基础-Hello world

文章目录1 GoRoot、GoPath2 编写程序3 运行程序1 GoRoot、GoPath GoRoot 就是Go的安装目录中的bin目录 GoPath 用于存放第三方类库和自己编写的封装好的代码块 2 编写程序 go_basic/01_helloworld.go package mainimport "fmt"func main() {fmt.Println("He…

番外篇 | 20+ 种注意力机制及代码 适用于YOLOv5/v7/v8

前言 之前已经在此篇博文更新过YOLO系列算法添加注意力机制的教程,共计实现了 13 13 13 种注意力及代码,本篇博文继续追加 10 10 10 余种。与之前不同的是,此篇博文代码添加方式更加严谨更加鲁棒,使用更简单,针对不同种类注

(考研湖科大教书匠计算机网络)第四章网络层-第七节:IPv4数据报首部格式

获取pdf&#xff1a;密码7281专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;IP数据报首部格式概述二&#xff1a;各字段作用概述&#xff08;1&#xff09;版本&#xff08;2&#xff09;首部长度和可选字段&#xff08;3&am…

WSL(ubuntu2204)xfce4语言支持报错及配置WSL服务自启

语言支持报错 在图形桌面或命令行打开语言支持报错&#xff1a;dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory itboonelocalhost:/$ sudo /usr/bin/gnome-…

gRPC 非官方教程

一、 简介 gRPC的定义&#xff1a; 一个高性能、通用的开源RPC框架主要面向移动应用开发&#xff1a; gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。基于HTTP/2协议标准而设计&#xff0c;基于ProtoBuf(Protoc…

Visual Studio 高级调试-代码调试

概述编程圈子里隔三差五的就会有场“谁是最强IDE”之争&#xff0c;重要的是我们需要对使用的IDE有充分的了解&#xff0c;正所谓工欲善其事&#xff0c;必先利其器。本文主要讲述Visual Studio常用的调试技巧&#xff0c;包括多类型断点&#xff0c;数据监视&#xff0c;以及多…

剑指 Offer 59 - I. 滑动窗口的最大值

摘要 剑指 Offer 59 - I. 滑动窗口的最大值 一、大顶堆求解 对于每个滑动窗口&#xff0c;我们可以使用 O(k) 的时间遍历其中的每一个元素&#xff0c;找出其中的最大值。对于长度为n的数组 nums而言&#xff0c;窗口的数量为 n−k1&#xff0c;因此该算法的时间复杂度为 O(…

在线图片转gif怎么操作?试试这一招在线制作gif

静图怎么变成gif动图&#xff1f;想要将手中的静态图片变成gif动图又不想下载软件的时候要怎么操作呢&#xff1f;很简单&#xff0c;通过使用【GIF中文网】的动图在线制作&#xff08;https://www.gif.cn/&#xff09;功能&#xff0c;两招就能在线制作gif图片&#xff0c;方便…

小红书购物笔记在哪里看?

小红书购物笔记在哪里看&#xff1f;#小红书带货#小红书变现#小红书运营#小红书营销#内容营销 在现在这个时代&#xff0c;网上购物已经成为一种日常的行为。每天大量的人在通过小红书购买他们心仪的商品&#xff0c;生活态度也越来越追求高品质。小红书不但能够让用户在网上购…

Metasploit框架基础(二)

文章目录前言一、Meatsplooit的架构二、目录结构datadocumentationlibmodulesplugins三、Measploit模块四、Metasploit的使用前言 Metasploit是用ruby语言开发的&#xff0c;所以你打开软件目录&#xff0c;会发现很多.rb结尾的文件。ruby是一门OOP的语言。 一、Meatsplooit的…

【opencv源码解析0.1】opencv库VS环境配置

opencv环境配置 感谢大家学习这门教程。本系列文章首发于公众号【周旋机器视觉】。 这个这门课程的第一篇文章&#xff0c;主要是opencv环境配置。 本教程的环境为 Visual Studio 2019CMake 3.22.3opencv 4.6.0windows 10 1、opencv的源码下载与安装 直接访问opencv官网&…

MySQL数据库优化————COUNT优化

直接进入主题 索引对count语句的影响 在我们对departments表进行count查询时&#xff0c;使用了以下语句 select count(*) from employees;当前employees表索引情况如图 只有一个主键索引 执行 explain select count(*) from employees;从结果中可以看到&#xff0c;这时…

NOIP2014-提高组初赛C语言解析(选择填空题)

第二十届(2014年)全国青少年信息学奥林匹克联赛初赛一、单项选择题&#xff08;共 20 题&#xff0c;每题 1.5 分&#xff0c;共计 30 分。每题有且仅有一个正确选项&#xff09;1. 以下哪个是面向对象的高级语言&#xff08; B &#xff09;A.汇编语言 B.C C.Fortran D.Basic参…

【opencv源码解析0.4】如何使用cmake来管理项目

如何使用cmake来管理项目 【opencv源码解析0.1】VS如何优雅的配置opencv环境 【opencv源码解析0.2】如何编译opencv库源码 【opencv源码解析0.3】调试opencv源码以及使用cmake来管理项目 前面几篇文章我们都是围绕Visual Studio 2019这个IDE来展开的&#xff0c;IDE为我们做了…

矩阵中的路径-剑指Offer-java深度优先

一、题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相…

k8s部署mysql+初始化数据

1. 准备工作 1.k8s的前置内容需要提前了解 2.mysql的初始化数据 3.docerk相关知识点需要了解 2. 部署步骤 初始化数据文件准备&#xff0c;准备了nacos的一张表sql脚本&#xff0c;需要修改一点点内容 文件名称&#xff1a;init-nacos.sql 部分内容显示&#xff1a; 主要创建…

潘长江张杰再现狂飙名场面,一般人把握不住

潘长江张杰再现狂飙名场面&#xff0c;一般人把握不住#我们的客栈#高启强#老墨我饿了 在昨晚播出的《我们的客栈》在猜人游戏的环节中&#xff0c;张杰和潘长江商量了一番&#xff0c;决定还原《狂飙》某一名场面&#xff0c;没想到被张维伊一秒猜出&#xff0c;张维伊还说这是…

图像分类竞赛进阶技能:OpenAI-CLIP使用范例

OpenAI-CLIP 官方介绍 尽管深度学习已经彻底改变了计算机视觉&#xff0c;但目前的方法存在几个主要问题:典型的视觉数据集是劳动密集型的&#xff0c;创建成本高&#xff0c;同时只教授一组狭窄的视觉概念;标准视觉模型擅长于一项任务且仅擅长于一项任务&#xff0c;并且需要大…