仓库管理系统设计与实现

摘 要

传统仓库管理过程中,表单填写与查询管理都非常的耗费人力物力,最后需要盘点或统计十分耗费时间和人力。同时由于采用手工操作,不可避免造成一些的错误。仓库管理系统仓库管理提供了一种解决方案,本文对仓库管理管理系统进行基本设计与开发。

仓库管理系统的核心理念是高效的任务执行。仓库管理系统通过不同的功能模块,支持企业仓储的管理,并适应不断变化着的商务策略、电子商务、客户需求、现代化设备。它提高了作业效率与资源利用率,降低了物流成本,并增强客户服务水平,实现对一个仓库的有效管理。

本文根据中小型企业的需求,采用.NET和SQL Server 2012设计了一个适用于中小型规模的仓库管理系统,主要包括:用户管理,仓库管理,货物管理,存储规则管理。系统以提供操作简单、方便、易懂易用为开发目标,用户界面友好,及具有高效的数据处理能力。

关键词仓库管理; .NET; SQL Server 2012

Title  C# and Windows Form achieve a small warehouse management system

Abstract

Traditional warehouse management process, fill out the form and query management are very labor intensive and material resources, the final inventory or statistical needs very time-consuming and labor. While the introduction of manual operation, inevitably cause some errors. Warehouse Management Warehouse Management System to provide a solution to this management system for warehouse management basic design and development.

The core idea of warehouse management system is efficient execution of task. warehouse management system support the implementation of enterprise warehousing distribution through different function modules and adapt to the changing business strategies, e-commerce, customer requirements, modern equipment .It also improve the efficiency of task execution and the utilization of resources to reduce the cost and enhance customer service level and eventually ,realize effective management of a warehouse.

In this essay, according to the requirements of small and medium enterprises, we use .NET and SQL Server database management system2012, designed a warehouse management system system for small and medium-scale automobile repair enterprises, mainly including: staff management, warehouse management, goods management, storage rules management, goods purchase and delivery, goods demand.

Key words:  warehouse management system; .NET; SQL Server 2012

目 录

第1章 绪论

1.1课题背景

1.2库存管理系统的现状

1.3研究的目的及意义

1.4可行性分析与研究内容

1.5相关技术及开发工具介绍

1.5.1 C/S系统结构

1.5.2 C#简介

1.5.3 Windows Form简介

1.5.4 开发工具

第2章 需求分析

2.1 系统功能需求分析

2.1.1 功能划分

2.1.2功能描述

2.1.3业务流程图

2.2 系统的性能要求

第3章 系统分析与设计

3.1数据流程分析

3.1.1系统顶层数据流图

3.1.2系统第一层数据流图

3.1.3系统数据流图分解

3.2 数据库的实体图

3.3 系统的数据字典

3.4 材料编码设计

第4章 系统详细设计

4.1 数据库表的设计

4.2 系统功能模块

4.2.1登录界面实现

4.2.2 员工管理模块

4.2.3仓库管理模块

4.2.4货物管理模块

4.2.5存储规则管理模块

4.2.6 货物进出记录模块

4.2.7 库存信息模块

第5章 系统测试

5.1 测试的重要性

5.2 测试的类型

5.3 主要功能模块测试

结论与展望

致谢

参考文献

第1章 绪论

1.1课题背景

在传统仓库管理过程中,每天都是重复记录一些货物的存入与取出,而且货物的种类繁多,存取有很大的随机性,最后需要盘点或统计十分耗费时间和人力。同时由于采用手工操作,不可避免的造成一些错误,这样为工作人员带来了很大的不便。现在许多公司都采用计算机来管理仓库信息,避免了手工操作的不足。采用仓库管理信息对物资的出入情况进行管理,可以很方便的为管理人员及时提供相关信息。随着社会经济的发展和工业生产的加速,仓库的进出更为频繁,仓库的信息更为重要。仓储管理部门越来越需要一套低成本、高性能、方便使用、功能完善的仓库管理信息系统。而现在计算机技术、网络技术、的成熟与发展,为仓储管理自动化提供了强有力的技术支持。

仓库管理系统是仓储管理信息化的具体形式,它在我国的应用还处于起步阶段。目前在我国市场上呈现出二元结构;以跨国公司或国内少数先进企业为代表的高端市场,其应用仓库管理系统的比例较高,系统也比较也比较集中在国外基本成熟的主流品牌;以国内企业为代表的中低端市场,主要应用国内开发的仓库管理系统产品。

1.2库存管理系统的现状

因为传统库存管理存在的问题且难于适应现代库存管理要求,所以现代企业库存管理系统要具有以下的特点:

1.科学的库存管理流程

存货的种类不同,所涉及的业务环节及它们所组成的业务流程也各有差异。一般而言,存货业务包括到货处理、保管和发放三个主要部分。通畅的业务流程是保障高效库存管理的基础,应具备优化、无冗余、并行作业的基本属性。

2.科学的组织结构

科学的组织结构确保了业务流程的高效执行,明确了工厂、存储区域、仓库编码、仓库种类以及仓库、箱之间的合理关系。

3.进行物料代码化管理

