基于C#+Mysql实现(WinForm)企业的设备管理系统【100010018】

news2024/9/24 9:25:34

企业的设备管理系统

1 引言

企业的设备管理在企业的生产制造和管理过程之中意义比较重大,明确企业的设备的产权和维护成本对于企业的成本控制和财务管理之中起到了重要的作用。随着市场竞争的加剧,现代企业所处的市场环境发生了深刻的变革,企业竞争越来越强调基于客户需求的竞争。因此,企业的生产方式逐渐转向以柔性自动化生产为基础的各种先进生产模式,目前生产类型大致可以划分为三种:大量流水生产、多品种小批量生产和单件生产。当下中国制造业多集中在多品种小批量生产企业,这种生产方式开始占有越来越重要的地位。为了适应这种生产方式,企业需要不断的改变生产线,并且不断的购买和租赁机器设备。这种转变给企业的设备管理和财务信息收集带来了巨大的挑战。

1.1 编写目的

随着市场竞争的加剧,现代企业所处的市场环境发生了深刻的变革,企业竞争越来越强调基于客户需求的竞争。因此,企业的生产方式逐渐转向以柔性自动化生产为基础的各种先进生产模式,目前生产类型大致可以划分为三种:大量流水生产、多品种小批量生产和单件生产。当下中国制造业多集中在多品种小批量生产企业,这种生产方式开始占有越来越重要的地位。传统的人工和报表管理设备信息需要依靠人工记忆和手动录入,不仅费时费力,还极易出错。传统的设备管理模式已经不能满足企业发展的需要,需要设计电子化的设备信息管理系统。借助信息化技术对企业设备管理工作进行管理,是顺应时代发展和现实需要的,同时也是企业进行信息化建设的主要途径随着信息管理系统的普及和数据库技术的发展,越来越多的组织在管理领域推进信息化。

本课题研究的就是综合设备信息管理、日常使用费用管理、设备租赁信息管理等大多数设备资源管理的工作,开发一套便捷、可靠、安全的信息管理系统。

1.4 相关工具介绍

1.4.1 C#简介

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#。

1.4.2 windows10简介

Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版。

Windows 10操作系统在易用性和安全性方面有了极大的提升,除了针对云服务、智能移动设备、自然人机交互等新技术进行融合外,还对固态硬盘、生物识别、高分辨率屏幕等硬件进行了优化完善与支持。

截至2019年11月18日,Windows 10正式版已更新至十一月更新10.0.18363版本 ,预览版已更新至2020更新10.0.19023版本。

