资源描述
成绩:__________
《数据库原理及应用》
课程设计
课题 库存管理系统
班级 计算机2091班
组长 杨阳(28)
组员 杨阳
2011 年 12 月 8日—2011 年12月 22日
库存管理系统说明书
1 绪论
库存管理系统可以全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。
2 需求说明
系统开发的总体任务是实现全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。
系统功能模块图
库存管理系统需要完成的功能主要有:
(1)基本信息管理
本信息包括客户信息、仓库信息、和用户信息。客户可以分为供应商和购货商两种类型。在产品入库时,需要提供供应商的信息;在产品出库和退货时,需要提供购货商的信息.仓库信息包括仓库编号、仓库名和仓库说明等信息。用户信息包括用户名、密码、员工姓名等信息。基本信息管理模块可以实现以下功能: 添加、修改、删除和查看客户信息;添加、修改、删除和查看仓库信息;添加、修改、删除和查看用户信息;
(2)产品信息管理功能模块可以实现以下功能:
添加产品类别、修改产品类别、删除产品类别、查看产品类别、添加产品信息、修改产品信息、删除产品信息、查询产品信息。
(3)库存操作管理
库存操作是由仓库管理员执行,就是把产品放入仓库或把产品从仓库中取出的操作,用专业术语来描述就是入库和出库.库存操作管理模块可以实现入库管理、出库管理和库存管理等功能;入库可以分为采购入库、生产入库、退货入库、退料入库等情况。采购入库指将从供应商处采购的产品入库;生产入库是指将企
业自己生产的产品入库;退货入库是售出的产品退货后,将退货产品入库;退料入库是指用于本企业生产的原材料出库后没有完全使用,退回仓库。入库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息。出库可以分为销售出库、退货出库、用料出库等情况.销售出库是指把卖给购货商的产品出库;退货出库是指将本企业用于生产的原材料从仓库中提取到生产线.出库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和出库时间等信息。库存盘点是指对库存产品进行整理,纠正不准确的库存数据.由于人为操作等原因,系统中的库存数据与实际数据之间可能会存在误差。所以每隔一段时间就需要对库存进行盘点,从而保证库存数据的准确性.
(4)库存警示管理
库存警示是指对库存中接近或超过临界值的产品进行报警.在产品信息中,包括产品的合理数量范围和有效期限。产品数量小于合理数量的下限称为短线;产品数量大于合理数量的上限称为超储.产品出现短线、超储、接近或超过有效期限时都需报警。库存警示管理模块可以实现以下功能:库存产品数量报警;库存产品失效报警。
(5)统计查询管理功能
统计查询管理模块可以对库存产品进行各个类型的统计和查询,从而使用户能够全面的了解库存情况。库存出入库统计报表;库存产品流水线统计报表。对上述各功能进行集中、模块划分,得到系统功能模块图,如图2—1。
系统流程分析
系统流程就是用户在使用系统时的工作过程.系统的工作流程都是从用户登录模块开始,对用户身份进行权限验证,进而对于系统进行管理的.本系统的流程分析图如下:
库存管理系统
库存操作管理
用户信息管理
基
本信息
管理
仓库信息管理
产品信息管理
产品类别管理
客户信息管理
产品信息管理
库存产品统计表
入库操作管理
出库操作管理
库存盘点管理
数量报警管理
失效报警管理
产品出库统计表
库存警示管理
统计查询管理
图2-1 系统功能模块图
用户登陆
开始
失败超过3次
读取用户类型
退出程序
1、 管理自己的用户信息
2、 管理普通的用户信息
管理自己的用户信息
基本信息管理
产品信息管理
库存操作管理
库存警示管理
统计查询管理
重试
失败
是
成功
Admin用户
普通用户
用户管理模块
企业库存管理模块
3概念模型设计
从上面的信息中规定出的实体有客户实体、仓库实体、产品实体、库存产品实体、产品出库实体、产品入库实体等.由于此库存管理系统中以上的实体都是存在着三元关系,故客户、仓库、产品之间存在的三元关系的E-R下面的图1所示;仓库、产品、库存产品之间存在的三元关系的E—R下面的图2所示;客户、仓库、产品出库之间存在的三元关系的E-R下面的图3所示;客户、仓库、产品入库之间存在的三元关系的E—R下面的图3所示:
客户
产品
仓库
管理
客户名称
客户编号
通信地址
联系人
客户类型
联系电话
仓库说明
仓库编号
仓库名称
产品编号
产品名称
产品类型编号
产品规格
计量单位
有效期
参考价格
M
N
P
图3-1
仓库
产品
仓库编号
仓库名称
仓库说明
产品名称
产品编号
产品类型编号
计量单位
产品规格
参考价格
存储
库存产品
产品入库单价
产品数量
产品存储编号
生产日期
M
N
P
图3—2
客户
产品出库
仓库
管理
客户名称
客户编号
通信地址
联系人
客户类型
联系电话
仓库说明
仓库编号
仓库名称
出库产品编号
经办人
出库操作类型
出库日期
出库产品数量
M
N
P
图3—3
客户
产品出库
仓库
管理
客户名称
客户编号
通信地址
联系人
客户类型
联系电话
仓库说明
仓库编号
仓库名称
入库产品编号
经办人
入库操作类型
入库日期
入库产品数量
M
N
P
入库产品单价
生产日期
图3—4
4 逻辑设计
用户的需求具体体现在各种信息的提供、保存、修改、查询等方面,经调查和分析,针对一般库存管理系统的需求和对系统流程图的分析,设计成如下的逻辑结构。
(1)客户信息表Client
客户信息表Client用来保存客户信息。表Client的结构如表所示:
编号
字段名称
数据结构
说明
1
Cid
int
客户编号
2
Cname
varchar(50)
客户名称
3
Ctype
tinyint
客户类型
4
Contact
varchar(30)
联系人
5
Adderss
varchar(50)
通信地址
6
Postcode
varchar(10)
邮政编码
7
Phone
varchar(30)
联系电话
8
Fax
varchar(30)
传真电话
9
Memo
varchar(100)
备注信息
(2)仓库信息表Storehouse
编号
字段名称
数据结构
说明
1
Sid
int
仓库编号
2
Sname
varchar(50)
仓库名称
3
Memo
varchar(100)
仓库说明
(3)用户信息表Users
编号
字段名称
数据结构
说明
1
UserName
varchar(40)
用户名
2
Pwd
varchar(40)
密码
3
User_type
tinyint
用户类型
(4)产品类别表ProType
产品类别表ProType用来保存产品类别信息,表ProType的结构如图所示:
编号
字段名称
数据结构
说明
1
TypeId
int
产品类别编号
2
TypeName
varchar(50)
产品类别名称
3
UpperId
int
上级产品类别
(5)产品信息表Product
产品信息表Product用来保存产品的基本信息.表Product的结构如图所示:
编号
字段名称
数据结构
说明
1
Pid
int
产品编号
2
Pname
varchar(50)
产品名称
3
TypeId
int
产品类型编号
4
Ptyle
varchar(50)
产品规格
5
Punit
varchar(10)
计量单位
6
Pprice
Decimal(15,2)
参考价格
7
Plow
int
产品数量下限
8
Phigh
int
产品数量上限
9
Valid
Int
有效期(以天为单位)
10
AlarmDays
int
在到达有效期前几天发出警告
(6)入库操作信息表StoreIn
入库操作信息表StoreIn用来保存入库操作的基本信息.表StoreIn的结构如表所示:
编号
字段名称
数据结构
说明
1
SidType
Varchar(20)
入库操作类型
2
Pid
int
入库产品编号
3
MakeDate
Char(10)
生产日期
4
Pprice
Decimal(15,2)
入库产品单位
5
Pnum
int
入库产品数量
6
Cid
int
客户编号
7
Sid
int
仓库编号
8
EmpName
varchar(50)
经办人
9
OptDate
Char(10)
入库日期
(7)出库操作信息表TakeOut
出库操作信息表TakeOut用来保存出库操作的基本信息.表TakeOut的结构如图所示:
编号
字段名称
数据结构
说明
1
Ttype
Varchar(20)
出库操作类型
2
Pid
int
出库产品编号
3
Pprice
Decimal(15,2)
出库产品单位
4
Pnum
int
出库产品数量
5
Cid
int
客户编号
6
Sid
int
仓库编号
7
EmpName
varchar(50)
经办人
8
OptDate
Char(10)
出库日期
(8)库存产品信息表ProInStore
库存产品信息表ProInStore用来保存库存产品的基本信息如图所示:
编号
字段名称
数据结构
说明
1
SpId
int
产品存储编号
2
Pid
int
产品编号
3
Pprice
Decimal(15,2)
产品入库单价
7
Pnum
int
产品数量
8
MakeDate
char(10)
生产日期
9
Sid
int
仓库编号
5 物理设计
1.为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:
(1)Client(Cid)
(2)Product(Pid)
(3)Storehouse(Sid)
(4)ProInStore(SpId)
(5)ProType(TypeId)
(6)Users(UserName)
(7)StoreIn(Cid,Pid,Sid)
(8)TakeOut(Cid,Pid,Sid)
2。用SQL实现设计
实现该设计的环境为Windows 2000 SQLServer 2000.
(1)创建数据库
create database Store
go
(2)创建客户信息表 Client
create table Client
( Cid int primary key CLUSTERED,
Cname varchar(50) not null,
Ctype tinyint,
Contact varchar(30),
Address varchar(50),
Postcode varchar(10),
Phone varchar(30),
Fax varchar(30),
Memo varchar(100)
)
Go
(3)创建仓库信息表Storehous
create table Storehouse
( Sid int primary key CLUSTERED,
Sname varchar(50) not null,
Memo varchar(100)
)
Go
(4)创建用户信息表Users
create table Users
( UserName varchar(40) primary key CLUSTERED,
Pwd varchar(40) not null,
User_Type tinyint not null
)
Go
(5)创建产品类别表ProType
create table ProType
( TypeId int primary key CLUSTERED,
TypeName varchar(50) not null,
UpperId int
)
Go
(6)创建产品信息表Product
create table Product
( Pid int primary key CLUSTERED,
Pname varchar(50) not null,
TypeId int,
Pstyle varchar(50),
Punit varchar(10),
Pprice decimal(15,2),
Plow int,
Phigh int,
Valid int,
AlarmDays int
)
Go
(7)创建入库操作信息表StoreIn
create table StoreIn
( SiType varchar(20),
Pid int,
MakeDate char(10),
Pprice decimal(15,2),
Pnum int,
Cid int,
Sid int,
EmpName varchar(50),
OptDate char(10),
CONSTRAINT PK_STOREIN PRIMARY KEY ClUSTERED(Cid,Pid,Sid),
CONSTRAINT FK_STOREIN_CLIENT FOREIGN KEY(Cid)
REFERENCES Client(Cid),
CONSTRAINT FK_STOREIN_PRODUCT FOREIGN KEY(Pid)
REFERENCES Product(Pid),
CONSTRAINT FK_STOREIN_STORE FOREIGN KEY(Sid)
REFERENCES Storehouse(Sid))
Go
(8)创建出库操作信息表TakeOut
create table TakeOut
( Ttype varchar(20) not null,
Pid int,
Pprice decimal(15,2),
Pnum int,
Cid int,
Sid int,
EmpName varchar(50),
OptDate char(20),
CONSTRAINT PK_TAKEOUOT PRIMARY KEY ClUSTERED(Cid,Pid,Sid),
CONSTRAINT FK_TAKEOUT_CLIENT FOREIGN KEY(Cid)
REFERENCES Client(Cid),
CONSTRAINT FK_TAKEOUT_PRODUCT FOREIGN KEY(Pid)
REFERENCES Product(Pid),
CONSTRAINT FK_TAKEOUT_STORE FOREIGN KEY(Sid)
REFERENCES Storehouse(Sid))
(9)创建库存产品信息表ProInStore
create table ProInStore
( SpId int primary key CLUSTERED,
Pid int not null,
Pprice decimal(15,2),
Pnum int,
MakeDate char(10),
Sid int
)
Go
(10)创建存储过程实现插入、删除、更新
//存储过程实现客户信息表 Client的信息插入
CREATE proc Client_insert
@Cname varchar(50),
@Ctype tinyint,
@Contact varchar(30),
@Address varchar(50),
@Postcode varchar(10),
@Phone varchar(30),
@Fax varchar(30),
@Memo varchar(100)
as
insert into Client values(@Cname,@Ctype,@Contact,@Address,@Postcode,@Phone,@Fax,@Memo)
GO
//存储过程实现客户信息表 Client的信息删除
create proc Client_Delete
@Cname varchar(50),
as
delete from Client where Cname=@Cname
Go
//存储过程实现客户信息表 Client的信息修改
create proc Client_Update
@Cname varchar(50),
@Contact varchar(30),
as
update Client set Cname=@Cname where Contact=@Contact
go
//存储过程实现用户信息表Users的信息插入
CREATE proc Users_insert
@UserName varchar(40),
@Pwd varchar(40),
@User_Type tinyint
as
insert into Users values(@UserName,@Pwd,@User_Type)
GO
//存储过程实现用户信息表Users的信息删除
create proc Users_Delete
@UserName varchar(40),
as
delete from Users where UserName=@UserName
Go
//存储过程实现用户信息表Users的信息修改
create proc Users_Update
@UserName varchar(40),
@Pwd varchar(40),
as
update Users set UserName=@UserName where Pwd=@Pwd
go
6 实验数据示例
对用户的操作
(1)注册(register)
INSERT INTO Users( UserName, Pwd,User_Type)
VALUES(’A’,888888,1);
select * from Users
在登记操作后,用户得到一个唯一的UserName,可以根据这个
UserName来查询和修改大部分的数据。
(2)注销(unregister)
DELETE Users
WHERE(UserName='A');
(3)修改个人信息(update)
UPDATE Users Set(UserName=B,Pwd=1,User_Type =1)
WHERE(UserName=A);
(4)插入信息(ProType)
Insert into ProType values(23,'产品’,’农副产品’)
(5)·查询信息(ProType)
Select * from ProType
7总结
通过本次设计我学习了如何使用SQL Server2000和VC++来创建数据库.此库存管理系统缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率,适用于各大型商场和一些较大的物品管理企业。
参考文献
[1] 温贤发.Visual C++6。0数据库程序设计.北京:科学出版社,2004
[2] 董传银.Visual C++6。0数据库编程技术.北京:希望电子出版社,2004
[3] 启明工作室.Visual C++ +SQL Server数据库系统开发与实例.北京:人民邮电出版社,2004
13
展开阅读全文