物料种类繁多,在库存管理过程中极易发生混乱的问题。IT技术与层次编码技术的结合为物料的高效管理提供了可能。这种编码技术将所有存货按照层次和类别进行编码的唯一管理,编码的组成部分包括存货的型号、规格、尺寸等内容。它具有易读易记的特点,使得管理者只需知道货物的编码,就可以了解该物料的所有信息,以便在每日的繁杂管理中,保持规范、有序的状态。

1.3研究的目的及意义

仓库管理系统关注的核心理念是高效的任务执行和流程规划策略,是建立在成熟的物流理念的基础之上的,高性能的仓库管理系统,高效的管理流程,先进的设备共同铸造成功的仓储管理。仓库管理系统通过不同的功能模块支持企业仓储配送的执行并适应不断变化着的商务策略、电子商务、客户需求、现代化设备、订单的大小和结构环境,提高作业效率与资源利用率来降低物流成本和增强客户服务水平,实现对一个仓库或配送中心的所有执行过程的有效管理,从而使仓储管理策略长期处于领先地位,帮助企业打造物流管理的核心竞争力,诠释现代化物流管理理念。

1.4可行性分析与研究内容

可行性分析的任务是在初步调查的基础上对开发项目进行分析,分析是否必要和可行。分析建立信息系统必要性时主要考虑用户提出的理由是否充分和合理,对用户意见进行筛选,以备使用;分析建立信息系统可行性主要包括经济可行性、技术可行性和营运可行性,本系统可行性分析如下:

1.经济可行性分析

经济上的可行性分析主要是对开发项目的成本与效益进行评估,就是评估使用开发的系统带来的经济效益是否超过开发和后续系统维护所需要的费用,判断一下这样的项目在经济上是否合算。由于该系统具有良好的实际用途,该系统交付使用后将会很大提高工作的效率,进而提升仓库管理水平,节省人力开支,减轻了仓库管理员的繁琐复杂的工作负担。因此,该系统的所带来的效益将远远大于其开发,维护,运行等一切成本,通过上述分析,该系统在经济上是可行的。

2.技术可行性分析

技术上的可行性分析是根据新系统目标衡量所需要的技术是否具备,如硬件、软件和其他应用技术以及从事这些工作的技术人员数量及水平等。本系统开发所涉及的技术因素主要有:

(1)系统开发工具及技术:选用Microsoft SQL Server 2012作为后台数据库,以Microsoft Visual Studio 2012作为开发工具,具有很强的实用性,易于操作实施,数据处理方便、安全。

(2)从事工作的人员技术要求:本系统开发后易于操作,只要求有计算机基本操作能力的人员即可使用。

3.社会可行性分析

目前,原材料库存管理是建筑、装修公司提高自身管理效率的重要手段。加强库存管理,实现计算机化管理,不仅能使企业具有更高的市场竞争力,而且方便了仓库管理人员对货物订单、账目、库存等诸多信息进行实时管理和监督。在建筑原材料企业实现库存管理的计算机化,是去企业发展的一个重要的方面。本系统操作简便灵活,便于使用。因此,该系统具有可行性。因此,本系统在开发上是可行的。

系统包括以下功能:人员信息的维护,货品信息的管理,仓库信息的管理,存放规则,货物的进出,库存信息的查询。主要应用C#编程,C/S架构开发模式以及Microsoft SQL Server数据库连接等相关知识。主要是熟练掌握C/S架构模式下的开发技术,将所学的知识用于实际的生活中,并且在实际生活中发挥其主要功能并能获得效益。

1.5相关技术及开发工具介绍

1.5.1 C/S系统结构

C/S结构(Client/Server,客户端/服务器模式),它是一种软件系统体系结构,通过它可以充分利用两端软件环境的优势,将任务合理地分配到Client端和Server端来实现,降低了系统的通信开销。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,对应的优点就是客户端响应速度快。

C/S结构的原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。这种客户端请求服务,服务器提供服的处理方式为C/S模式。

1.5.2 C#简介

C#语言源于C++,吸取了C++的长处,摒弃了C++的缺点,增加了很多易用的新特性,同时剔除了C++中一些复杂和容易出错的语法,这使C#在功能强大的同时保持简单易学。C#语言的特点如下:

1. 精心的面向对象设计

C#是一种完全的、纯粹的面向对象语言,不但支持封装、继承、多态性等面向对象技术的关键特征,而且增加了特性、属性、委托、可容类型等强大功能。同时C#也是一种传统的面向对象语言,只支持标准的单一继承,避免了C++中因多继承而带来的复杂性。

2. 严格的安全性与强大的错误处理能力

C#的许多特性为构建强壮的应用程序提供了保证。比如:垃圾回收机制(Garbage Collection)自动回收不用对象占用的内存;异常处理(Exception Handing)提供了结构化的、可扩展的错误检测和处理方法;安全类型(Type-safe)避免了"引用未初始化的变量"、"数组索引越界"、"执行未经检查的强制类型转换"等问题。

1.5.3 Windows Form简介