1.4.3 Visual Studio2019简介

Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境。Visual Studio 2019版本于2019年4月2日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。[Visual Studio](https://baike.baidu.com/item/Visual Studio/539453) 2019默认安装Live Share代码协作服务,帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进;Visual Studio IntelliCode AI帮助;更好的Python虚拟和Conda支持;以及对包括WinForms和WPF在内的[.NET Core](https://baike.baidu.com/item/.NET Core/20130686) 3.0项目支持等

1.4.4 MySql简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

2 总体设计

系统开发采用B/S架构,主要使用C#语言设计界面和页面的逻辑以及调用数据库,使用SQL语言对数据库进行增删改查操作。因为windows10操作系统是世界上目前使用最广泛最便捷的操作系统,可以方便系统的部署和人员的培训,所有我采用windows10系统作为系统的操作系统。Visual Studio是一个成熟的集成化开发环境,有较高的知名度和可操作性。VS有社区版可以免费注册使用,同时有社区可以帮助解决开发之中遇到的实际问题,因而我才用VS作为系统开发工具。

2.1 系统运行环境

操作系统:Windows 10 专业版

数据库:MySql 8.0.21

支持软件:Visual Studio 2019

系统类型:64位操作系统,基于x64处理器

硬件环境Intel®Core™i7-8750H @ 2.20 GHZ、NVIDIA GeForce GTX1050

运行内存:4G及以上

网络类型:局域网

2.2软件功能描述

在这里插入图片描述

设备信息管理:负责管理企业已经拥有的设备的信息。在查看页下,可以查看企业的所拥有设备的类型,编号,保养状况等基本信息;在添加页下可以填写新入的设备的信息,向数据库添加新的设备信息;在修改页下可以重新填写设备的信息,修改设备的信息;在删除页下,只需要设备的编号就可以删除设备的信息。

供应商信息登记:负责管理出租设备的合作供应商的信息。在查询页面下,可以通过编号,名称,电话等三种方式查询供应商的信息;在添加页下可以填写新供应商的信息,向数据库添加新的供应商信息;在修改页下可以重新填写供应商的信息,用来修改供应商的信息;在删除页下,只需要供应商的编号就可以删除供应商的信息。

租赁费用管理:负责管理机器租赁租金的管理的管理。通过填写机器的交付租金的信息可以添加或删除相应的租金记录。

财务收支记录:负责记录记录企业的在机器设备的采购,租赁和使用的支出记录,便于与财务进行核对账目。通过填写相应的支出数据可以添加记录。

用户信息管理:管理员拥有增加,修改,删除用户信息的功能,经理和普通用户只能修改自己的密码。

2.3技术路线

此系统采用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页面配置

2.4外部接口

2.4.1用户接口

在这里插入图片描述

经理和员工可以使用已经按注册好的账户名和密码进行登录,如果未注册则需要通过管理员信息注册并保存进入数据库,然后才能实现登录。这样做是为了保证系统的安全。

当我们点击登录时,会匹配账户名和密码,如果正确,则可正常进入系统,如果不正确则会提示我们输入的账号密码错误。

2.6.2 软件接口

虽然MySql不能像Sql Sever一样程序可以直接连接,但是在网络上有公开的C#与MySql的接口程序。本着不重复造轮子的原则,我决定直接使用接口程序,不再自己写接口程序。

通过VS内部的NuGet包管理器下载MySql.Data包,将MySql.Data.dll添加到项目的引用之中就可以在程序之中调用MySql数据库之中的数据。为了减少因为版本问题造成的冲突,我选择了6.8.8这个比较低的版本作为程序的接口程序。

3 模块设计

3.1软件功能模块划分

此系统共划分为7个模块,分别是登录信息模块,设备信息模块,供应商信息模块,租赁信息登记模块,使用费用模块,财务收支记录模块.

3.2 软件各模块的具体功能

3.2.1登陆模块功能

在这里插入图片描述

登陆模块为Login.cs:当用户点击登陆按钮时用用户名和密码向数据库中的manageruser表提交查询,若校验通过则将用户名作为初始化参数传递到MainForm.cs、否则提示用户不存在或密码错误。

登录模块可以实现系统内部的登入与登出。可开通账户,用账户登录,账户分为经理,员工与管理员。若在登录时密码与账户不一致,会提示密码错误。

3.2.2权限管理模块功能

在这里插入图片描述

(管理员界面)
在这里插入图片描述
(经理界面)

在这里插入图片描述

(员工界面)

此模块可以实现不同用户对应不同界面不同权限。分为员工权限,经理权限和管理员权限,员工只能对部分模块的查询和添加;经理可以实现对所有信息的填入,查询,修改,删除等功能;而管理员不仅可以实现对所有信息的填入,查询,修改,删除等功能,还可以对用户的账户进行管理。

3.2.3设备信息管理模块功能

在这里插入图片描述

此模块可以实现对设备信息的增加,删除,修改,查询。由经理和管理员进行添加,修改;员工可以使用它进行对设备信息的查询。

3.2.4供应商信息模块功能

在这里插入图片描述

此模块可以实现对合作供应商信息的增加,删除,修改,查询。由经理和管理员进行添加,修改;员工可以使用它进行对设备信息的查询。

3.2.5租赁费用信息模块功能

在这里插入图片描述

此模块可以实现对机器设备的租赁费用的管理,将每个月的应付的租赁机器租金记录添加系统,也可以删除输入错误的租金记录。此功能不对员工开放,由经理按时填写,管理员也可以对数据进行维护。

3.2.6使用费用信息模块功能

在这里插入图片描述

此模块可以实现对机器设备的使用费用的管理,将每天的使用机器消耗的水,电,维护保养的费用记录添加系统,也可以删除输入错误的租金记录。此功能由经理按时填写,员工只可以查看。

3.2.7财务收支信息模块功能

在这里插入图片描述

此模块用于记录实际支出的各种费用,以便于财务部门核对账目使用。此模块不对员工开放,由经理在实际支出后填写。为了保证财务信息被篡改,只能添加信息,不能修改信息。

4 数据库设计

4.1 数据库模型

在这里插入图片描述

4.2 数据字典

以下是所用的数据库的各个表:

管理员表(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)不为空

4.3 安全保密设计

对于不同的类型的用户,会在其登录之后展示时不同的页面。比如说,经理需要了解全部的企业经营和管理设备的信息,但是不需要管理用户的账号,所以去掉用户信息的管理功能。对于员工,财务,供应商的信息不需要了解,所以对其进行屏蔽。员工对于设备信息只有查看的权限,而没有修改的权限。而管理员需要对整个系统进行管理,所以管理员获得最高的管理权限,可以修改查看所有的信息。

5 系统安全

5.1 数据传输安全

对于和数据库进行的数据交互部分,我才用的是开源项目MySqlHelper和甲骨文公司发布的官方C语言接口MySql.Data。MySql.Data可以保证数据传输的稳定性和可靠性,防止出现技术上的问题。MySqlHelper已经获得了开发社区广泛的认可,它可以在适当的时候开启数据库连接的接口,与数据库进行数据的交互,在不需要的时候关闭数据库。既保证了与数据库数据交互的可靠性和稳定性,也保证了一直开启接口造成数据泄露的风险。

5.2 数据存储安全

不同的类型的用户,获得的数据修改和查看的权限不同。对于员工,员工只具有查看设备信息,使用费用,供应商信息的权限以及修改自身账号密码的权限。对于经理,经理可以查看,修改设备信息,供应商信息,租赁信息,使用费用,财务收支记录的权限,但是经理不需要管理系统账户的信息,所以只具有修改自身密码的权限。对于管理员,管理员负责对整个信息系统进行信息的管理,因而具有最高的权限。管理员可以查看,修改设备信息,供应商信息,租赁信息,使用费用,财务收支记录的权限,同时管理员具有管理用户信息的权力可以创建,修改和删除账号,保证了信息系统的安全。

5.3 数据备份与恢复

5.3.1 数据的物理备份与恢复

MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。我的MySql数据库的数据库和数据表存在于C:\ProgramData\MySQL\MySQL Server 8.0\Data这个地址。系统管理员可以定期拷贝数据库的数据,在网络和物理硬盘备份数据文件。

在备份文件前,需要将MySQL服务停止,然后将数据库目录拷贝即可。
恢复数据数据库时,需要先创建好一个数据库(不一定同名),然后将备份出来的文件(注意,不是目录)复制到对应的MySQL数据库目录中。使用这一方法备份和恢复数据库时,需要新旧的MySQL版本一致,否则可能会出现错误。

♻️ 资源

在这里插入图片描述
大小: 5.45MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87248055

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

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

相关文章

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK13特性讲解】

JDK各个版本特性讲解-JDK13特性 一、JAVA13概述 2019年9月17日,国际知名的OpenJDK开源社区发布了Java编程语言环境的最新版本OpenJDK13。 Features:总共有5个新的JEP(JDK Enhancement Proposals): http://openjdk.java.net/projects/jdk/13/ Features: …

java基于springboot的人事管理系统-计算机毕业设计

开发环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 项目介绍 在这个计…

m基于GA遗传优化的三维工程施工设施布局算法matlab仿真,显示二维和三维布局优化效果

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把…

Matplotlib学习笔记(第二章 2.13 Matplotlib中的图形(三))

图例(Legends) legend()函数,使用MATLAB兼容的图例,放置函数自动生成图形图例。 感谢查尔斯特沃迪对图例功能的投入。 Fig. 19: Legend 文本对象的Tex表示法(TeX-notation for text objects) 下面是Matplotlib内部的mathtext工程支持的许多Tex表达式…

基于C#+SQLServer 2005实现(WinForm)校园卡消费信息系统【100010013】

校园卡消费信息管理系统 一、前言 1.1 选题说明 校园卡消费信息系统是一个实用并且与我们的学校生活密切相关的管理信息系统;如果能够很好的研究、开发并加以利用,校园卡的相关业务会变得更加简单、学生能更便利地进行消费同时准确了解自己的消费情况…

信号包络提取

目录 一、信号包络提取的相关应用: 二、信号包络提取方法 1、希尔伯特变换-Hilbert Transform 1.1 公式原理 1.2 例子说明 2、平方能量包络提取 3、香农能量包络提取 三、3种方法的对比 一、信号包络提取的相关应用: 1)当某一个机械部…

