基于C#+MySQL实现(WinForm)企业设备使用信息管理系统
企业设备使用信息管理系统
引言
企业的设备管理在企业的生产制造和管理过程之中意义比较重大,明确企业的设备的产权和维护成本对于企业的成本控制和财务管理之中起到了重要的作用。随着市场竞争的加剧,现代企业所处的市场环境发生了深刻的变革,企业竞争越来越强调基于客户需求的竞争。因此,企业的生产方式逐渐转向以柔性自动化生产为基础的各种先进生产模式,目前生产类型大致可以划分为三种:大量流水生产、多品种小批量生产和单件生产。当下中国制造业多集中在多品种小批量生产企业,这种生产方式开始占有越来越重要的地位。为了适应这种生产方式,企业需要不断的改变生产线,并且不断的购买和租赁机器设备。这种转变给企业的设备管理和财务信息收集带来了巨大的挑战。
编写目的
随着市场竞争的加剧,现代企业所处的市场环境发生了深刻的变革,企业竞争越来越强调基于客户需求的竞争。因此,企业的生产方式逐渐转向以柔性自动化生产为基础的各种先进生产模式,目前生产类型大致可以划分为三种:大量流水生产、多品种小批量生产和单件生产。当下中国制造业多集中在多品种小批量生产企业,这种生产方式开始占有越来越重要的地位。传统的人工和报表管理设备信息需要依靠人工记忆和手动录入,不仅费时费力,还极易出错。传统的设备管理模式已经不能满足企业发展的需要,需要设计电子化的设备信息管理系统。借助信息化技术对企业设备管理工作进行管理,是顺应时代发展和现实需要的,同时也是企业进行信息化建设的主要途径随着信息管理系统的普及和数据库技术的发展,越来越多的组织在管理领域推进信息化。
本课题研究的就是综合设备信息管理、日常使用费用管理、设备租赁信息管理等大多数设备资源管理的工作,开发一套便捷、可靠、安全的信息管理系统。
开发背景
东莞制造业实力雄厚,产业体系齐全,是全球最大的制造业基地之一,制造业总产值占规模以上工业总产值的90%以上,形成以电子信息、电气机械、纺织服装、、、造纸及纸制品业、食品饮料、化工等八大产业为支柱的现代化工业体系。从事造纸及纸制品的企业数量在全国范围内属于前列的。东莞市造纸及纸制品企业规模类型也包含了有大型,中型,小型,微型企业。造纸及纸制品业为东莞市工业八大支柱之一,在全省具有较为重要的作用。东莞市纸制品品种丰富技术精良。大到冰箱、彩电的包装盒,小到娱乐用的扑克牌,都有它们的身影。截止到2015年东莞市规模以上造纸及纸制品业工业增加值为115.34亿元,占全省比重达25.3%。目前东莞市有纸业公司、造纸厂、纸品厂共1 200多家注册资金达76亿元固定资产投资近260亿元人民币造纸产量占全省70%。
在东莞市纸制品企业中,中小型企业占很大部分数量。东莞市德顺纸品有限公司便是其中一家,东莞市德顺纸品有限公司成立于2010年,经历了2008年经济危机后,到2010,处于经济将要复苏的时期,成立了此纸品公司。在此后几年,全国经济向好的背景下,公司形势也大好,取得了很好地利润。自2016年,公司利润有所下滑,经营出现部分问题。为了适应市场形势的变化,企业进行了改革,大量接受小批量生产的订单,因而需要不断的购进和租赁机器设备以及时满足客户的订单需求。
相关工具介绍
简介
C#是微软公司发布的一种面向对象的、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C衍生出来的面向对象的编程语言。它在继承C和C强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C程序员可以高效的开发程序,且因可调用由 C/C 编写的本机原生函数,而绝不损失C/C原有的强大的功能。因为这种继承关系,C#与C/C具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
Visual Studio2019简介
Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境。Visual Studio 2019版本于2019年4月2日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。 2019默认安装Live Share代码协作服务,帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进;Visual Studio IntelliCode AI帮助;更好的Python虚拟和Conda支持;以及对包括WinForms和WPF在内的 3.0项目支持等
MySql简介
MySQL是一个,由瑞典MySQL AB 公司开发,属于 旗下产品。MySQL 是最流行的之一,在 WEB 应用方面,MySQL是最好的 (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
总体设计
系统开发采用B/S架构,主要使用C#语言设计界面和页面的逻辑以及调用数据库,使用SQL语言对数据库进行增删改查操作。因为windows10操作系统是世界上目前使用最广泛最便捷的操作系统,可以方便系统的部署和人员的培训,所有我采用windows10系统作为系统的操作系统。Visual Studio是一个成熟的集成化开发环境,有较高的知名度和可操作性。VS有社区版可以免费注册使用,同时有社区可以帮助解决开发之中遇到的实际问题,因而我才用VS作为系统开发工具。
系统运行环境
操作系统:Windows 10 专业版
数据库:MySql 8.0.21
支持软件:Visual Studio 2019
系统类型:64位操作系统,基于x64处理器
硬件环境Intel(R)Core(TM)i7-8750H @ 2.20 GHZ、NVIDIA GeForce GTX1050
运行内存:4G及以上
网络类型:局域网
系统设计模型
软件功能描述
设备信息管理:负责管理企业已经拥有的设备的信息。在查看页下,可以查看企业的所拥有设备的类型,编号,保养状况等基本信息;在添加页下可以填写新入的设备的信息,向数据库添加新的设备信息;在修改页下可以重新填写设备的信息,修改设备的信息;在删除页下,只需要设备的编号就可以删除设备的信息。
供应商信息登记:负责管理出租设备的合作供应商的信息。在查询页面下,可以通过编号,名称,电话等三种方式查询供应商的信息;在添加页下可以填写新供应商的信息,向数据库添加新的供应商信息;在修改页下可以重新填写供应商的信息,用来修改供应商的信息;在删除页下,只需要供应商的编号就可以删除供应商的信息。
租赁费用管理:负责管理机器租赁租金的管理的管理。通过填写机器的交付租金的信息可以添加或删除相应的租金记录。
财务收支记录:负责记录记录企业的在机器设备的采购,租赁和使用的支出记录,便于与财务进行核对账目。通过填写相应的支出数据可以添加记录。
用户信息管理:管理员拥有增加,修改,删除用户信息的功能,经理和普通用户只能修改自己的密码。
软件结构
技术路线
此系统采用C/S架构设计,C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。
C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。
开发此系统需要具备C#的基本知识,掌握MySql数据的使用和SQL语言。用来实现页面的设计和与数据库的数据交互。同时,还需要掌握一定的操作系统的知识和VS2019集成开发环境的使用技巧,可以加快系统开发的速度。
框架程序包含一个描述整体程序文件和多个描述各自页面的 page。一个框架程序主体部分有三个重要文件组成,必须放在项目的根目录。
文件 | 作用 |
program.cs | 程序(全局)逻辑 |
app.config | 程序设置 |
mysql.data | 连接数据库 |
一个框架页面由四种文件组成:
文件类型 | 作用 |
.cs | 页面逻辑 |
Form | 页面结构,框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。 |
MysqlHelper.cs | 辅助连接数据库 |
.config | 页面配置 |
外部接口
用户接口
经理和员工可以使用已经按注册好的账户名和密码进行登录,如果未注册则需要通过管理员信息注册并保存进入数据库,然后才能实现登录。这样做是为了保证系统的安全。
当我们点击登录时,会匹配账户名和密码,如果正确,则可正常进入系统,如果不正确则会提示我们输入的账号密码错误。
软件接口
虽然MySql不能像Sql Sever一样程序可以直接连接,但是在网络上有公开的C#与MySql的接口程序。本着不重复造轮子的原则,我决定直接使用接口程序,不再自己写接口程序。
通过VS内部的NuGet包管理器下载MySql.Data包,将MySql.Data.dll添加到项目的引用之中就可以在程序之中调用MySql数据库之中的数据。为了减少因为版本问题造成的冲突,我选择了6.8.8这个比较低的版本作为程序的接口程序。
模块设计
软件功能模块划分
此系统共划分为7个模块,分别是登录信息模块,设备信息模块,供应商信息模块,租赁信息登记模块,使用费用模块,财务收支记录模块,如下图所示:
软件各模块的具体功能
登陆模块功能
登陆模块为Login.cs:当用户点击登陆按钮时用用户名和密码向数据库中的manageruser表提交查询,若校验通过则将用户名作为初始化参数传递到MainForm.cs、否则提示用户不存在或密码错误。
登录模块可以实现系统内部的登入与登出。可开通账户,用账户登录,账户分为经理,员工与管理员。若在登录时密码与账户不一致,会提示密码错误。
权限管理模块功能
(管理员界面)
(经理界面)
(员工界面)
此模块可以实现不同用户对应不同界面不同权限。分为员工权限,经理权限和管理员权限,员工只能对部分模块的查询和添加;经理可以实现对所有信息的填入,查询,修改,删除等功能;而管理员不仅可以实现对所有信息的填入,查询,修改,删除等功能,还可以对用户的账户进行管理。
设备信息管理模块功能
此模块可以实现对设备信息的增加,删除,修改,查询。由经理和管理员进行添加,修改;员工可以使用它进行对设备信息的查询。
供应商信息模块功能
此模块可以实现对合作供应商信息的增加,删除,修改,查询。由经理和管理员进行添加,修改;员工可以使用它进行对设备信息的查询。
租赁费用信息模块功能
此模块可以实现对机器设备的租赁费用的管理,将每个月的应付的租赁机器租金记录添加系统,也可以删除输入错误的租金记录。此功能不对员工开放,由经理按时填写,管理员也可以对数据进行维护。
使用费用信息模块功能
此模块可以实现对机器设备的使用费用的管理,将每天的使用机器消耗的水,电,维护保养的费用记录添加系统,也可以删除输入错误的租金记录。此功能由经理按时填写,员工只可以查看。
财务收支信息模块功能
此模块用于记录实际支出的各种费用,以便于财务部门核对账目使用。此模块不对员工开放,由经理在实际支出后填写。为了保证财务信息被篡改,只能添加信息,不能修改信息。
数据库设计
数据库模型
数据字典
以下是所用的数据库的各个表:
管理员表(manageruser):
列名 | 含义 | 数据类型 | 约束 |
user | 管理员用户名 | varchar(20) | 主键 |
password | 密码 | varchar(20) | 不为空 |
设备信息表(jiqiinf):
列名 | 含义 | 数据类型 | 约束 |
num | 设备编号 | varchar(10) | 主键 |
weizhi | 设备位置 | varchar(30) | 不为空 |
mingzi | 设备名称 | varchar(20) | 不为空 |
zhonglei | 设备类型 | varchar(10) | 不为空 |
mianji | 占地面积 | varchar(11) | 不为空 |
zhuangxiu | 设备状况 | varchar(4) | 不为空 |
sheshi | 设备功能 | varchar(20) | 不为空 |
yongtu | 设备用途 | varchar(4) | 不为空 |
jiage | 设备价格 | varchar(11) | 不为空 |
zhuangtai | 设备状态 | varchar(4) | 不为空 |
beizhu | 备注信息 | varchar(40) | 不为空 |
供应商信息表(gongyinginf):
列名 | 含义 | 数据类型 | 约束 |
sfzid | 身份证号 | varchar(18) | 主键 |
name | 名称 | varchar(10) | 不为空 |
dianhua | 电话 | varchar(14) | 不为空 |
设备租赁表(jiqirent):
列名 | 含义 | 数据类型 | 约束 |
num | 设备编号 | varchar(10) | 主键 |
sfznum | 身份证号 | varchar(18) | 主键 |
starttime | 开始租赁时间 | varchar(12) | 不为空 |
monthnum | 租赁月份数 | varchar(4) | 不为空 |
monthlyrent | 月租金 | varchar(20) | 不为空 |
使用费表(billsinf):
列名 | 含义 | 数据类型 | 约束 |
danhao | 受理单号 | varchar(15) | 主键 |
num | 机器编号 | varchar(10) | 不为空 |
predianbiao | 上次电表数 | varchar(15) | 不为空 |
dianbiao | 本次电表数 | varchar(15) | 不为空 |
preshuibiao | 上次水表数 | varchar(15) | 不为空 |
shuibiao | 本次水表数 | varchar(15) | 不为空 |
jine | 金额 | varchar(20) | 不为空 |
财务报表(caiwu):
列名 | 含义 | 数据类型 | 约束 |
bianhao | 编号 | varchar(20) | 主键 |
leixing | 类型 | varchar(2) | 不为空 |
jine | 金额 | varchar(15) | 不为空 |
date | 日期 | varchar(12) | 不为空 |
杂项设置表(othersetting):
列名 | 含义 | 数据类型 | 约束 |
bianhao | 编号 | varchar(10) | 主键 |
shuiprice | 水价 | varchar(10) | 不为空 |
dianprice | 电价 | varchar(10) | 不为空 |
wangprice | 网费 | varchar(10) | 不为空 |
guanlprice | 管理费 | varchar(10) | 不为空 |
yue | 余额 | varchar(10) | 不为空 |
安全保密设计
对于不同的类型的用户,会在其登录之后展示时不同的页面。比如说,经理需要了解全部的企业经营和管理设备的信息,但是不需要管理用户的账号,所以去掉用户信息的管理功能。对于员工,财务,供应商的信息不需要了解,所以对其进行屏蔽。员工对于设备信息只有查看的权限,而没有修改的权限。而管理员需要对整个系统进行管理,所以管理员获得最高的管理权限,可以修改查看所有的信息。
系统安全
数据传输安全
对于和数据库进行的数据交互部分,我才用的是开源项目MySqlHelper和甲骨文公司发布的官方C语言接口MySql.Data。MySql.Data可以保证数据传输的稳定性和可靠性,防止出现技术上的问题。MySqlHelper已经获得了开发社区广泛的认可,它可以在适当的时候开启数据库连接的接口,与数据库进行数据的交互,在不需要的时候关闭数据库。既保证了与数据库数据交互的可靠性和稳定性,也保证了一直开启接口造成数据泄露的风险。
数据存储安全
不同的类型的用户,获得的数据修改和查看的权限不同。对于员工,员工只具有查看设备信息,使用费用,供应商信息的权限以及修改自身账号密码的权限。对于经理,经理可以查看,修改设备信息,供应商信息,租赁信息,使用费用,财务收支记录的权限,但是经理不需要管理系统账户的信息,所以只具有修改自身密码的权限。对于管理员,管理员负责对整个信息系统进行信息的管理,因而具有最高的权限。管理员可以查看,修改设备信息,供应商信息,租赁信息,使用费用,财务收支记录的权限,同时管理员具有管理用户信息的权力可以创建,修改和删除账号,保证了信息系统的安全。
数据备份与恢复
数据的物理备份与恢复
MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。我的MySql数据库的数据库和数据表存在于C:\ProgramData\MySQL\MySQL Server 8.0\Data这个地址。系统管理员可以定期拷贝数据库的数据,在网络和物理硬盘备份数据文件。
在备份文件前,需要将MySQL服务停止,然后将数据库目录拷贝即可。
恢复数据数据库时,需要先创建好一个数据库(不一定同名),然后将备份出来的文件(注意,不是目录)复制到对应的MySQL数据库目录中。使用这一方法备份和恢复数据库时,需要新旧的MySQL版本一致,否则可能会出现错误。
数据的Web备份与恢复
经过各方面的对比和分析,我决定使用数据库备份管理软件“帝国备份王”对MySQL数据库进行备份。
是由帝兴软件开发出品的一款网站、还原操作软件;使用源码的帝国备份王具有亲切友好的操作界面,以简洁明了的傻瓜式操作方式为导向,能对初学者快速提高使用帝国备份王提供方便。帝国备份王依托帝国内容的强大平台,是各个网站站长深受欢迎的。
它主要优点:
1,跨平台。Windows与Linux下各种WEB环境均可以运行。
2,智能识别编码,解决备份时的乱码问题。
3,不同的MySQL版本间都可以进行备份和恢复操作。
4,采用分组备份,即使是超过1G的数据库也可以正常备份。
管理员注册账号,登录帝国备份王之后,可以按照根据网页提示在图形化的页面上进行初始化操作。之后就可以按照提示实现数据库的备份和恢复。同时,数据备份王还支持数据库在其他机器数据的恢复。数据库的Web备份和恢复由管理员定期操作,保证了系统数据的安全性和稳定性。
总结与展望
通过此次课程设计,充分利用了大学所学的专业知识,包括数据库、C语言、管理信息系统等等课程的学习,才助于此次课程设计的进行与完成。通过此次课程设计,我对于管理信息系统有了更加深刻的理解,更加体会到管理信息系统对于生产及制造,企业管理等的帮助,极大地提高了制造企业的效率。
在设计时,我遇到了很多在书本中和课堂上没有机会遇到的问题,在课堂上只能学习到数据库中有一些最为基本的知识,但在课程设计中这些基本知识只是一个基础。这体现在课程设计中的是我花费近一半的时间去学习怎么把C#和Mysql数据库连接在一起,怎么能实现一个界面到另一个界面的跳转,怎么通过直观上界面的操作改变个显示数据库中的信息。这个过程是很痛苦的,一方面是对设计出一个系统的兴趣驱使我不断的去学习新知识和改正错误;另一方面是对设计出一个系统没有任何经验,甚至在设计过程中没有人可以指导你或是和你有一起讨论,一度都想过随便弄一个现有的程序修改一下交差。但是看到运用所学知识做出的成果时,还是选择继续做下去,哪怕不能实现太多的更能,但最起码要凭借自己去做出一个系统。
在课设中遇到了诸多苦难和千奇百怪的错误,一度灰心过。但当改正错误时,不由兴起一股成就感,这些改正后的错误一直激励我坚持到最后,从这次的课程设计中我巩固了以前所学,新学习到了C#知识,遇到了很多错误,但是最终也完成了系统的设计工作。
通过此次课程设计,加深了我对管理信息系统的理解,对于我对于工业工程专业知识体系有更加深刻的了解与掌握,对于我以后从事工业工程相关职业,甚至做管理信息系统相关职业提供了比较大的帮助。
相关文章:
基于C#+MySQL实现(WinForm)企业设备使用信息管理系统
企业设备使用信息管理系统 引言 企业的设备管理在企业的生产制造和管理过程之中意义比较重大,明确企业的设备的产权和维护成本对于企业的成本控制和财务管理之中起到了重要的作用。随着市场竞争的加剧,现代企业所处的市场环境发生了深刻的变革…...
JavaScript异步编程 Async/Await 使用详解:从原理到最佳实践
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...
Babylon.js学习之路《四、Babylon.js 中的相机(Camera)与视角控制》
文章目录 1. 引言:为什么相机是 3D 场景的“眼睛”?1.1 相机的核心作用1.2 常见相机类型概览 2. 相机基础参数解析2.1 通用属性2.2 相机坐标系 3. 详解常用相机类型3.1 自由相机(FreeCamera)3.2 弧形旋转相机(ArcRotat…...
MCP Server多节点滚动升级一致性治理
飞书云文档原链接地址:https://ik3te1knhq.feishu.cn/wiki/W8ctwG2sAiPkrXkpl7ocP0g0njf [!TIP] MCP Server 多节点部署时,滚动发布,MCP Client 侧使用的 Client 连接保证使用的是最新的工具配置信息 后续推进:按比例使用旧、新实…...
多线程(二)
今天先来了解一个上一期的遗留概念 —— 前台线程与后台线程 一 . 前台线程与后台线程 大家应该多多少少都听过酒桌文化,咱们平常吃饭,座位次序是没有那么多讲究的,但是在跟领导吃饭,或者出席宴会和一些重要场所的饭局时&#…...
2025年,大模型LLM还有哪些可研究的方向?
近两年LLM在学术界与工业界的发展大家都有目共睹。到了今年,以预训练LLM为代表的大模型PK上半场已然结束,接下来就要进入下半场大模型2.0时代了。 那么在这新赛道,关于大模型我们还有什么可做的创新?要知道,如今的大模…...
VS打断点调试,无法命中断点或断点失效,解决方法
1.打开需要打断点的模块,点击属性,将C/C常规的调试信息格式改为程序数据库(/Zi) 2.将C/C的优化禁用(/Od) 3.将链接器中的生成调试信息改为生成调试信息(/DEBUG) 注:如果需…...
ELF文件详解
ELF 文件不仅仅是一个格式,它是 Linux 世界中程序的"灵魂容器",承载着程序从编译到执行的整个生命周期。 今天咱们来聊一个看起来高深,实际上理解起来其实挺简单的话题—— ELF 文件。 不知道你有没有想过:我们敲下./…...
【学习笔记】Shell编程---流程控制语句
最近学了好多个流程控制语句,都有点混乱了,赶紧先把各种用法记录下来! if 语句 语法格式: if 条件测试命令串 then 条件为真时执行的命令 else 条件为假时执行的命令 fi 以关键字if开头,后跟条件测试表达式&…...
TensorFlow 常见使用场景及开源项目实例
TensorFlow 常见使用场景及开源项目实例 摘要 本文详细介绍了 TensorFlow 在多个领域的典型应用及其对应的开源项目案例。涵盖了图像处理、自然语言处理、语音音频处理、推荐系统与时间序列预测、移动端与边缘计算以及生成式模型与创意应用等多方面内容,列举了大量…...
王炸组合!STL-VMD二次分解 + Informer-LSTM 并行预测模型
往期精彩内容: 单步预测-风速预测模型代码全家桶-CSDN博客 半天入门!锂电池剩余寿命预测(Python)-CSDN博客 超强预测模型:二次分解-组合预测-CSDN博客 VMD CEEMDAN 二次分解,BiLSTM-Attention预测模型…...
OpenCV进阶操作:风格迁移以及DNN模块解析
文章目录 前言一、风格迁移1、风格迁移是什么?2、步骤1)训练2)迁移 二、DNN模块1、什么是DNN模块2、DNN模块特点3、流程图4、图像预处理功能 三、案例实现1、数据预处理2、加载模型 总结 前言 风格迁移(Style Transfer࿰…...
使用bitNet架构
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、配置二、报错总结 前言 大型语言模型(LLM)面临的挑战:高能耗、高内存需求、部署门槛高。 微软提出 BitNet 架构&#x…...
OpenCV中的光流估计方法详解
文章目录 一、引言二、核心算法原理1. 光流法基本概念2. 算法实现步骤 三、代码实现详解1. 初始化设置2. 特征点检测3. 光流计算与轨迹绘制 四、实际应用效果五、优化方向六、结语 一、引言 在计算机视觉领域,运动目标跟踪是一个重要的研究方向,广泛应用…...
Java集合框架详解与使用场景示例
Java集合框架是Java标准库中一组用于存储和操作数据的接口和类。它提供了多种数据结构,每种数据结构都有其特定的用途和性能特点。在本文中,我们将详细介绍Java集合框架的主要组成部分:List、Set和Queue,并通过代码示例展示它们的…...
多模态融合【十九】——MRFS: Mutually Reinforcing Image Fusion and Segmentation
目录 一.摘要 二.Introduction 三. 背景与动机 四.方法 4.1. 概述 4.2. IGM-Att模块 4.3. PC-Att模块 4.4. 任务头 五.实验 5.1. 数据集与实现细节 5.2. 语义分割 5.3. 图像融合 5.4. 消融研究 5.5. IGM-Att和PC-Att的应用增益 5.6. 复杂度讨论 5.7. 目标检测的…...
音频转文字-在线工具包及使用记录
资料来源:https://zhuanlan.zhihu.com/p/269603431(多种方案) 视频教程:https://www.youtube.com/watch?vL1H5ov4WTBg https://github.com/openai/whisper // 创建虚拟环境 python -m venv myvnev// 激活虚拟环境 source myvne…...
集合-进阶
Collection collection的遍历方式 迭代器遍历 不依赖索引 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class mycollection {public static void main(String[] args) {//1.创建集合并添加元素Collection<String> co…...
【阿里云】阿里云 Ubuntu 服务器无法更新 systemd(Operation not permitted)的解决方法
零、前言 目前正在使用的Ubuntu服务器中,仅阿里云(不止一台)出现了这个问题,因此我判定是阿里云服务器独有的问题。如果你的服务器提供商不是阿里云,那么这篇文章可能对你没有帮助。 如果已经因为升级错误导致依赖冲突…...
wpf DataGrid 行选择 命令绑定
在WPF中实现DataGrid行选择与命令绑定的MVVM模式,可通过以下方式结合代码示例实现: 1. 基础绑定与命令触发(SelectionChanged事件绑定) 通过Interaction.Triggers捕获SelectionChanged事件,并绑定到ViewModel中的命令: <DataGrid ItemsSource="{Binding I…...
【认知思维】验证性偏差:认知陷阱的识别与克服
什么是验证性偏差 验证性偏差(Confirmation Bias)是人类认知中最普遍、最根深蒂固的心理现象之一,指的是人们倾向于寻找、解释、偏爱和回忆那些能够确认自己已有信念或假设的信息,同时忽视或贬低与之相矛盾的证据。这种认知偏差影…...
大容量存储的高性能 T-BOX 方案对智能网联汽车的支撑
在智能网联汽车快速发展的当下,车载 T-BOX(Telematics Box)作为车辆与云端互联的核心枢纽,其性能和可靠性直接决定了用户体验的上限。米客方德(MK)推出的基于 STM32H7RX 主控芯片与 MKDV4GIL-AST࿰…...
Linux 内核网络协议栈:从 Socket 类型到协议注册的深度解析
Linux 内核的网络协议栈是一个复杂而高效的体系,涉及多层次的协议处理与数据流转。本文通过分析核心数据结构(如 inetsw 数组、sock_type 枚举)和关键函数(如 inet_add_protocol),深入探讨其工作原理与设计哲学。 一、Socket 类型与 sock_type 枚举 1.1 Socket 类型的定…...
vim,gcc/g++,makefile,cmake
一、vim:你的小帮手——文本编辑器 它是干嘛的? 想象你的代码就像是写在一本“程序的笔记本”里,vim就是一个超级厉害的“数字笔记本”或“文字编辑器”。 它有什么用? 编写代码:编辑、修改你的源代码代码高亮&…...
解决 CentOS 7 镜像源无法访问的问题
在国内使用 CentOS 系统时,经常会遇到镜像源无法访问或者下载速度慢的问题。尤其是默认的 CentOS 镜像源通常是国外的,如果你的网络环境无法直接访问国外服务器,就会出现无法下载包的情况。本文将介绍如何修改 CentOS 7 的镜像源为国内镜像源…...
“傅里叶变换算法”来检测货物外形损坏
“傅里叶变换算法”来检测货物外形损坏 要使用傅里叶变换算法来检测货物外形损坏,首先需要理解基本概念。傅里叶变换是一种数学变换,用于将信号从时域(或空间域)转换到频域。在图像处理中,二维傅里叶变换可以用来分析…...
python打卡day24
可迭代对象、OS模块 知识点回顾: 元组可迭代对象os模块 作业:对自己电脑的不同文件夹利用今天学到的知识操作下,理解下os路径 1.元组 在day3的打卡内容中就介绍了元组,跟列表比起来就是用了圆括号,有序可以重复&#x…...
MapReduce 入门实战:WordCount 程序
一、引言 在大数据处理领域,MapReduce 是一种开创性的编程模型和处理框架,它使得我们能够高效地在大规模分布式系统上处理海量数据。而 WordCount 程序作为 MapReduce 的经典入门案例,堪称大数据领域的 “Hello World”,帮助无数…...
深度剖析:Vue2 项目兼容第三方库模块格式的终极解决方案
当我们为 Vue2 项目引入某些现代 JavaScript 库时,常常会遇到这样的报错: error in ./node_modules/some-lib/lib/index.mjs Cant import the named export xxx from non EcmaScript module这类问题的本质是模块格式的世纪之争 —— ES Moduleÿ…...
5.11作业
拓扑图: 需求分析: 要求五台路由器的环回地址均可以相互访问 配置: r1 int g 0/0/0 i…...
MyBatis 批量新增与删除功能完整教程
一、功能概述 通过 MyBatis 动态 SQL 实现以下功能: 批量新增:一次性插入多条员工记录,支持自增主键回填。批量删除:根据 ID 数组一次性删除多条记录。二、代码逐行解析 1. Mapper 接口定义 // 批量新增:传入员工对象集合 void insertAll(List<Emp> empList);// …...
Spark,RDD中的行动算子
RDD中的行动算子 collect算子 格式:def collect(): Array[T] 参数说明:该算子没有参数。 并以数组的形式返回 统计个数 reduce算子 格式:def reduce(func: (T, T) > T): T 返回值:返回一个单一的值,其类型与…...
Linux:进程控制2
一:进程程序替换 1. 一旦程序替换成功,就去执行新代码了,原始代码的后半部分已经不存在了 2. exec*系列的函数,没有成功返回值,只有失败返回值-1 在程序替换的过程中,并没有创建新的进程,只是…...
Java jar包程序 启动停止脚本 shell bash
启动 启动时 可指定前缀(名称) start.sh #!/bin/bash # 使用时直接运行# 寻找当前目录下后缀为 .jar 的文件 #options($(find . -maxdepth 1 -type f -name "*.jar")) # 寻找当前目录下后缀为 .jar 的文件,并按时间倒序排序 opt…...
【Linux】进程通信 管道
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、👑进程间通信分类 二、👑管道 🌟什么是管道? 🌟匿名管道 🎉原理: 🔥站在文件描述…...
基于智能家居项目 解析DHT11温湿度传感器
一、模块简介 DHT11 是一款数字式温湿度传感器,内部集成了温度传感元件、湿度传感元件以及一个 8 位单片机芯片,用于采集数据和通信。。 测量范围:湿度 20%~90% RH,温度 0~50℃ 精度:湿度 5% …...
3.1 泰勒公式出发点
第一步:引入背景与动机 首先,泰勒公式(Taylor Series)是数学分析中的一个重要工具,它允许我们将复杂的函数近似为多项式形式。这不仅简化了计算,还帮助我们更好地理解函数的行为。那么为什么我们需要这样一…...
裸机开发的核心技术:轮询、中断与DMA
一、裸机开发的核心技术:轮询、中断与DMA 1. 轮询(Polling) 定义:程序主动、周期性地检查硬件状态或数据。应用场景:适用于简单、实时性要求不高的任务。示例: C while (1) { if (GPIO_ReadPin(SENSOR_P…...
从零开始:使用 Vue-ECharts 实现数据可视化图表功能
目录 前言为什么选择 Vue-ECharts案例:Vue-Echart开发一个分组柱状图 安装依赖 引入 全局引入 按需引入编写组件总结 前言 你好,小二!很高兴你愿意分享关于 Vue-ECharts 的使用经验。 📊 Vue-ECharts:让你在 Vue 项…...
Antd中Form详解:
1.获取Form表单值的方式: ① 使用Form.useForm()钩子(推荐方式) const [form] Form.useForm();const getFormValues () > {const values form.getFieldsValue();};<Form form{form}>...<Form.Item label{null}><Button onClick{ge…...
(2)python开发经验
文章目录 1 pyside6加载ui文件2 使用pyinstaller打包 更多精彩内容👉内容导航 👈👉Qt开发 👈👉python开发 👈 1 pyside6加载ui文件 方法1: 直接加载ui文件 from PySide6.QtWidgets import QAp…...
Landsat 5介绍
USGS Landsat 5 Level 2, Collection 2, Tier 1 数据集可用性:1984-03-16T16:18:01Z–2012-05-05T17:54:06Z 数据集提供程序 USGS Earth Engine 代码段 ee.ImageCollection("LANDSAT/LT05/C02/T1_L2") open_in_new 重新访问间隔:16 天 说…...
PowerShell 实现 conda 懒加载
问题 执行命令conda init powershell会在 profile.ps1中添加conda初始化的命令。 即使用户不需要用到conda,也会初始化conda环境,拖慢PowerShell的启动速度。 解决方案 本文展示了如何实现conda的懒加载,默认不加载conda环境,只…...
解锁ozon运营新路径:自养号测评技术如何实现降本增效
OZON测评自养号技术在跨境电商运营中具有显著的技术优势,主要体现在环境安全、账号控制、成本效率及风险规避等方面。以下是具体分析: 一:安全可控的测评环境搭建通过模拟俄罗斯本地物理环境和家庭住宅IP,自养号测评可规避平台风…...
算法第十七天|654. 最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
654. 最大二叉树 题目 思路与解法 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def constructMaximumB…...
Spring Boot 的自动配置为 Spring MVC 做了哪些事情?
Spring Boot 的自动配置为 Spring MVC 做了大量的工作,极大的简化了我们开发时的配置负担,我们可以快速启动并运行一个基于 Spring MVC 的 Web 应用。以下是 Spring Boot 自动配置为 Spring MVC 所做的主要事情: DispatcherServlet 的自动注册…...
【python】—conda新建python3.11的环境报错
1.报错 conda create -n py3.11 python3.11 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ Collecting package metadata: done Solving environment: failed PackagesNotFoundError: The following packages are not available from current channel…...
桑德拉精神与开源链动2+1模式AI智能名片S2B2C商城小程序的协同价值研究
摘要:本文深入剖析桑德拉无私奉献精神在商业领域的映射价值,结合开源链动21模式、AI智能名片及S2B2C商城小程序的技术特性,系统探讨其在用户赋能、资源协同与价值共创中的协同效应。研究表明,该技术组合通过去中心化激励、智能需求…...
JavaEE--初识网络
目录 一、IP地址 二、端口号 三、认识协议 四、五元组 五、协议分层 1. OSI七层模型 2. TCP/IP五层(或四层)模型 3. 网络设备所在分层 4. 封装和分用 一、IP地址 IP地址(Internet Protocol Address)是用于标识设备在网络…...
2.7/Q2,Charls最新文章解读
文章题目:Climate risks, multi-tier medical insurance systems, and health inequality: evidence from Chinas middle-aged and elderly populations DOI:10.1186/s12913-025-12648-2 中文标题:气候风险、多层次医疗保险制度和健康不平等—…...