WinForm是.Net开发平台中对Windows Form的一种称谓。WinForms 和 Asp.Net都基于C#语言 。WinForms是做客户端软件,Asp.Net是用于网络开发的。.Net 为开发WinForm的应用程序提供了丰富的Class Library(类库)。这些WinFrom 类库支持RAD(快速应用程序开发),这些类库被封装在一个命名空间之中,这个命名空间就是System.Windows.Forms。在此名称空间中定义了许多类,在开发基于.Net的GUI应用程序的时候,就是通过继承和扩展这些类才使得程序有着多样的用户界面[6] 。

1.5.4 开发工具

1. Visual Studio 简介

Visual Studio 是一套完整的开发工具集,用于生成桌面应用程序、XML、Web Services、ASP.NET等Web应用程序和移动应用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术[7]

2. SQL Server 2012数据库简介

Microsoft SQL Server 2012是一个全面的数据库平台。Microsoft SQL Server 2012数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。Microsoft SQL Server 2012数据引擎是本系统数据管理解决方案的核心。此外Microsoft SQL Server 2012结合了分析,报表,集成和通知功能,这使企业可以构建和部署有效的BI解决方案,帮助团队通过记分卡,Web Services和移动设备将数据应用推向业务的各个领域[2]

第2章 需求分析

需求分析是系统开发设计的第一步。不断地调查与研究,了解组织结构的状况,了解部门的业务流程等系统需求,对于设计好概念模型是非常重要的。在需求分析中,应对现实世界要处理的情况进行详细地调查。收集支持系统功能目标的数据及分析数据之间的关系和处理流程。需求分析的质量直接影响到系统设计的成败。同时需求分析的工作量很大,所涉及的业务、人和数据信息都非常多[9]。

2.1 系统功能需求分析

2.1.1 功能划分

 本系统根据不同的使用者,可分为两种角色:一是主仓库管理员,登录后可以进行用户管理,仓库管理,货物管理,仓库存储规则维护;二是分仓库管理员的普通用户,登录后可以对本仓库货物进行货物进出操作,仓库管理,仓库存储规则维护,修改自身信息。本系统功能总体设计如图2-1所示:

图2-1 系统功能结构图

2.1.2功能描述

1. 登录功能

为了使系统的一些信息和使用功能只对合法用户开放,就必须有一个登录模块。根据登录的用户权限的不同,跳转到不同的窗体。

2. 仓库总体管理功能

(1)用户管理

该模块负责管理所有用户信息。主要功能包括添加,删除、修改,查找用户信息。按照用户的权限可分为:仓库管理员和普通用户。仓库管理员在此模块中对用户实现权限分配。仓库管理员可以管理所有用户信息,而普通用户只能对自己的个人信息进行维护。

(2)仓库管理

该模块负责管理所有仓库信息。主要功能包括添加,删除,修改仓库信息。只有仓库管理员才具有对仓库信息进行维护的权利,仓库管理模块本身简单,维护好的仓库信息将在别的相关模块中调用,维护仓库信息是本系统正常运行首先要做的。

(3)货物管理

该模块负责管理所有货物的详细信息。主要功能包括添加,删除,修改,查找货物信息。仓库管理员和普通员工有权对货物信息进行添加,删除和修改,货物管理模块本身与人员管理模块,仓库管理模块是相互独立的。

(4)仓库存储规则维护

该模块负责所有存储规则的管理。主要功能包括添加,删除,修改存储规则信息。它以在仓库管理系统,货物管理系统中维护好的信息作为基础,有仓库总管决定各货物对应的存放规则,何种物品存放在何仓库,限量多少,存放底限多少等,存储规则作为一种关系存在,即联系仓库与货物这两个孤立的信息。

(5)货物进出记录

每一笔货物的进出要做到有据可查,查的内容包括货物名称,仓库信息,进出库数量,进出库日期,负责人和经手人等。以上信息我们都会在对货物进出进行控制时产生,货物进出控制就是对货物进行进库,出库操作,按照预先设定好的存储规则对货物进行控制。

(6)库存信息

可以查看当前货物的所属仓库,现有量,供货商,价格及数目的上下限。

2.1.3业务流程图

   业务流程图表明系统内各单位、人员之间业务关系、作业顺序和管理信息流动的流程图,它可以帮助分析人员找出业务流程中的不合理迂回等[3]。

小型仓库管理业务流程图如图2-2所示

图2-2业务流程图

2.2 系统的性能要求

性能需求是相互信息传递顺利,协议分析正确,界面友好,运行时间满足使用需要,安全性得到保证。

我们最需要考虑的性能需求就是系统安全性问题。本系统设置为三种角色,不同的用户拥有各自的权限,分仓库管理员和采购员作为普通用户不能访问仓库总管的页面。仓库总管可以添加分仓库管理员和采购员的账号,只有经过授权的用户才能登录系统,这样避免了非法用户对系统的访问和操作。

第3章 系统分析与设计

系统分析是将用户的需求及其解决方法确定下来,这些需要确定的结果包括:开发者关于现有组织管理状况的了解;用户对信息系统功能的需求;数据和业务流程;管理功能和管理数据指标体系等等。系统分析所确定的内容是今后系统设计、系统实现的基础。

3.1数据流程分析

    数据流图是用来描述系统逻辑模型的,它可以用少数几种图形符号综合地反映出数据信息在系统中的流动,传递,存储和处理的情况。每一个图形符号表示不同的含义,数据流图具有抽象性和综合性两个特点,其抽象性表现在用图形符号表示具体的物质,如企业部门,人事单位,信息流,货币流等,数据流图展现的是数据的流动,存储,使用及加工的过程。它可以把系统中的各种业务处理过程联系起来,形成一个完整统一体[10]。

