基于C#+Mysql实现(界面)企业的设备管理系统

管理信息系统课程设计说明书

1 引言

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

1.1 编写目的

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

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

1.2 开发背景

东莞制造业实力雄厚,产业体系齐全,是全球最大的制造业基地之一,制造业总产值占规模以上工业总产值的90%以上,形成以电子信息、电气机械、纺织服装、家具玩具、造纸及纸制品业、食品饮料、化工等八大产业为支柱的现代化工业体系。从事造纸及纸制品的企业数量在全国范围内属于前列的。东莞市造纸及纸制品企业规模类型也包含了有大型,中型,小型,微型企业。造纸及纸制品业为东莞市工业八大支柱之一,在全省具有较为重要的作用。东莞市纸制品品种丰富技术精良。大到冰箱、彩电的包装盒,小到娱乐用的扑克牌,都有它们的身影。截止到2015年东莞市规模以上造纸及纸制品业工业增加值为115.34亿元,占全省比重达25.3%。目前东莞市有纸业公司、造纸厂、纸品厂共1 200多家注册资金达76亿元固定资产投资近260亿元人民币造纸产量占全省70%。

在东莞市纸制品企业中,中小型企业占很大部分数量。东莞市德顺纸品有限公司便是其中一家,东莞市德顺纸品有限公司成立于2010年,经历了2008年经济危机后,到2010,处于经济将要复苏的时期,成立了此纸品公司。在此后几年,全国经济向好的背景下,公司形势也大好,取得了很好地利润。自2016年,公司利润有所下滑,经营出现部分问题。为了适应市场形势的变化,企业进行了改革,大量接受小批量生产的订单,因而需要不断的购进和租赁机器设备以及时满足客户的订单需求。

1.3 参考资料

C#连接MySql 作者:古道风尘

《C程序设计》 作者:谭浩强 -5版[M].-北京:清华大学出版社,2017.8

《数据库系统原理及MySQL应用教程》 作者:李辉 -机械工业出版社

《信息系统分析与设计》 作者:黄孝章 -北京:清华大学出版社,2017.4

《C#程序设计实用教程(第二版)》 作者:黄兴荣 北京:清华大学出版社,2016.11

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软件功能描述

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

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

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

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

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

2.4软件结构

2.5技术路线

此系统采用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.6外部接口

2.6.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.3.1 数据的Web备份与恢复

经过各方面的对比和分析,我决定使用数据库备份管理软件"帝国备份王"对MySQL数据库进行备份。

帝国备份王是由帝兴软件开发出品的一款网站数据库备份、还原操作软件;使用开源系统源码的帝国备份王具有亲切友好的操作界面,以简洁明了的傻瓜式操作方式为导向,能对初学者快速提高使用帝国备份王提供方便。帝国备份王依托帝国内容管理系统的强大平台,是各个网站站长深受欢迎的辅助工具

它主要优点:

1,跨平台。Windows与Linux下各种WEB环境均可以运行。

2,智能识别编码,解决备份时的乱码问题。

3,不同的MySQL版本间都可以进行备份和恢复操作。

4,采用分组备份,即使是超过1G的数据库也可以正常备份。

管理员注册账号,登录帝国备份王之后,可以按照根据网页提示在图形化的页面上进行初始化操作。之后就可以按照提示实现数据库的备份和恢复。同时,数据备份王还支持数据库在其他机器数据的恢复。数据库的Web备份和恢复由管理员定期操作,保证了系统数据的安全性和稳定性。

相关推荐
一点媛艺2 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风2 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生3 小时前
c++ 多态性
开发语言·c++
C吴新科3 小时前
MySQL入门操作详解
mysql
魔道不误砍柴功3 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
闲晨3 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程3 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk4 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*4 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue4 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang