资源描述
安徽工程大学 信息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
数据库管理系统:SQL Server
运行环境: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 SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while(reader.Read( ))
{
user=rea
展开阅读全文