3.1.1系统顶层数据流图

本系统顶层数据流图见图3-1所示

图3-1小型仓库管理系统顶层DFD图

3.1.2系统第一层数据流图

本系统第一层数据流图见图3-2所示

图3-2 第一层数据流图

3.1.3系统数据流图分解

    接下来,再把顶层数据流图的总共能模块进行详细的分解,绘制了基本资料管理数据流图,材料入库处理数据流图(如图3-3),材料库存盘点数据流图(如图3-4),材料出库处理数据流图(如图3-5)。

  1. 基本资料管理数据流图

基本资料管理数据流图包括采购部信息处理中的采购员信息的维护,管理员负责维护的仓库信息、存储规则信息及材料信息。

图3-3(a)采购部数据流图

图3-3(b)仓库信息数据流图

图3-3(c)规则信息数据流图

图3-3(d)材料信息数据流图

2. 材料入库处理数据流图(如图3-4)

图3-4 材料入库数据流图

3.库存盘点数据流图(如图3-5)

图3-5库存盘点数据流图

4. 材料出库处理数据流图(图3-6)

图3-6材料出库数据流图

3.2 数据库的实体图

为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。描述了从用户角度看到的数据,反映了用户的现实环境。
    最常用的表示概念性数据模型的方法是实体-关系方法(Entity—Relationship Approach)。这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为E-R模型。E-R模型中包含“实体”、“联系”和“属性”[8]。

  1. 用户信息实体:

用户信息包括用户编号、密码、类别、姓名、性别、电话、地址、仓库编号,用户信息实体图如图3-7 所示。

图3-7  用户信息实体图

  1. 仓库信息实体:

仓库信息包括仓库编号、名称、面积、地址、描述属性。如图3-8所示。

图3-8 仓库信息实体图

  1. 货物信息实体:

货物信息包括货物编号、名称、价格、主供应商、次供应商、描述等。如图3-9所示。

图3-9 货物信息实体图

  1. 存储信息实体:

存储信息实体包括存储规则编号、货物编号、仓库编号、最高存量、最低存量、当前存量等。如图3-10所示。

图3-10 存储信息实体图

  1. 货物进出实体:

货物进出包括货物进出编号、货物编号、仓库编号、进出数量、操作类型、管理员编号、经手人姓名、日期等。如图3-11所示。

图3-11 货物进出信息实体图

  1. 实体及其联系图如图3-12所示。

图3-12 实体关系图

3.3 系统的数据字典

    数据字典是对数据流图中包含的所有元素的定义的集合。它对数据流图上每一个成分:数据项、数据流、数据结构、数据存储、处理过程和外部实体等给以定义和说明。数据字典最重要的用途能使查阅者了解每一条数据项目,在软件分析和设计的过程中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。两者缺一不可,相辅相成的关系。只有这样才能共同构成系统的规格说明[11]。

    进行详细的数据收集和数据分析所获得的主要结果就是数据字典。它一般由五部分组成:数据项、数据结构、数据流、处理过程、数据存储。数据字典是对数据库中的数据进行描述,而不是数据本身。数据本身是存放在数据库中,由数据库系统管理。数据字典有助于这些数据的进一步管理和控制,是设计人员和数据库管理人员进行管理等工作时提供依据,并在出现问题时方便查找错误。

数据字典作用还有以下几点:

  • 是数据库开发的首要步骤,也是整个系统开发必不可少的一个环节。
  • 它起到一个参照系的作用,能够使编辑人员的工作更加方便,主要表现在:帮助本系统编辑人员了解数据库和系统内部的运行机理。
  • 是系统生命周期后继时期交流的基本工具,特别是在系统评价和系统维护起到非常重要的作用。

下面是本系统数据字典关于数据元素、数据流、数据存储及数据逻辑规则描述部分内容。

1.数据元素,如表3-1:

表3-1 数据元素词典

数据元素名称:GID\ RGID\ SGID                               总编号:1-001

说明:是标志材料的标号,不能重复,6位字符组成                 编  号:001

类型:字符型

字段大小:6位

有关数据存储:Goods, Records, Store

数据元素名称:Gname                                         总编号:1-002

说明:材料名称                                              编  号:002

类型:字符型

长度:8位

有关数据存储:Goods

数据元素名称:Gprice                                        总编号:1-003

说明:材料购买单价                                          编  号:003

类型:money

大小:8位

有关数据存储:Goods

数据元素名称:GProvider1                                    总编号:1-004

说明:标示第一进货商                                        编  号:004

类型:字符型

长度:50

有关数据存储:Goods

数据元素名称:GProvider2                                    总编号:1-005

说明:标示第二进货商                                        编  号:005

类型:字符型

长度:50

有关数据存储:Goods

数据元素名称:Gdescribe                                     总编号:1-006

说明:对材料的简单描述                                      编  号:006

类型:字符型

长度:500

有关数据存储:Goods

数据元素名称:Gunit                                         总编号:1-007

