毕业论文(论文)
题 目 仓库管理系统的设计与开发
学生姓名
学 号
学 院
专 业 计算机科学与技术
班 级
指导教师
在21世纪,计算机飞速发展的今天,将计算机这一信息处理技术应用于仓库管理已是势必所然,而且这也将为仓储管理带来前所未有的改变。它可以带来意想不到的经济效益和社会效益,同时也会为企业的飞速发展贡献一份力量。采用计算机仓库管理信息系统对仓储进行管理,使其更加科学化和现代化,它可以极大地提高仓库工作人员的工作效率,减少了以往入库、出库流程繁琐,杂乱,周期长的弊端。
论文在对仓库管理系统进行可行性分析、系统需求分析、功能需求分析、开发环境分析的基础上,对系统进行了比较详细的设计,包括结构设计、功能模块设计、数据库设计。企业仓库管理系统主要包括入库管理、出库管理、还库管理、系统维护等基本功能,论文详细介绍了系统的实现过程和方法。论文的最后介绍了系统的测试方法与结果,包括测试目标、测试方案、测试用例与测试报告等方面的内容。系统采用C#语言和Sql2005。
关键词:仓库管理系统 C# SQL2005数据库
Abstract
In the 21 st century, computer of the rapid development of the computer this today, information processing technology used in warehouse management has is certainly will have however, and this will also be warehouse management bring an unprecedented change. It can lead to unexpected economic benefit and social benefit, but also for the rapid development of enterprise contribute strength. Using a computer to warehouse management information system to the warehouse management, make it more scientific and modern, it can greatly improve the warehouse staff work efficiency, reduce the previous inbound, outbound process trival, mixed and disorderly, cycle long drawbacks.
The thesis in warehouse management system of feasibility analysis, requirement analysis, system function requirement analysis, development environment on the basis of analysis, the system is the detailed design, including the structure design, function module design, database design. Enterprise warehouse management system mainly including warehouse management, outbound management, also library management, and system maintenance, and other basic function, this paper introduced the realization of the system of the process and the method. The paper introduces the system of testing methods and results, including target, test plan, test cases and test report etc. Using c # and Sql2005 system.
Keyword: Warehouse management system; C#; SQL database
第一章 绪论
随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。如何通过计算机为我们完成更多的事情,进而达到办公自动化和优化日常工作的目的,也就成了一个大众化的课题。
仓库管理是与我们日常生活息息相关的问题。大到公司、超市的仓库管理,小到图书馆的藏书管理,都可以认为是各种各样的仓库管理需求。随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统,尽可能地减少仓库管理的重复性和低效性,已变得十分必要。
1.1仓库管理信息系统的概述
随着经济全球化进程的加快和信息技术的飞速发展、Internet的日益普及与广泛应用。信息技术已深入到社会的各个方面,并将对社会未来的发展产生深刻的影响。信息系统已成为当代企业在激烈竞争中迎接挑战、实现管理变革、获取新的竞争优势的强有力的工具和战略手段。为此,企业通过计算机网络获得信息必将为企业带来巨大的经济效益和社会效益,企业的办公及管理都将朝着高效、快速、无纸化的方向发展。
仓库管理信息系统是一门科学,它的主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。
1.1.1仓库管理信息系统的特性与划分
1)仓库管理信息系统的特性
完善的仓库管理信息系统具有以下四个标准:确定的信息需求、信息的可采集与可加工、可以通过程序为管理人员提供信息、可以对信息进行管理。具有统一规划的数据库是仓库管理信息系统成熟的重要标志,它象征着仓库管理信息系统是软件工程的产物。通过仓库管理信息系统实现信息增值,用数学模型统计分析数据,实现辅助决策。仓库管理信息系统是发展变化的,仓库管理信息系统有生命周期。
仓库管理信息系统的开发必须具有一定的科学管理工作基础。只有在合理的管理、完善的规章制度、稳定的生产秩序、科学的管理方法和准确的原始数据的基础上,才能进行仓库管理信息系统的开发。因此,为适应仓库管理信息系统的开发需求,企业管理工作必须逐步完善以下工作:管理工作的程序化,各部门都有相应的作业流程,管理业务的标准化,各部门都有相应的作业规范,报表文件的统一化,固定的内容、周期、格式;数据资料的完善化和代码化。
2)仓库管理信息系统的划分
按组织职能进行划分:
仓库管理信息系统按组织职能可以划分为办公系统、决策系统、生产系统和信息系统。
按历史发展进行划分:
第一代仓库管理信息系统 是由手工操作,使用工具是文件柜、笔记本等。第二代仓库管理信息系统增加了机械辅助办公设备,如打字机、收款机、自动记账机等。第三代仓库管理信息系统使用计算机、电传、电话、打印机等电子设备。
按仓库管理信息系统的综合结构进行划分:
仓库管理信息系统可以划分为横向综合结构和纵向综合结构,横向综合结构指同一管理层次各种职能部门的综合,如劳资、人事部门。纵向综合结构指具有某种职能的各管理层的业务组织在一起,如上下级的对口部门。
1.2 课题相关背景
物品仓库一直是本企业单位仓管部门的主要任务,随着业务的不断发展,加强成本管理与收入管理、通过提高服务水平提升企业形象已成为本企业单位的迫切需要。因为该企业单位目前采用手工操作的运营过程,差错率较高,已不能适
应物品对现代化管理的要求。 企业单位的物资供应管理往往是很复杂的,烦琐的。由于所掌握的物资种类众多,订货,管理,发放的渠道各有差异,各个企业单位之间的管理不尽相同,各类统计计划报表繁多,因此物资管理必须实现计算机化,而且必须根据企业单位的具体情况制定相应的方案
规范仓库管理,实现信息化管理仓库,方便仓库管理员管理仓库,以便于相关部门查看有关物料的库存及相关信息等,及时采购,销售等。通过有效控制库存,大大减少资金占用,提高资金周转速度,从而提高企业的经济效益。另外对相关数据进行统计分析,提取出重要的信息元素给企业的决策者,从而做出正确的决策。最终提高企业的核心竞争力。
如今,仓储管理系统已经在世界各发达国家广泛应用了,而且应用范围越来越广,功能越来越全面,操作越来越简便,成本越来越低廉。主要应用于大中小型企业,工厂,物流公司,超市以及一些科研单位。仓储仓库管理信息系统可以给仓库带来切实的效果:
(1)为仓库作业全过程提供自动化和全面纪录的途径;
(2)改变传统上的固定货位,实现全库随机储存。从而最大限度利用仓库;
(3)提高发货的质量和正确性,减少断档和退货,从而提高顾客的满意程度;
(4)为仓库的所有活动、资源和库存水平提供即时的正确信息。
以上这些效果无疑会带给仓库明显的效益,据估算,配进能力一般可提高20-30% ,库存和发货正确率超过99%。仓库空间利用率提高,数据输入误差减少,库存和短缺损耗减少,劳动、设备、消耗等费用降低。这些最终将为仓库带来巨大的经济效益。
第二章 相关知识介绍
仓储管理系统可以以C#为编程语言,以SQL2005作为后台数据库而开发的一个数据库管理系统。
2.1 C#简介
2.1.1 C#的概述
C#是编程世界中最近出现的,英文读音为:C Sharp,由Microsoft开发,既可以开发基于Web的程序,也可以开发单独运行的程序。Microsoft从C++语言中提取了最新的面向对象技术,并将其和它的Visual Basic语言的易用性一起集成到C#中。
C#的语法和它的面向对象的本质也类似与Sun Microsystems开发的Java语言。因为C++和Java都是以C为原型,C#语言也保留了很多这些早期语言的结构。这使得熟悉Java、C或者C++的程序员可以很快适应C#。
C#是一种面向对象编程语言。对象是组成程序的基本元素。C#语言和.NET平台为开发程序提供了大量类型的功能和工具。这个软件常称为命名空间,提供了创建图形、网络通信以及数据库交互的能力和很多其他功能。
2.1.2 C#的主要特点
.简单:C#具有C++所没有的一个优势就是学习简单。该语言首要的目标就是简单。很多功能(还不如说是缺少了C++的一些功能)有助于C#全方位的简单。在C#中,没有C++中流行的指针。默认地,您工作在受管理的代码中,在那里不允许如直接存取内存等不安全的操作。
.现代:C#是为编写NGWS 应用程序的主要语言而设计。
.面向对象:C#当然支持所有关键的面向对象的概念,如封装、继承和多态性。完整的C#类模式构建在NGWS运行时的虚拟对象系统的上层,VOS将在下章描述。对象模式只是基础的一部分,不再是编程语言的一部分。
.类型安全: C#实施最严格的类型安全,以保护自己及垃圾收集器。所以必须遵守C#中一些相关变量的规则:
不能使用没有初始化的变量。
C#取消了不安全的类型转换。
算术运算有可能溢出终值数据类型的范围。
. 版本可控: C#可以最好地支持版本控制。
6. 兼容: C#并没有存在于一个封闭的世界中。它允许使用最先进的NGWS的通用语言规定访问不同的API。
2.2数据库简介
数据库是事务处理、信息管理等应用系统的核心和基础,数据库管理系统通过将大量的数据按一定的数据模型组织起来,提供存储、维护和检索数据的功能,使应用系统可以以统一的方式方便、及时、准确地从数据库中获取所需信息。Microsoft公司推出的SQL Server 2005数据库管理系统以其强大的功能在各领域得到广泛应用。它是基于客户机/服务器(client/server)模型的关系型数据库管理系统(DBMS),其在电子商务、数据仓库和数据库解决方案等应用中起着重要的核心作用,为企业的数据管理提供强大的支持。
随着信息技术的发展,计算机处理数据的方式也发生着变化,文件管理系统--数据库管理系统。Microsoft SQL Server是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器的处理结果。1 . SQL的特性SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体,主要特点包括:
综合统一
数据库系统的主要功能是通过数据库支持的数据语言来实现的。 非关系模型(层次模型、网状模型)的数据语言一般都分为模式数据定义语言(Schema Data Definition Language,简称模式DDL)、外模式数据定义语言(Subschema Data Definition Language,简称外模式DDL或子模式DDL)、与数据存储有关的描述语言(Data Storage Description Language,简称DSDL)及数据操纵语言(Data Manipulation Language,简称DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。当用户数据库投入运行后,如果需要修改模式,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,比较
麻烦。
高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据性。
面向集合的操作方式
非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。例如查询所有平均成绩在80分以上的学生姓名,用户必须一条一条地把满足条件的学生记录找出来(通常要说明具体处理过程,即按照哪条路径,如何循环等)。而SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除。更新操作的对象也可以是元组的集合。
以同一种语法结构提供两种使用方式
SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C,COBOL,FORTRAN,PL/1)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的做法,提供了极大的灵活性与方便性。
SQL Server优点众多,但Microsoft SQL Server和其他数据库产品相比也存着以下劣势:
开放性。只能运行在微软的windows平台,没有丝毫的开放性可言。
可伸缩性,并行性。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
性能稳定性。SQLServer当用户连接多时性能会变的很差,并且不够稳定。
使用风险。SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
客户端支持及应用模式。只支持C/S模式。
第三章 系统分析
仓储管理系统(WMS),是通过入库业务、出库业务、仓库调拨、库存调拨等功能,综合批次管理、物料对应、库存盘点和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流管理全过程,实现完善的企业仓储信息管理。该系统可以执行库存操作,与其他系统的单据和凭证等结合使用,可提供更为完整全面的企业业务流程和财务管理信息。利用仓储管理可以对企业中杂乱无章的库存进行管理,如在高架位闲置的存储、可用存储、冻结存储。
3.1系统的需求分析
在仓库管理系统开发是应该满足一下具体的系统需求:
1) 由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机交换界面。
2) 如果系统的使用对象较多,则要求有较好的权限管理。
3) 方便的数据查询。
4) 批量填写货物入库单及出库单。
5) 在相应的权限下可以方便的删除数据。
6) 数据计算自动完成,尽量减少人工干预。
3.1.1 功能性需求分析
仓储管理系统,是通过入库业务、出库业务、仓库调拨、库存调度、数据保存、数据还原等功能,以下介绍了本系统模块基本功能:
●登录界面
管理员登录:管理员登录主要是管理员的一些权限,对仓库的所有设置,它都可以进行管理,比如不仅可以对基本的入库、出库、还库、系统维护等基本功能的管理,还可以管理其它用户,其它用户的权限设置,信息修改管理员都可以进行相应修改。
用户登录:用户登录,主要涉及到用户的一些权限,用户个人信息的修改,用户所在部门的借货还货信息,进行库存货物的查询等。
●管理员仓库信息管理:是有管理员管理的,一般用户不可以。
库存管理:主要对库存货物进行修改、删除、查询以及生成报表。
入库管理:主要是添加货物、查询、修改入库货物,生成入库货物报表。
出库管理:主要是出库货物、出库货物查询与修改、生成出库货物报表。
还库管理:主要是添加还库货物、还库货物查询与修改、生成还库货物报表。
数据统计:主要入、出库所有货物生成报表。
系统维护:主要是对数据、文本进行备份、还原、压缩。
帮助: 对登录用户进行密码修改、对用户进行权限设置、对用户进行管理。
退出系统:用户退出系统。
●用户仓库信息管理
个人信息修改:对登录用户的个人信息进行修改,例如:姓名、年龄、手机号、所在部门等。
借货记录查询:用于查询
还货记录查询:登录人员所在部门的借货信息进行查询。
库存信息查询:对库存现有货物信息进行查询。
未还物品查询:登录人员所在部门的未还货物信息进行查询。
退出系统:退回到登录界面。
3.2系统的可行性分析
1、操作可行性
现行系统采用大量手工操作与少量微机操作相结合,而新开发的系统则全用微机来处理整个过程,在运行初可以采用平行方式从旧系统逐步转换过来,在这其间,手工操作与电脑操作并存,微机操作可逐渐增加工作量,且在这段时间,工作不间断,且新老系统有明显的效率对比。
2、技术可行性
本系统可以运行在Win95, Win98, Win2000操作系统之上, 就是说市场上流行的操作系统都可以支持。因此系统运行可行性绝不会成为《软件零售仓库管理系统》的问题。
3、用户操作可行性
本系统操作简单, 有机算计基础的人无需培训即可使用, 即使是没有计算机基础的人只需经过简单的培训就可以很熟练的使用本系统。系统运行后,就用户方而言,由于用户使用本系统时,不会也不必关心系统内部的结构及实现方法,即对用户来说是透明的,所以本系统对用户而言,是定位在界面友好、操作方便、功能齐全的原则上的,用户只需简单的用鼠标点击各界面上的选项卡或按钮就能执行相应的功能,就管理者而言,关心的是如何处理各种数据,只要把用户的信息输入计算机,管理者就可运行相应的后台程序进行处理。而以上的这些功能都能在所选择的开发环境中用所选择的开发工具来实现。所以说本系统在用户使用可行性上是没有问题的。
3.3 业务流程分析
流程管理主要是负责物料在入库和出库时的程序管理,根据实际物料在仓库中的流动过程及时更新仓库管理系统的记录信息。
信息管理主要是针对仓库中的库存物料信息进行管理,分析库存数据,为企业其它部门提供信息支持等。
产品入库:采购入库或者其他入库,自动生成入库单号,货品及可选择方便快捷,可以区分正常入库、退货入库等不同的入库方式。
产品出库:销售出库或者其他出库,可以自动生成出库单号,可以区分正常出库、赠品出库等不同的出库方式;
库存管理:不需要手工管理,当入库和出库时,系统自动生成每类产品的库存数量,查询方便;
验收入库的具体流程为:采购物料到货后,由仓库保管员根据物料采购计划核对物料的商品号、商品名称、供货商、数量,验收合格后开具物料验收合格单同一起报送财务部门。根据财务部门发送的物料入库通知及物料验收合格单办理采购物料入库手续,填写物料入库单,填写仓库库存明细帐。
物料出库的具体流程为:企业其它部门领取物料时首先需要填写领料单,经部门负责人签字后到仓库领料。仓库保管员根据领料单发放物料,领料单经保管员签字后交仓库的会计记帐。
3.4开发运行环境
⏹系统开发平台:Microsoft Visual Studio 2008
⏹系统开发语言:C#
⏹数据库系统:SQL Server 2005
⏹运行平台:Windows XP
⏹运行环境:Microsoft.NET Framework SDK V2.0
⏹分辨率:最佳效果1024*7
第四章 系统设计
在这一章中,将介绍系统的结构设计,数据库的概念结构设计,以及数据库的逻辑结构设计。
4.1数据库的需求分析
仓储仓库管理信息系统的数据组织.
本系统属于小型的数据库管理系统,可以对中小型企业库存进行有效地管理。本系统采用SQL Server2005作为后台数据库,数据库名称为cangku,其中包含9张数据表。下面分别做几个主要数据表的介绍:
实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:1:1、1:n、n:m.
1.设备入库表:设备号、设备名称、入库时间、供应商、供应商电话、数量、价格、采购员。
2.货物信息表:设备号、设备名称、单价、库存量、现有库存量、最大库存量。
3.借出货物信息表:设备号、设备名称、出库时间、使用部门、数量、经办人、备注。
4.归还货物表:设备号、设备名称、还库日期、经办人、数量、归还部门。
5.管理人信息表:id name pwd biaozhi age sex tel
6.部门信息表:部门、负责人、人数、办公电话。
4.2数据库的概念结构设计
(1)数据表E-R图
根据上面的设计,本实例规划出的实体主要有货物信息实体、货物入库实体、货物出库实体、货物归还实体、货物总入库实体、部门实体、人员管理实体、借货部门实体。
库存管理系统主要实体之间的关系E-R图如图4-1所示
图4-1库存管理系统主要实体之间的关系E-R图
(2)货物信息实体E-R图
图4-2货物信息实体E-R图
货物信息实体E-R图,主要是用来进行仓库货物进行分析的,分析结果主要有:商品编号、设备名称等六个属性,其中商品编号为主键,可以用来确定商品货物的唯一性。
(3)货物入库实体E-R图4-3
图4-3货物入库实体E-R
货物入库实体E-R图,主要是用来进行仓库入库货物进行分析的,分析结果主要有:商品编号、设备名称等八个属性,其中商品编号为主键,可以用来确定商品入库货物的唯一性。
(4)货物出库实体E-R图4-4:
图4-4货物出库实体E-R 图
货物出库实体E-R图,它与货物的入库实体是一样的,主要是用来进行仓库出库货物进行分析的,分析结果主要有:商品编号、设备名称等七个属性,其中商品编号为主键,可以用来确定商品入库货物的唯一性
(5)货物归还实体E-R图4-5
图4-5货物归还实体E-R图
货物还库货物实体,主要是用来进行仓库出库货物进行分析的,分析结果主要有:商品编号、设备名称、还库时间等七个属性,其中还库时间为主键,可以用来确定同一商品或者不同商品还库库货物的唯一性
(6)登录人员实体E-R图4-6:
登陆人员实体,主要是用来进行仓库登陆人员进行权限设置的,不同的登陆人员会有不同的权限。分析结果主要有:ID、Name、psw 、biaozhi等九个属性,其中ID号为主键,可以用来确定不同登陆人员的唯一性。
图4-6登录人员实体E-R图
(7)部门实体E-R图4-7:
图4-7部门实体E-R图
部门信息实体,主要是用来进行不同部门信息的记录,不同的部门会有不同的借货信息。分析结果主要有:部门、负责人、人数 、办公电话四个属性,其中部门为主键,用来确定不同部门的唯一性。
4.3数据库的逻辑结构设计
根据设计好的E-R图在数据库中创建各表,系统数据库中各表的结构如下。
storage_In(设备入库表)
用于保存所有入库货物的信息,该表的结构如下图4-8所示。
名称 | 长度 | 数据类型 | 允许为空 |
设备号 | 10 | Char | 否 |
设备名称 | 50 | Varchar | 否 |
入库时间(主键) | 默认值 | Datetime | 否 |
供应商 | 50 | Varchar | 否 |
供应商电话 | 18 | Char | 否 |
数量 | 10 | Char | 否 |
价格 | 10 | Char | 否 |
采购员 | 50 | Varchar | 否 |
storage_Out(设备出库表)
用于保存所有商品的出库信息,该表的结构如下图4-9所示。
名称 | 长度 | 数据类型 | 允许为空 |
设备号 | 10 | Char | 否 |
设备名称 | 50 | Varchar | 否 |
出库时间(主键) | 默认值 | Datetime | 否 |
使用部门 | 50 | Varchar | 否 |
数量 | 10 | Char | 否 |
经办人 | 50 | Varchar | 否 |
备注 | 100 | Varchar | 是 |
storage_Return(设备归还信息表)
用于保存所有货物的归还信息,该表的结构如下图4-10所示:
名称 | 长度 | 数据类型 | 允许为空 |
设备号 | 10 | Char | 否 |
设备名称 | 50 | Varchar | 否 |
还库时间(主键) | 默认值 | Datetime | 否 |
归还部门 | 50 | Varchar | 否 |
数量 | 10 | Char | 否 |
经办人 | 50 | Varchar | 否 |
facilityNum(货物信息表)
用于保存仓库中所有货物的信息。该表的结构如下图4-11所示:
名称 | 长度 | 数据类型 | 允许为空 |
设备号(主键) | 10 | Char | 否 |
设备名称 | 50 | Varchar | 否 |
库存量 | 10 | Char | 否 |
现有库存量 | 10 | Char | 否 |
最大库存量 | 10 | char | 否 |
Manage(登录人员信息表)
用于保存登录人员的相关信息其中包括权限。该表的结构如下图4-12所示:
名称 | 长度 | 数据类型 | 允许为空 |
Id(主键) | 10 | Char | 否 |
name | 20 | Varchar | 否 |
psw | 20 | Varchar | 否 |
biaozhi | 4 | int | 否 |
age | 4 | int | 否 |
sex | 2 | Char | 否 |
tel | 18 | Char | 否 |
date | 8 | Datetime | 否 |
bumen | 50 | varchar | 否 |
Bumen(部门信息表)
用于保存所有部门的相关信息。该表的结构如下图4-13所示:
名称 | 长度 | 数据类型 | 允许为空 |
部门(主键) | 50 | Varchar | 否 |
负责人 | 10 | Char | 否 |
人数 | 10 | Char | 否 |
办公电话 | 10 | Char | 否 |
4.4系统的结构设计
4.4.1 仓库管理作业流程设计
仓库管理作业流:
仓储管理作业流程,包括如下环节:签订仓储合同、验收货物、办理入库手续、货物保管、货物出库,如图4-14所示。
图4-14仓储管理作业流程
4.4.2系统的功能模块设计:
按照结构化的系统设计方法,将整个系统分解成相对的若干模块,通过对模块的设计和模块之间关系的协调来实现整个软件系统的功能,从而得到系统的功能模块结构图。初步设定的主要功能模块有:
登录模块、入库信息模块、出库信息模块、还库信息模块、数计统计模块、系统维护
模块、帮助模块、退出系统模块。
用户管理模块:登录、更改密码、权限设置、用户设置(对用户的相关属性进行设置)。
管理员管理模块:库存管理、入库管理、出库管理、还库管理、数据设计、系统维护、帮助、退出系统。
这次功能模块主要是完成,管理员、用户的基本功能管理,在以后的使用中,如果有其它需求则还可以添加一些其它的功能模块。
仓储管理系统的功能模块图,如图4-15所示
图4-15仓储管理系统的功能模块图
第五章 系统程序开发
本章介绍了系统的设计过程,控件的设计与实现,以及系统的页面设计与实现。
5.1系统界面的设计与实现
5.1.1系统登录设计
系统登录主要用于对进入库存管理的用户进行安全性检查,以防止非法用户进入该系统。在登录时,只有合法的用户才可以登录该系统,同时,系统还根据登录用户的级别,给予不同的操作权限。
1.窗体设计
新建一个Wingdows窗体,命名为LonIn.cs,他主要用于实现系统登录功能。该登陆界面主要两个权限设置,一个是管理员,一个是用户,不同的管理员ID号不能相同。
系统登录窗体运行结果如下图5-1所示:
图5-1为登录界面
图5-2用户名或密码错误界面
如果用户名或密码错误,将在数据库中查找,检测没有匹配的用户名和密码,则会出现此界面,如图5-2
登录成功后,管理员会进入仓库管理界面,同时,系统还根据登录用户的级别,给予不同的操作权限。主要有两个权限,一个是管理员登陆界面,一个是用户登录界面。
管理员登陆界面图5-3
图5-3管理员登陆界面
5.1.2 库存管理信息设计
库存管理信息界面包括三个子菜单:库存货物报表、库存货物修改与删除、库存货物查询。下面主要讲解一下:库存货物修改与删除如图5-4
1.界面设计
图5-4存货物修改与删除
2.代码设计
修改库存货物代码:
对仓库中的货物信息进行修改,点击“修改”按钮时产生响应,如
果六个textBox.Text中有一个为空,那么就不进行响应的修改。如果不为空则facilityNum
表中的设备相应信息。信息即为六个textBox.Text中的内容。
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text=="" || textBox2.Text=="" || textBox3.Text=="" || textBox4.Text=="" || textBox5.Text=="" || textBox6.Text=="")
{
MessageBox.Show("请先选取要修改的货物!");
}
else
{
string sql = string.Format(@"update facilityNum set 设备名称='{0}',单价='{1}',库存量='{2}',现有库存量='{3}',最大库存量='{4}' where 设备号='{5}'", textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox1.Text);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("修改成功!");
clear();
}
}
删除库存货物代码:
对仓库中的货物信息进行删除,点击“删除”按钮时产生响应,果六个textBox.Text中一个为空,那么就不进行相应的删除。如果不为空则facilityNum表中把设备号等于textBox1.Text的记录删除。
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "")
{
MessageBox.Show("请先选取要删除的货物!");
}
else
{
string sql = string.Format(@"delete facilityNum where 设备号='{0}'", textBox1.Text);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("删除成功!");
clear();
}
}
private void button4_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
5.1.3 入库管理信息设计
入库管理信息界面包括三个子菜单:入库货物报表、入库货物修改、入库货物查询、入库货物添加。下面主要讲解一下:入库货物报表如图5-5
1.界面设计
图5-5库货物报表
2.代码设计:
入库报表即为记录以时间为主键的所有的入库货物,首先在界面设计时应该添加一个crystalReportViewer1控件,用来显示报表内容。第一打开数据库连接获取报表路径,获取报表数据源,把报表数据源放到crystalReportViewer1中进行显示。主要代码如下:
private void InStoreFrm_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Server =.;database=CangKu;uid=sa;pwd=aa");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from storage_In", con);
DataSet ds = new DataSet();
da.Fill(ds, "storage_In");
string reportPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\\\")).LastIndexOf("\\\\"));
reportPath += @"\\InStore.rpt";
ReportDocument rd = new ReportDocument();
rd.Load(reportPath);
rd.SetDataSource(ds.Tables[0].DefaultView);
this.crystalReportViewer1.ReportSource = rd;
}
}
5.1.4 出库管理信息设计
出库管理信息界面包括三个子菜单:出库货物报表、出库货物修改、出库货物查询、出库货物添加、部门查询。下面主要讲解一下:出库货物修改表如图5-6
图5-6出库货物信息表修改
2.代码设计
主要代码如下:
出库货物主要是对库存中的货物进行出库记录,首先如果OutNnm表中如果没有这条记录,则添加一条此记录,如果存在此记录的话,则根据此设备号查询此设备出库的数量,在OutNnm表中在对设备的数量进行的增加。接着bumenborrow这条此记录则添加一条此记录,如果存在此记录的话,则根据此设备号,部门号查处此设备的量,在OutNnm表中在对应设备号的数量上,增加此设备的出库数量,并且在facility表中,查询该设备的数量,并作相应减少,在storage_out表中增加一条此设备的出库记录。
private void button2_Click(object sender, EventArgs e)
{
string sql3 = string.Format(@"select 数量 from bumenBorrow where 部门='{0}' and 设备号='{1}'", textBox4.Text, textBox1.Text);
con.Open();
SqlCommand cmd3 = new SqlCommand(sql3, con);
SqlDataReader read = cmd3.ExecuteReader();
while (read.Read())
{
num = read[0].ToString();
}
read.Close();
con.Close();
if (Convert.ToInt32(textBox5.Text) <= Convert.ToInt32(nownum))
{
try
{
string sql = string.Format(@"insert into Out_Num(设备号,设备名,数量)values('{0}','{1}','{2}')", textBox1.Text, textBox2.Text, textBox5.Text);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
con.Close();
string sql = string.Format(@"select 数量 from Out_Num where 设备号='{0}'", textBox1.Text);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader ds = cmd.ExecuteReader();
while (ds.Read())
{
n = ds[0].ToString();
}
ds.Close();
con.Close();
string sql1 = string.Format(@"update Out_Num set 数量='{0}' where 设备号='{1}'", Convert.ToString(Convert.ToInt32(textBox5.Text) + Convert.ToInt32(n)), textBox1.Text);
con.Open();
SqlCommand cmd1 = new SqlCommand(sql1, con);
cmd1.ExecuteNonQuery();
con.Close();
}
try
{
string sql = string.Format(@"insert into bumenBorrow(部门,设备号,设备名,数量)values('{0}','{1}','{2}','{3}')", textBox4.Text, textBox1.Text, textBox2.Text, textBox5.Text);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
con.Close();
string sql = string.Format(@"update bumenBorrow set 数量='{0}' where 部门='{1}' and 设备号='{2}'", Convert.ToString(Convert.ToInt32(textBox5.Text) + Convert.ToInt32(num)), textBox4.Text, textBox1.Text);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
string sql1 = string.Format(@"insert into storage_Out(设备号,设备名,出库时间,使用部门,数量,经办人,备注)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", textBox1.Text, textBox2.Text, DateTime.Now, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text);
con.Open();
SqlCommand cmd1 = new SqlCommand(sql1, con);
cmd1.ExecuteNonQuery();
con.Close();
string sql2 = string.Format(@"update facilityNum set 现有库存量='{0}' where 设备号='{1}'", Convert.ToString(Convert.ToInt32(nownum) - Convert.ToInt32(textBox5.Text)), textBox1.Text);
con.Open();
SqlCommand cmd2 = new SqlCommand(sql2, con);
cmd2.ExecuteNonQuery();
con.Close();
MessageBox.Show("借出成功!");
clear();
}
else
{
MessageBox.Show("对不起,库存不足!");
clear();
}
5.1.5 还库管理信息设计
还库管理信息界面包括三个子菜单:还库货物报表、还库货物修改、还库货物查询、出库货物添加。下面主要讲解一下:还库货物查询表如图5-7
1.界面设计
图5-7还库货物查询表
2.代码设计
主要代码如下:
还库货物查询,主要是对的已还的货物进行精确查询,在textBox1.Text或者textBox2.Text中输入设备号或设备名称进行精确查找。首先在storage_Return表中查询设备号或设备名称等于textBox1.Text或textBox2.Text的内容,查询结果送dataGridView1中显示出来。
private void button1_Click(object sender, EventArgs e)
{
string sql = string.Format(@"select * from storage_Return where 设备号='{0}' or 设备名='{1}'", textBox1.Text, textBox2.Text);
con.Open();
SqlDataAdapter ada = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
ada.Fill(ds, "storage_Return");
dataGridView1.DataSource = ds.Tables[0];
con.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
5.1.6 数据统计设计
库存管理信息界面包括二个子菜单:入库统计、出库统计。与入库统计表相似,不做详细介绍。
2.代码设计
与库存管理中的报表类似,在这不做详细讲解。
5.1.7 系统维护
系统维护信息界面包括三个子菜单:数据备份、数据还原、数据压缩。下面主要讲解一下:数据备份表如图5-8
1.界面设计
图5-8据备份表
5.1.8 帮助
帮助信息界面包括四个子菜单:更改密码、权限设置、用户管理、关于本系统。下面主要讲解一下:用户管理,用户管理主要是对登录界面人员的信息进行管理,可以对个人
信息进行修改,比如说:编号,性别,电话,年龄都可以进行相应的修改。
5.1.9 用户界面
用户信息界面包括四个子菜单:更改个人信息、借货记录查询、还货记录查询、库存信息查询、未换物品查询。设计过程与上述讲解的各表相似,在此也不做详细介绍。
第六章 系统测试
6.1 系统测试的含义
在精心控制的系统环境下,采用相应的技术手段,利用一组事先构好达到测试事例执行程序以发现程序中存在的问题,并确认系统功能,性能符合需求的一个综合过程。
6.2 测试的目标
(1)以最少的时间和人力找出软件中潜在的各种错误和缺陷。
(2)软件测试能够确认软件实现的功能和性能与用户需求说明的一致性。
(3)软件测试还能够收集到足够的测试结果为软件提供可靠性的评价。
6.3 测试说明
软件测试就是在既定的状况条件下,运行一个系统或组建,观察记录结果,并对其某些方面进行评价的过程,是以发现错误为目的而运行程序的过程。
软件测试有两种测试方法:
黑盒测试法:测试人员不考虑程序内部结构和处理过程,只在软件的接口处进行测试,根据系统需求检查程序是否满足系统要求。
白盒测试法: 测试人员要了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
6.4测试方案
测试方案编号 | 测试模块 | 说明 |
1 | 用户登录 | 输入用户名和密码,检查登录功能。 |
2 | 信息添加 | 相关信息添加,检查添加的信息 |
3 | 信息修改 | 相关信息修改,检查修改的信息 |
4 | 信息查询 | 根据相应的条件进行查询 |
5 | 系统维护与帮助及等模块 | 根据相应的条件,选择相应数据进行操作 |
6.5.1 单元测试用例
单元测试也称模块测试或程序测试,单元测试是对每一个模块单独进行测试的,验证模块的接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结果进行对照,还要对所有错误处路径进行测试.对源代码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作。
表6-1测试用例
6.5.2 测试报告
本系统经过两轮测试,共执行2用例,没有发现以下问题,解决以下问题,该系统质量
是可靠地。
轮次 | 发现问题 | 解决问题 | 解决方案 | 拒绝问题 | 遗留问题 |
1 | 添加数据产生异常 | 1 | int型强制转换成char | 0 | 0 |
2 | 添加数据产生异常 | 1 | 日期型数据添加到数据库的日期类型字段 | 0 | 0 |
第七章 结束语
一直以来人们使用传统人工的方式对仓储进行管理,这种管理方式的效率低、保密性差等。而且,如果时间一长,将产生大量的文件和数据,这于查找、更新和维护产品都带来了不少的困难。
计算机快速发展的今天,将这一技术应用于仓库管理已是势必所然。因此,通过采用C#的编程语言,以SQL2005作为后台数据库而开发了一个数据库管理系统。它能够存储一定量的仓储信息,并方便有效的进行仓库相应信息的数据操作与管理,如产品入库管理,产品出库管理,借出管理,初始库存设置,设置库存的初始值,库存的上下警戒线,进行盘库等。除此以外,还能够进行一定的信息存储与管理如查询产品入库情况、出库情况、当前库存情况等。最重要的是能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询等。
采用计算机仓库管理信息系统对仓储进行管理,使其更加科学化和现代化,它可以极大地提高仓库工作人员的工作效率,减少了以往入库、出库流程繁琐,杂乱,周期长的弊端。同时,还可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。为了加快仓储管理自动化的速度,提高仓储的管理业处 理效率,建立仓库管理系统已变得十分重要。
参考文献
[1] 耿肇英,周真真,耿燚编著. C#应用程序设计教程[M]. 北京:人民邮电出版社 2010
[2] 王小科, 王军, 赵会东等编著. C#项目开发案例全程实录[M]. 北京:清华大学 2011
[3] 匡松,张淮鑫主编. C#开发宝典[M]. 北京:中国铁道出版社 2010
[4] 刘丽霞, 李俊民等编著. C#范例开发大全[M]. 北京:清华大学出版社 2010
[5] 李春葆 ... [等] 编著. C#程序设计教程[M]. 北京:清华大学出版社 2010
[6] 王国胜, 刘攀, 尼春雨编著. C#基础与案例开发详解[M]. 北京:清华大学出版社 2009
[7] 黄国平等编著. C#实用开发参考大全[M]. 北京:电子工业出版社 2008.
[8] 李瑞旭主编. C#程序设计教程[M]. 北京:中国电力出版社 2009
[9] 邵顺增, 李琳主编. C#程序设计:Windows项目开发[M]. 北京:清华大学出版社 2008
[10] 唐政, 房大伟等编著. C#项目开发全程实录[M]. 北京:清华大学出版社 2008
[11] 张跃廷, 王小科, 张宏宇编著. C#程序开发范例宝典[M]. 北京:人民邮电出版社 2007
[12] 张跃廷, 韩阳, 张宏宇编著. C#数据库系统开发案例精选[M].北京:人民邮电出版社 2007
[13] 蒙祖强编著. SQL Server 2005应用开发大全[M]. 北京:清华大学出版社 2007
[14] 郑宇军, 杜家兴编著. SQL Server 2005+Visual C# 2005专业开发精解[M]. 北京:清华大学出版社2007
[15] 赵松涛 陈小龙编著 Visual Studio2005 Server2005应用系统开发 2007
[16]李永平,秦学礼. 仓库管理信息系统[M].北京:科学出版社,2003
[17]汪孝宜,胡海璐.信息系统开发实例精粹[M].电子工业出版社,2005
[18]王文信.仓储管理.厦门大学出版社,2006
[19]王之泰.新编现代物流学(第二版).首都经济贸易大学出版社,2008
[20]栋隆.仓库管理系统的关键七步.高等教育出版社, 2005
[21]覃利秋.仓库管理系统及其开发.茂名学院学报,2005
[22]戴伟辉,孙海.信息系统分析与设计.北京:高等教育出版社,2006
[23]陈佳.信息系统开发方法教程.清华大学出版社,1999
[24]葛世伦,代逸生.企业仓库管理信息系统开发的理论和方法.清华大学出版社,1996
[25]萨师煊,王珊主.数据库系统概论(第三版).北京:高等教育出版社,2000
[26] 黄梯云.仓库管理信息系统(第三版).北京:高等教育出版社,2004
致 谢
本学位论文是在我的指导老师刘斌教授的亲切关怀与细心指导下完成的。从课题的选择到论文的最终完成,刘老师始终都给予了细心的指导和不懈的支持,并且在耐心指导论文之余,刘老师仍不忘拓展我们的视野,让我们感受到了信息系统在当今时代的应用与发展前景。从课题的选择到课题的设计与完成刘老师都给予了最大的帮助与值得一提的是,刘老师宅心仁厚,闲静少关心。言,不慕荣利,对学生认真负责,在他的身上,我们可以感受到一个学者的严谨和务实,这些都让我们获益菲浅,并且将终生受用无穷。毕竟“经师易得,人师难求”,希望借此机会向刘老师表示最衷心的感谢! 此外,本文最终得以顺利完成,也是与信息院其他老师的帮助分不开的,虽然们没有直接参与我的论文指导,但在开题时也给我提供了不少的意见,提出了一系列可行性的建议,在此向他们表示深深的感谢!
感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意! 同时也感谢学院为我提供良好的做毕业设计的环境。后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。