资源描述
。
安徽工程大学 信息10 课程设计论文
仓库管理系统
目录
第一章 概述 3
1.1 项目背景: 3
1.2编写目的: 3
1.3软件定义: 4
第二章 需求分析 5
2.1系统流程图 5
2.2数据流图: 5
2.3.数据字典 9
2.4性能分析 15
第三章 概念结构设计 16
3.1 设计分E-R图 16
3.2 合并成E-R图 17
第四章 逻辑结构设计 18
4.1 表结构 19
第五章 软件功能设计 22
第六章 代码设计和界面设计 23
-可编辑修改-
第一章 概述
1.1 项目背景:
仓库在现实生活中用途十分广泛,各种商城、超市要利用仓库存放物资,药房、医院等要利用仓库存放药品,企业、工厂等要利用仓库存放原材料、生产成品,因此仓库的管理成了一项十分重要的工作。
人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企业的正常运作,造成恶劣的后果。随着信息技术的发展,办公自动化的普及,如何快速,高效,便捷的管理仓库受到了高度的关注;因此为了解决这个问题我们提供这个系统以满足仓库管理需求,本系统是基于超市仓库的管理系统。
本系统主要针对于商品管理信息、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。用户可以通过相应的模块,对仓库里的物品的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的管理仓库,查询各项相关信息,并能进行入库和出库操作等。
本系统会提高办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高现代化管理水平。企业面对市场竞争的巨大压力,要求企业创造新的利润源,这为企业如何配置有限资源,利用先进计算机技术不断开发出操作简便、界面友好、灵活、实用、安全,更具时效性的设备信息管理系统有着更高的要求。
1.2编写目的:
(一):
编写实用的仓库管理系统为仓库管理系统提供一个基础,方便企业的
商品管理。
(二):
完成课程设计
通过课程设计,达到以下目的:
1、根据教材上数据库设计部分的原理和方法,结合软件工程相关知识,能针对一些简单的数据库系统设计问题,进行必要的分析和设计。
2、巩固学生学习的数据库原理、程序设计语言等课程的基础知识,训练学生分析和解决数据库系统的实际问题的能力。
3、能查阅资料解决数据库技术方面的问题。
1.3软件定义:
企业仓库管理系统(Equipment Management System):是实现企业对货物的出、入库进行高效的管理。通过应用系统应能对商品基本信息进行管理。新的商品信息的入库、出库等操作也是其中的一部分。同时按照一定的条件查询、统计符合条件的商品信息。
1.4、开发环境
开发环境:Windows 8
辅助工具:Visual Studio 2012
数据库管理系统:SQL Server 2008
运行环境:Windows XP/Vista/7/8
开发模式:windows窗体程序
第二章 需求分析
说明:本系统要解决的问题是:一个小型通用的仓库管理系统是实现企业对库存商品出库、入库进行高效的管理。通过应用系统应能结合销售情况对库存商品进行录入、删除、修改等操作。按照一定的条件,查询、统计符合条件的商品信息;并且对查询、统计的结果有一定的输出。强调的是做什么,而不是怎么做。
2.1系统流程图
2.1.1系统流程图符号如图2.1所示:
处理
输入输出
联机存储
图2.1系统流程图符号说明
2.1.2本系统使用的总的系统流程图:
查询操作
出
库
处
理
入
库
处
理
仓库管理
系统存储文件
入库信息
身份验证
2.2数据流图:
2.2.1仓库管理系统数据流图符号说明如下:
外部环境 处理 数据存储 数据流
2.2.2顶层数据流图:
2.2.3一层数据流图:
_ P4
打印
_ P1
入库管理
商品入库信息1
商品入库信息 入库单 出库单
商品出库信息1___ P_2__
出库管理
管理员
商品出库信息
管理员
___ P_3
商品信息管理
商品信息
商品信息1 1
2.2.4、二层数据流图:
P1.1
核对供货信息
(1)入库管理细化:
管理员
供货单
反馈信息
满足的入库信息
_P1.2
入库
入库信息存储
库存信息表
入库信息
商品信息
入库信息1
入库单
P4
打印
管理员
P2.1
核对提货信息
(2)出库管理细化:
管理员
提货单
反馈信息
满足的出库信息
_P2.2
出库
出库信息存储
库存信息表
出库信息
商品信息
出库信息1
出库单
管理员
P4
打印
(3)商品信息管理的细化:
P3.1
查询出入库、库存
管理员
管理员
查询条件 查询结果
2.3数据字典
2.3.1数据流
数据流名称:入库信息
说明:即将装入仓库的商品的信息
数据流来源:采购入库信息表
数据流流向:仓库管理员
数据流组成:商品编号+商品名称+商品数量+商品进价+供应商编号+供应商名称+本次入库时间
数据流量:根据事物的需要,一般很频繁
数据流名称:出库信息
说明:销售后即将出库的商品的信息
数据流来源:销售出库信息表
数据流流向:仓库管理员
数据流组成:商品编号+商品名称+商品数量+商品进价+本次出库时间
数据流量:根据事物的需要,一般很频繁
数据流名称:商品信息
说明:对仓库中的所有货物的信息的统计
数据流来源:商品信息表
数据流流向:仓库管理员
数据流组成:商品=商品编号+商品名称+商品进价+商品售价+供应商编号
数据流名称:供货单
说明:供应商返回的所定货物的清单信息
数据流来源:供应商
数据流流向:加工1.1
数据流组成:商品编号+商品名称 +商品种类+货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地
数据流量:
数据流名称:正确的供货单
说明:供应商所发的货物信息是正确的
数据流来源:供应商
数据流流向:加工1.2
4数据流组成:商品编号+商品名称 +商品种类+货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地
数据流量:
数据流名称:不能满足的提货单
数据流别名:无
说明:仓库中的商品不能够提货
数据流来源:销售部门
数据流流向:销售部门
数据流组成:商品编号+商品名称+商品种类 +货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地+本次提货员编号+本次提货员姓名+本次提货时间
数据流名称:错误的供货单
数据流别名:无
说明:供应商所发的货物信息由错误的地方
数据流来源:供应商
数据流流向:供应商
数据流组成:商品编号+商品名称+商品种类 +货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地
数据流量;
数据流名称:提货单
数据流别名:无
说明:所需要提取的商品的信息
数据流来源:销售部门
数据流流向:加工6.1
数据流组成:商品编号+商品名称 +商品种类+货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地+本次提货员编号+本次提货员姓名+本次提货时间
数据流名称:可满足的提货单
数据流别名:无
说明:仓库中的商品能够提货
数据流来源:销售部门
数据流流向:加工6.2
数据流组成:商品编号+商品名称 +商品种类+货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地+本次提货员编号+本次提货员姓名+本次提货时间
2.3.2数据项
数据项名称:商品编号
数据项别名:商品号
说明:仓库中的商品的唯一标识
类型:字符型
长度:10
数据项名称:商品名称
数据项别名:商品名
说明:商品的名称
类型:字符型
长度:20
数据项名称:商品售价
数据项别名:售价
说明:无
类型:数值型
长度:10
数据项名称:商品进价
数据项别名:进价
说明:无
类型:数值型
长度:10
数据项名称:本次出货时间
数据项别名:出货时间
说明:货物出库的时间
类型:时间日期型
长度:8
数据项名称:本次提货员编号
数据项别名:采购员编号
说明:采购员的唯一标识
类型:字符型
长度:10
数据项名称:商品种类
数据项别名:类别
说明:货物的类型
类型:字符型
长度:10
数据项名称:本次入库时间
数据项别名:入库时间
说明:货物入库的时间
类型:时间日期型
长度:8
2.3.3数据文件
数据文件名称:入库信息表
说明:所有的商品的入库信息
数据文件组成:商品编号+商品名称 +商品种类+货物数量+商品进价+供应商编号+供应商名称+入库时间+商品产地
组织方式:按货物编号从小到大排序
存取方式:顺序
存取频率:随机
数据文件名称:出库信息表
说明:所有商品的出库信息
数据文件组成:商品编号+商品名称+商品种类 +货物数量+商品进价+供应商编号+供应商名称+发货时间+商品产地+本次提货员编号+本次提货员姓名+出库时间
组织方式:按货物编号从小到大排序
存取方式:顺序
存取频率:随机
数据文件名称:供应商信息表
说明:供应商的所有信息
数据文件组成:供应商编号+供应商名称+供应商地址+供应商电话
组织方式:按客户编号从小到大排序
存取方式:顺序
存取频率:随机
数据文件名称:商品信息表
说明:仓库中的所有商品的信息
数据文件组成:商品=商品编号+商品名称+商品种类+商品数量+商品进价+商品售价
组织方式:按货物编号从小到大排序
存取方式:顺序
存取频率:随机
数据文件名称:库存表
说明:仓库中的剩余的商品的信息
数据文件组成:商品编号+商品名称+商品产地+商品剩余量
组织方式:按货物编号从小到大排序
存取方式:顺序
存取频率:随机
数据文件名称:用户信息表
说明:管理仓库的用户信息
数据文件组成:用户=用户编号+用户姓名+用户密码+用户权限
组织方式:按用户编号从小到大排序
存取方式:顺序
存取频率:随机
2.3.4数据加工
数据加工名称:核对发货单
加工编号:1.1
说明:对比订单及发货单
输入数据流:订单,发货单
输出数据流:到货单核准
加工逻辑:将供应商的发货单进行比较,不一致时,将发货单返回给供应商,当一致时进行下个事物
数据加工名称:核对提货信息
加工编号:2.1
说明:检查提货单
输入数据流:货物信息表
输出数据流:可满足的提货单,不可满足的提货单
加工逻辑:将提货单与货物信息表,库存信息表进行对比,看能否满足,能满足,交给加工过程2.4.不能满足、则交给提货人员
数据加工名称:入库
加工编号:1.2
说明:货物的入库
输入数据流:订单,可满足的供货单
输出数据流:商品信息表,销售入库信息表
加工逻辑:按照供货单进行货物的入库库,完成后修改库存表,并在销售入库库信息表中添加记录
数据加工名称:出库
加工编号:2.2
说明:货物的出库
输入数据流:订单,可满足的订单
输出数据流:库存表,销售出库信息表
加工逻辑:按照订单进行货物的出库,完成后修改库存表,并在销售出库信息表中添加记录
数据加工名称:查询
加工编号:3.1
说明:对供应商,商品的信息进行查询
输入数据流:供应商编号,商品编号
输出数据流:商品信息,供应商信息
加工逻辑:按编号对商品和供应商查询,将查询的的结果显示出来
数据加工名称:打印
加工编号:4
说明:将所需信息打印
输入数据流:入库信息,出库信息,商品信息,供应商信息
输出数据流:所需要的清单
加工逻辑:
2.4性能分析
需实现许多性能特性,实用性、灵活性、可扩展性、易维护性、可靠性、安全保密性等等。
1、实用性
实用性是衡量一个应用系统好坏的重要指标。是否与业务紧密结合,是否具有严格的业务针对性,是系统成败的关键。
2、灵活性
灵活性可以达到更高效率、更佳界面直观的效果。
3、可扩展性
随着系统应用的普及和推广,系统功能的扩展将是不可避免的,因此,提高系统的可扩展性、可维护性是提高整个系统性能的必然要求。
4、易维护性
本系统采用多层架构设计,使系统结构更清楚,分工更明确,有利于后期的维护。
5、可靠性
社会向信息时代迅速发展的同时也有潜在危机,即对信息技术的依赖程度越高,系统失效可能造成的危害和影响也就越大。因此,采用良好的操作系统和数据库,确保数据的一致性和完整性,并使系统免受病毒感染,确保系统运行的可靠性具有重要意义。
6、安全保密性
整体的系统安全性是本系统中必须考虑的重点要求。在该系统设计中,安全、可靠将作为第一要素。同时,利用细分的权限管理,拒绝非法用户进入系统和合法用户的越权操作,避免系统遭到恶意破坏,防止系统数据被窃取和篡改。此外,还有良好的用户身份认证体制和灵活的密码更改模块;用户权限也可以通过管理员灵活修改。
第三章 概念结构设计
说明:概念设计是独立于任何一种数据模型的信息结构,采用自底乡上的方法,首先定义各局部应用的概念结构,然后集成起来,得到全局概念结构。描述概念模型最有力的工具是E-R模型。
3.1 设计分E-R图
1、仓库管理员 编号
仓库管理员
用户名
密码
权限
2. 商品
商品
生产日期
商品编号
商品名称
供应商编号
仓库
3 .仓库
仓库编号
仓库地址
仓库面积
供应商
4、供应商
供应商编号
供应商电话
供应商名称
3.2 合并成E-R图
消除以上各个分E-R图的属性冲突、命名冲突和结构冲突形成初步E-R图。在初步E-R图中,可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指有基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系统一破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步E-R图称为基本E-R图。
权限
编号
姓名
密码
仓库管理员
仓库地址
管理
n
仓库编号
1
仓库面积
仓库
入库时间
出库时间
操作员编号
入库
n n
出库
m
操作员编号
库存
入库数量
出库数量
库存数量
n
m m
商品名称
商品
生产日期
商品编号
m
供应商名称
供应商电话
供应商
供应商编号
供应
供应商编号
供应商
供应商电话
供应商名称
n
第四章 逻辑结构设计
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。把基本E-R图转换成关系模型。
4.1 表结构
1、用户Users
属性名
数据类型
可否为空
含义
完整性约束
Userno
Char(10)
否
用户编号
主属性
Username
Char(12)
否
用户名
UserPassword
Char(6)
否
登陆密码
6位字母或数字
Usercon
Char(2)
否
是否管理员
“是”、“否”之一
2、商品Goods
属性名
数据类型
可否为空
含义
完整性约束
Gno
Char(4)
否
商品编号
主属性
Gname
Char(20)
否
商品名称
Pno
Char(20)
否
供应商编号
外部码,级联
Gdate
Datetime
可
生产日期
3、仓库表 Storages
属性名
数据类型
可否为空
含义
完整性约束
Sno
Char(4)
否
仓库编号
主属性
Sdress
Char(20)
可
仓库地址
Sname
Char(20)
否
仓库名称
4、库存表 Storage
属性名
数据类型
可否为空
含义
完整性约束
Sno
Char(4)
否
仓库编号
主属性,外部码,级联
Gno
Char(4)
否
商品编号
主属性,外部码,级联
Gnum
int
否
库存数量
默认值为0
5、入库Inputstorage
属性名
数据类型
可否为空
含义
完整性约束
Sno
Char(4)
否
仓库编号
外部码,级联
Gno
Char(4)
否
商品编号
外部码,级联
Indate
Datetime
否
入库时间
主属性
Userno
Char(10)
否
用户编号
外部码,级联
Addnum
int
否
入库数量
6、出库Outstorage
属性名
数据类型
可否为空
含义
完整性约束
Sno
Char(4)
否
仓库编号
外部码,级联
Gno
Char(4)
否
商品编号
外部码,级联
Outdate
Datetime
否
出库时间
主属性
Userno
Char(4)
否
用户编号
外部码,级联
Denum
int
否
出库数量
7. 供应商 Provider
属性名
数据类型
可否为空
含义
完整性约束
Pno
Char(4)
否
供应商编号
主属性
Phone
Char(20)
可
供应商电话
Pname
Char(20)
否
供应商名称
1、用户信息——表Users
create table Users (
Userno char(10) primary key,
Username char(20) not null,
UserPassword char(20) not null,
Usercon char(2) not null check(Usercon in('是','否'))
)
2、商品信息——表Goods
create table Goods(
Gno char(4) primary key,
Gname char(20) not null,
Pno char(4) not null ,
Gdate datetime,
foreign key (Pno ) references Provider(Pno)
)
3、仓库表 Storages
create table Storages
(
Sno char (4) primary key,
Sname char (20) ,
Sdress char (20)
)
4、库存表——Storage
create table Storage
(
Gno char (4) primary key,
Sno char (4) not null,
Gnum int not null check(Gnum=0),
foreign key (Sno ) references Storages(Sno),
foreign key (Gno) references Goods(Gno)
)
5、入库信息——表Instorage
create table Instorage (
Gno char (4) not null ,
Indate datetime primary key ,
Userno char (10) not null,
Addnum int not null,
Sno char (4) not null,
foreign key (Gno) references Goods(Gno),
foreign key (Sno ) references Storages(Sno),
foreign key(Userno) references Users(Userno)
)
6、出库信息——表Outstorage
create table Outstorage (
Gno char (4) not null ,
Indate datetime primary key ,
Userno char (10) not null,
Denum int not null,
Sno char (4) not null,
foreign key (Gno) references Goods(Gno),
foreign key (Sno ) references Storages(Sno),
foreign key(Userno) references Users(Userno)
)
7供应商 Provider
create table Provider
(
Pno char (4) primary key,
Pname char (20) ,
Phone char (20)
)
第五章 软件功能设计
说明:本章主要描述软件的功能设计,具体的模块分析。
5.1功能设计
用户登录:供不同权限的用户登陆;
信息管理:可对商品进行增、删、改、查四类操作,完成对商品库存管理的功能;
库存管理:对商品入库、出库的管理,以及查询商品出入库记录的情况;
查询商品:此功能可对商品的基本信息进行管理;
用户管理:方便管理员增删一般用户,以及用户对自身信息的修改;
退出系统:当完成对 品处理的操作后,退出系统。
5.2系统功能结构
可得如下系统功能结构图:
仓库管理系统
用户登录
信息管理
库存管理
用户管理
新增
商品
删除商品
商品入库
查询商品
修改商品
商品出库
出入查询
增删用户
修改密码
退出系统
第六章 代码设计和界面设计
说明:本章主要展示代码和系统界面截图,对界面进行详细设计
6.1主要界面及其代码
登陆界面:
登陆处理代码:
6.2核心代码
1、用户信息——表Users
create table Users (
Userno char(10) primary key,
Username char(20) not null,
UserPassword char(20) not null,
Usercon char(2) not null check(Usercon in('是','否'))
)
2、商品信息——表Goods
create table Goods(
Gno char(4) primary key,
Gname char(20) not null,
Pno char(4) not null ,
Gdate datetime,
foreign key (Pno ) references Provider(Pno)
)
3、仓库表 Storages
create table Storages
(
Sno char (4) primary key,
Sname char (20) ,
Sdress char (20)
)
4、库存表——Storage
create table Storage
(
Gno char (4) primary key,
Sno char (4) not null,
Gnum int not null check(Gnum=0),
foreign key (Sno ) references Storages(Sno),
foreign key (Gno) references Goods(Gno)
)
5、入库信息——表Instorage
create table Instorage (
Gno char (4) not null ,
Indate datetime primary key ,
Userno char (10) not null,
Addnum int not null,
Sno char (4) not null,
foreign key (Gno) references Goods(Gno),
foreign key (Sno ) references Storages(Sno),
foreign key(Userno) references Users(Userno)
)
6、出库信息——表Outstorage
create table Outstorage (
Gno char (4) not null ,
Indate datetime primary key ,
Userno char (10) not null,
Denum int not null,
Sno char (4) not null,
foreign key (Gno) references Goods(Gno),
foreign key (Sno ) references Storages(Sno),
foreign key(Userno) references Users(Userno)
)
7供应商 Provider
create table Provider
(
Pno char (4) primary key,
Pname char (20) ,
Phone char (20)
)
数据库连接与处理类:
public class DBhelper
{
public static string connSting = "Data Source=(local);Database = WMS_Project;User ID = 李鹏; Pwd=123";
SqlConnection connection = new SqlConnection(connSting);
public bool Userselect(string usersname, string password, string IS)
{
string sql = String.Format("select count(*) from Users where Username='{0}'and UserPassword='{1}'and Usercon ='{2}'", usersname, password, IS);
try
{
connection.Open();
SqlCommand command = new SqlCommand(sql, connection);
int num = (int)command.ExecuteScalar();
if (num > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "操作数据库出错", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}
finally
{
connection.Close();
}
}
public bool SelectUser(string usersname, string password, string user)
{
string sql = String.Format("select Username from Users where Username='{0}'and UserPassword='{1}'and Usercon ='{2}'", usersname, password);
try
{
connection.Open();
SqlCommand command = new Sq
展开阅读全文