说明:标示货品计量单位                                      编  号:007

类型:字符型

长度:4

有关数据存储:Goods

数据元素名称:WID\SWID                                      总编号:1-008

说明:标示仓库的编号,不能重复                               编  号:008

类型:字符型

长度:3

有关数据存储:Warehouses, Store, Records,

数据元素名称:Wname                                         总编号:1-009

说明:标示仓库名称                                          编  号:009

类型:字符型

长度:50

有关数据存储:Warehouses

数据元素名称:Warea                                          总编号:1-010

说明:标示仓库面积,单位平方米                                编  号:010

类型:float

长度:8

有关数据存储:Warehouses

数据元素名称:Waddress                                       总编号:1-011

说明:标示仓库地址                                           编  号:011

类型:字符型

长度:100

有关数据存储:Warehouses

数据元素名称:Wdescribe                                       总编号:1-012

说明:仓库简单描述                                            编  号:012

类型:字符型

长度:500

有关数据存储:Warehouses

数据元素名称:UID                                              总编号:1-013

说明:用户登录账号                                             编  号:013

类型:字符型

长度:32

有关数据存储:Users

数据元素名称:Upassword                                        总编号:1-014

说明:用户登录密码                                             编  号:014

类型:字符型

长度:40

有关数据存储:Users

数据元素名称:Upower                                           总编号:1-015

说明:用户操作权限                                             编  号:015

类型:字符型

长度:10

有关数据存储:Users

数据元素名称:Uname                                            总编号:1-016

说明:用户真实姓名                                             编  号:016

类型:字符型

长度:10

有关数据存储:Users

数据元素名称:Usex                                             总编号:1-017

说明:用户性别                                                 编  号:017

类型:字符型

长度:2

有关数据存储:Users

数据元素名称:Utel                                             总编号:1-018

说明:用户电话联系方式                                         编  号:018

类型:字符型

长度:30

有关数据存储:Users

数据元素名称:Uadress                                          总编号:1-019

说明:用户家庭住址                                             编  号:019

类型:字符型

长度:50

有关数据存储:Users

数据元素名称:Udep                                             总编号:1-020

说明:用户所属仓库                                             编  号:020

类型:字符型

长度:3

有关数据存储:Users

数据元素名称:StopLine                                         总编号:1-021

说明:仓库存某种材料的上限                                     编  号:021

类型:float

长度:8

有关数据存储:Store

数据元素名称:SbaseLine                                        总编号:1-022

说明:仓库存某种材料的下限                                     编  号:022

类型:float

长度:8

有关数据存储:Store

数据元素名称:Squantity                                        总编号:1-023

说明:仓库中某种材料的现有数量                                 编  号:023

类型:float

长度:8

有关数据存储:Store

数据元素名称:RID                                              总编号:1-024

说明:进出单编号,自然数递增                                    编  号:024

类型:int

长度:4

有关数据存储:Records

数据元素名称:Rquantity                                        总编号:1-025

说明:材料某一次进/出数量                                      编  号:025

类型:float

长度:8

有关数据存储:Records

数据元素名称:Rtype                                           总编号:1-026

说明:标示操作类型,TRUE为进货,FALSE为出货                    编  号:026

类型:bit

长度:1

有关数据存储:Records

数据元素名称:Rmanager                                        总编号:1-027

说明:仓库系统管理员                                          编  号:027

类型:字符型

长度:32

有关数据存储:Records

数据元素名称:Rhandler                                        总编号:1-028

说明:采购员或领货员                                          编  号:028

类型:字符型

长度:10

有关数据存储:Records

数据元素名称:Rdate                                           总编号:1-029

说明:用于标示进\出货日期                                     编  号:029

类型:日期型

长度:8

有关数据存储:Records


2. 数据流的描述,如表3-2所示。

表3-2 数据流条目

数据流名称:仓库信息单                                          编号:F2

数据流简述:仓库的基本信息

数据流来源:管理员

数据流去向:管理员

数据流组成:WID+ Wname+ Warea+ Waddress+ Wdescribe

数据流名称:规则信息单                                          编号:F3

数据流简述:仓库存储规则信息

数据流来源:管理员

数据流去向:管理员

数据流组成:SGID+ SWID+ StopLine+ SbaseLine+ Squantity

数据流名称:新材料信息单                                        编号:F4

数据流简述:材料的基本信息

数据流来源:管理员

数据流去向:管理员

数据流组成:GID+ Gname+ GPrice +Gunit+ GProvider1+ GProvider2+ Gdescribe

数据流名称:入\出库单                                            编号:F5

数据流简述:材料入\出库信息

数据流来源:管理员

数据流去向:管理员

数据流组成:RID+ RGID+ RWID+ Rquantity+ Rtype+ Rmanager+ Rhandler+ RDate

3. 数据存储的描述,如表3-3所示。

表3-3 数据存储条目

数据存储名称:入\出库单表                                         编号:D1

数据存储简述:记录所有入\出库基本信息

数据存储组成:RID+ RGID+ RWID+ Rquantity+ Rtype+ Rmanager+ Rhandler+ RDate

有关的数据流:F5,F7

数据存储名称:库存规则表                                         编号:D2

数据存储简述:记录仓库存储材料的上限、下限和现有数量

数据存储组成:SGID+ SWID+ StopLine+ SbaseLine+ SQuantity

有关的数据流:F3

数据存储名称:材料信息表                                          编号:D3

数据存储简述:记录材料的基本信息

数据存储组成:GID + Gname + Gprice + Gunit+ GProvider1 + GProvider2 + GDescribe

有关的数据流:F4

数据存储名称:仓库信息表                                          编号:D4

数据存储简述:仓库的基本信息

数据存储组成:SGID+ SWID+ STopLine +SbaseLine+ SQuantity

有关的数据流:F3

4. 数据逻辑描述,如表3-4所示。

表3-4 处理过程条目

处理逻辑名称:仓库信息处理                                        编号:01

处理逻辑简述: 对仓库信息增删查改操作

输入数据流:F2

输出数据流:D4

处理逻辑名称:规则信息处理                                        编号:02

处理逻辑简述:对仓库规则信息增删查改操作

输入数据流:F3

输出数据流:D2

处理逻辑名称:材料信息处理                                         编号:03

处理逻辑简述:对材料信息增删查改操作

输入数据流:F4

输出数据流:D3

处理逻辑名称:库存盘点                                             编号:04

处理逻辑简述:对库存规则修改

输入数据流:D1

输出数据流:D2

3.4 材料编码设计

编码是代表客观存在的事务名称,属性,和状态等的符号。编码的符号可以是数字,字母和数字与字母混合组成。

合理的编码结构是信息处理系统是否具有生命力的一个重要因素,在编码设计时,应遵循以下基本原则:唯一性,标准性,合理性,可扩充性,简单性,实用性和规范性。

如材料标号,是标志材料的标号,不能重复,5位字符组成,前两位是类型,再两位是尺寸最后二位是所属仓库。如A1D1W2,A1代表圆钢,D1代表规格型号,W2代表所属第二仓库。

第4章 系统详细设计  

4.1 数据库表的设计

根据前文所分析的E-R图以及各实体与实体之间的关系,进行模型化。建立关系数据库模型,如下面的几个表格所示。

本系统中设计了5张表,包括用户信息表、仓库信息表、货物信息表、存放规则信息表、货物进出记录数据表。

    (1) 用户信息表(Users),用于存放所有人员的信息。该表包括用户编号、密码、类别、姓名、性别、电话、地址、仓库编号。

表4-1 用户信息表(users)

列名

数据类型

大小

字段描述

UID

varchar

32

用户号(主键)

UPassword

varchar

40

密码

UPower

int

10

用户类别:仓库管理员,

普通用户

USex

Char

2

性别

UName

varchar

10

姓名

UTel

varchar

30

电话

UAdress

varchar

50

地址

UDep

nvarchar

3

所属仓库号

(2) 在仓库信息表(warehouses),用于存放所有仓库信息。该表包括仓库编号、名称、面积、地址、描述属性。

表4-2 仓库信息表(warehouses)

列名

数据类型

大小

说明

WID

nvarchar

3

仓库编号(主键)

WName

varchar

50

名称

WArea

float

32

面积

WAddress

varchar

100

地址

WDescribe

varchar

500

描述

(3) 货物信息表(Goods),用于记录当前仓库存储的货物信息。该表包括货物编号、名称、价格、主供应商、次供应商、描述。

表4-3 货物信息表(Goods)

列名

数据类型

大小

说明

GID

nvarchar

6

货物编号(主键)

GName

varchar

8

名称

GPrice

money

8

价格

GProvider1

varchar

50

主供应商

GProvider2

varchar

50

次供应商

GDescribe

varchar

50

描述

GUnit

nvarchar

4

(4) 存储规则信息表(Store),用来存放货物的存储规则,如什么样的货物存储在什么仓库中,存储量最大为多大,存储量最低是多少。该表包括存储规则编号、货物编号、仓库编号、最高存量、最低存量、当前存量。

表4-4 存储规则信息表(Storer)

列名

数据类型

大小

说明

SGID

int

4

货物编号

SWID

int

4

仓库编号

STopLine

float

8

最高存量

SbaseLine

float

8

最低存量

SQuantity

float

8

当前存量

(5) 货物进出记录表(records),用于记录货物的进出库记录。该表包括货物进出编号、货物编号、仓库编号、出入库数量、操作类型、用户编号、经手人姓名、日期。

表4-5货物进出记录表(Records)

列名

数据类型

大小

说明

RID

int

4

货物进出记录编号
(主键)

RGID

int

4

货物编号

RWID

int

4

仓库编号

RQuantity

float

8

出入库数量

RType

bit

1

操作类型
1-入库 2-出库

RManager

varchar

32

用户编号

RHandler

varchar

10

经手人姓名

RDate

datetime

8

日期

4.2 系统功能模块

4.2.1登录界面实现

此模块实现系统登录,用户输入用户名、密码和权限后,系统判断是否正确,如果正确,进入主界面,否则,要求重新输入。模块处理流程图,如图4-1所示。

图4-1 登录模块处理流程图

登录模块具有身份验证的功能,只有合法的用户才能进入系统,界面如图4-2所示。其中用户类型批前面已介绍过系统分为两类用户:仓库管理员,普通用户。