多副本自动化发布——standalone下

一: supervisor 具体这玩意是干嘛的,我就不说了,大家自己看官网: http://www.supervisord.org/ 接下来快速部署一下。 1. pip pip是python的一个包管理器,类似于nuget,如果你的centos上没有安装,那么请执行下面命令。 1 yum -y install epel-release 2 yum -y inst…

经矩形窗截断的信号频谱泄露现象研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、频谱泄露现象✳️ 二、原因分析以及解决方法✳️ 三、Matlab程序获取与验证✳️ 一、频谱泄露现象 有一个余弦信号,信号频率30Hz,信号为x(t)cos(2π30t),采样频率fs128Hz,样本长度分别取N128和N100&…

代码随想录算法训练营第四天| 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交 ,142.环形链表II

代码随想录算法训练营第四天| 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交 ,142.环形链表II 24. 两两交换链表中的节点 用虚拟头结点,这样会方便很多。 本题链表操作就比较复杂了&#xff…

MicroPython-On-ESP8266——8x8LED点阵模块(4)基于MAX7219滚动显示字符/图案

MicroPython-On-ESP8266——8x8LED点阵模块(4)基于MAX7219滚动显示字符/图案 1. 继续折腾点阵模块 咱们已经学习了点阵屏基础电路与驱动原理,并用74HC595和MAX7219都成功地驱动点阵屏显示了爱心图案。 MicroPython-On-ESP8266——8x8LED点…

python-(6-5-2)爬虫---处理cookie来获取书架数据

文章目录一 需求二 流程分析1 登录2 获取书架的数据三 完整代码一 需求 通过处理cookie来访问自己的书架资源。 二 流程分析 带着cookie,去请求url,得到书架内容。 要将上述的两个操作连续起来,可以使用session。 session是一连串的请求…

自动驾驶之多任务方法调研

1. YOLOP github C TRT TX2 我们提出了一种高效的多任务网络,该网络可以联合处理自动驾驶中的目标检测(车,没有红绿灯)、可驾驶区域分割和车道检测三个关键任务 速度: TX2上23FPS;TAITAN XP上41FPS. 自测结果: 灵活性: 支持…

RNN LSTM GRU

GRU是LSTM的简化结构,而LSTM是RNN的优化结构。 1.RNN RNN对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息. 将网络的输出保存在一个记忆单元中,这个记忆单元的输出经过权重参数调整后和下一次的输入一起进入神经网络中…

队列之王: Disruptor 原理、架构、源码 一文穿透

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

MySQL innodb引擎架构分析-Redo log

文章目录系列文章目录前言一、Redo log是什么?二、Redo log是怎么工作的Redo log的组成Redo log的配置Redo log何时刷盘总结系列文章目录 1. MySQL innodb引擎架构分析-Buffer Pool 2. MySQL innodb引擎架构分析-Redo log 前言 在MySQL的事物处理过程中&#xff0c…

12 款 yyds 的 IDEA插件,配上18条使用技巧,绝了

工欲善其事,必先利其器。想要提升编程开发效率,必须选择一款顺手的开发工具。 JetBrains 公司提供了一系列功能强大、风格统一的开发工具,深受开发者喜爱。其中,IDEA 是面向 Java 开发的专业 IDE(集成开发环境&#x…

python os.system调用别的系统程序总出现一闪而过的黑框解决办法

python os.system调用别的系统程序总出现一闪而过的黑框解决办法 今天打包了py程序,运行的时候发现老是有个黑框一闪而过。经过多次尝试发现是os.system的问题,调用这个函数会调用cmd,所有会出现短暂的黑框显示。 解决办法1:换用…

HarmonyOS跨端迁移开发代码演示

目录说些废话开源代码环境代码ability_main.xmlconfig.jsonMainAbility.javaMainAbilitySlice.java测试说些废话 官方文档:跨端迁移开发指导(基于java开发)     下面环境里写的两台真机我测试的时候无法正常产生回迁效果,所以…

以太网 DHCP(DHCP的8种报文、DHCP配置、DHCP中继)

2.13.1 以太网 DHCP(DHCP的8种报文、DHCP配置、DHCP中继) DHCP-22.13.1 以太网 DHCP(DHCP的8种报文、DHCP配置、DHCP中继)一、DHCP的8种报文二、DHCP配置接口配置:全局配置:三、DHCP中继配置案例&#xff1…

游戏开发52课 渲染路径

4.6 渲染路径(Rendering Path) 4.6.1 经典顶点光(Legacy Vertex Lit) 严格来说,它也是前向渲染的一种,但有些引擎(如Unity)将它单独抽离出来。由于光照计算在顶点,所以…