图4-2 用户登录

     输入用户名和密码后,系统会与数据库连接,查询用户是否存在,如果通过验证,系统记录用户的用户名,权限,并根据不同的权限进入不同的窗体;若未通过验证,则返回登录界面,并提示错误信息。系统主界面如图4-3所示。

图4-3系统主界面

4.2.2 员工管理模块

用户管理窗体负责所有用户信息的浏览,只有管理员能操作此模块。采用GridView控件实现与数据库的绑定,显示用户的主要信息及管理用户的主要信息。可以根据输入的账号查询信息、分配员工的权限、及维护员工的信息。界面如图4-4所示。

图4-4 用户管理

员工管理模块添加用户流程图如图4-5所示。

图4-5 添加用户流程图

4.2.3仓库管理模块

仓库管理模块负责所有仓库信息的浏览,用GridView控件实现与数据库的绑定,显示仓库的信息,通过WarehourseManage类对仓库信息进行管理,WarehourseAdd进行仓库的添加,WarehouseChange进行维护。界面如图4-6所示。

图4-6 仓库管理

4.2.4货物管理模块

货物管理模块负责所有货物信息的浏览、添加,以及导出货物的信息,窗体采用GridView控件实现与数据库的绑定,显示货物的信息。界面如图4-7所示。通过类GoodsAdd进行货物的添加,界面如图4-8所示。GoodsManage进行货物的查询和导出,GoodsModify进行修改和删除。

图4-7 货物管理

图4-8 货物添加

4.2.5存储规则管理模块

存储规则管理模块负责所有存储规则的浏览、添加,窗体采用 GridView 控件实现与数据库的绑定。界面如图4-9所示。

图4-9 存放规则

4.2.6 货物进出记录模块

货物进出模块负责所有货物进出记录的浏览、添加、导出,窗体采用GridView控件实现与数据库的绑定,通过预先定义好的存储规则进行相应货物的进出。界面如图4-10和图4-11所示。

图4-10 货物进出记录

图 4-11 货品进出添加

货物进货的流程图如图4-12所示。

图4-12 货物进货流程图

货品进出的部分代码如下:

    private void goodsReserve_Load(object sender, EventArgs e)

    {

            dbhelper.connection.Open();

            string sqlWid = "select WID from Warehouses";

            SqlCommand com = new SqlCommand(sqlWid, dbhelper.connection);

            SqlDataAdapter adapter = new SqlDataAdapter();

            DataSet DS = new DataSet();

            adapter.SelectCommand = com;

            adapter.Fill(DS);

            comboBox2.DataSource = DS.Tables[0];

            comboBox2.DisplayMember = "WID";

            comboBox2.ValueMember = "WID";

           

            string sqlGid = "select GID from Goods";

            SqlCommand com1 = new SqlCommand(sqlGid, dbhelper.connection);

            SqlDataAdapter adapter1 = new SqlDataAdapter();

            DataSet DS1 = new DataSet();

            adapter1.SelectCommand = com1;

            adapter1.Fill(DS1);

            comboBox1.DataSource = DS1.Tables[0];

            comboBox1.DisplayMember = "GID";

            comboBox1.ValueMember = "GID";

            dbhelper.connection.Close();

            radioButton1.Checked = true;

            comboBox1.Text = "";

            comboBox2.Text = "";

        }

4.2.7 库存信息模块

主要查看当前货物的所属仓库、现有量、供货商、价格及数目的上下限。通过数据库中的Goods和Store表的关系显示出库存的信息。可以调用DaoChuExcel类实现把库存信息导出到Excel表格中。界面如图4-13所示。

图4-13 库存信息模块

库存信息模块流程图如图4-14所示。

图4-14 库存信息流程图

第5章 系统测试

到本阶段,小型仓库管理系统系统的设计与实现已经基本完成。系统的功能已经全部确定,下面要完成的是对系统的功能进行全面的测试工作,确保系统的各个功能顺利实现不出问题。系统的测试阶段非常重要,需要对此阶段加以重视。

5.1 测试的重要性

软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。

如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。

  1. 软件测试是为了发现错误而执行程序的过程;
  2. 测试是为了证明程序有错,而不是证明程序无错误;
  3. 一个好的测试用例是在于它能发现至今未发现的错误;
  4. 一个成功的测试是发现了至今未发现的错误的测试。

这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的,事实并非如此。

首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法[11]。

5.2 测试的类型

为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试。

1.单元测试

单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。

2.集成测试

集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全局数据结构可能有错误等。

3.确认测试

确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

5.3 主要功能模块测试 

为验证程序的执行情况对系统的主要功能模块进行了测试。本系统关键测试点是货物进出功能和库存信息功能。

1. 货物进出功能测试实例:

表5-1 货物进出功能测试用例

测试用例编号

Test_001

测试项目

测试货物进出的添加

测试标题

针对仓库中已有商品进行进货的操作

重要级别

高级

预置条件

进入小型仓库管理系统,选择货物进出--->货物进出的添加

输入

输入参数为:进出数量:20  送货人名:test          

执行步骤

1.在货品号下拉列表中选择: A1D1W2

2.在仓库号下拉列表中选择: 2

3.点击查看情况 页面中反显出在第2仓库中货品A1D1W2的信息为:

  当前数量:60 最大存储量:150  当前最大出货量:60 当前最大进 货   量:90

  1. 操作类型:选择进货
  2. 进出数量:20
  3. 送货人名:test
  4. 点击提交按钮

预期输出

弹出提示信息内容为:添加成功

用力测试者

冯金龙

测试时间

2013-05-28

2. 库存信息功能测试实例:

表5-2 库存信息功能测试用例

测试用例编号

Test_002

测试项目

测试仓库号查询货品的信息

测试标题

针对仓库号查询货品信息并导出此仓库的货品信息

重要级别

高级

预置条件

进入小型仓库管理系统,选择库存信息

输入

输入参数为:仓库编号: 2         

执行步骤

  1. 在仓库编号输入: 2
  2. 点击查询,显示出仓库2内的货品信息包括:货品编号、现有数量、数量下限、数量上限、当前价格、主供应商、次供应商

3.点击导出按钮

预期输出

显示出仓库2内的所有货品的信息;导出显示的内容到Excel表格中

用力测试者

冯金龙

测试时间

2013-06-01

根据以上测试方法和步骤,代码的审查和模块间逻辑部分由本人程序设计过程中完成,系统模块功能的测试由同学模拟各种用户登录完成。

结论与展望

通过这几个月的努力,小型仓库管理系统管理系统的设计顺利的完成了。从最初的不知如何下手,到慢慢的调整状态,再到思路的清晰,整个论文的撰写经历了一个漫长的过程,有困惑的烦恼,也有收获后的喜悦。

整个论文的论述做到资料充实,以软件工程学的方法和思路进行设计开发,系统的优点是简单易用的用户界面,基本上能够满足用户需求;查询、修改和删除都很方便,都带有提示信息,比较人性化;系统的缺点是在增加材料是需要录入大量的信息,操作起来比较繁琐,虽然可以实现信息的批量导入,但由于诸多原因在系统中不能体现,还有些功能不够完善,逻辑上的严密性不够。需要改进的地方是录入信息的准确性检验方面有待进一步改进,方便用户操作。系统应与公司的工程管理系统进行连接,可随时了解材料的优先购进程度,保持库存量,这些功能有待于进一步的改进。

    随着研究的深入,越来越感觉到管理信息系统的建立和实施是一个非常复杂的问题。由于本人没有实际开发经验再加上时间有限,所以本系统功能上并不是非常完善,尚需要在今后的实践中继续完善。在这次的毕业设计中,发现了自己的诸多不足之处,在最初阶段,设计的思想还不够扎实,考虑不全面,导致很多时候不能一气呵成,使自己在系统在进行功能扩充时走了不少弯路才最终实现。同时,此次毕业设计过程也是逐渐完善的过程,使我对C#开发更加熟悉,检测了自己以前在学习上的不足之处。

通过此次毕业设计,提高了自己开发软件的能力与技术,为自己树立了信心,为以后工作中解决问题提供了很好的依据。


致谢

本论文是在徐立新老师的悉心指导下完成的。在选题、设计及撰写论文过程中,徐立新老师均给予了我莫大的指导和帮助。他的适时鞭策,及时纠正和鼓励使我慢慢走出了困顿,积累了许多经验,并且老师像朋友一样在我今后的发展道路上给予指点。再此,特向徐老师表示我衷心的感激和深切的谢意。

此外,还要感谢在大学四年中帮助我的人,感谢软件学院所有老师在学习上的点拨。同时也要感谢在论文写作过程中帮助过我,并且共同奋斗四年的大学同学们。能够顺利完成论文,是因为一路上有你们,再次衷心地感谢所有在我论文写作过程中给予我帮助的人们,谢谢!

感谢在百忙之中抽出时间、精力审阅本论文的各位老师!

感谢长春工业大学大学对我的培养教育。

参考文献

[1] karliWatson,ChristianNagel著,奇立波译. C#入门经典[M]. 北京:清华大学     出版社,2010   

[2] 里伯提(Liberty,J.)著,刘基诚,李愈胜,刘卫卫译. Programming C#中文版[M]     第4版. 北京:电子工业出版社,2010

[3] 芭可,帕尔默著,韩磊,戴飞译. Beginning C# Objects中文版——概念到代码.     北京:电子工业出版社,2010
[4] Jon Skeek著,周靖等译. 深入理解C#.第二版. 北京:人民邮电出版社,2010

[5] 内格尔,埃夫琴著,李铭译. C#高级编程.第七版. 北京:清华大学出版社,2011

[6] Erik Brown著,朱毓斌,吴飞译. C# Windows Forms程序设计[M]. 北京:清华大 学出版社,2010

[7] 郑宇军,王侃. C#语言程序设计基础[M].北京:清华大学出版社,2008.3

[8] 王珊,萨师煊. 数据库系统概论.第四版. 北京:高等教育出版社,2010

[9] 王养廷,李磊,宋汉珍. UML基础与应用[M]. 北京:清华大学出版社,2006

[10] 明日科技. C#项目案例分析[M]. 北京:清华大学出版社,2012

[11] 萨默维尔著,程成译. 软件工程[M]. 北京:机械工业出版社,2011

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值