2024年2月22日发(作者:)
成绩:__________
《数据库原理及应用》
课程设计
课题 库存管理系统
班级 计算机2091班
组长 杨阳(28)
组员 杨阳
2011 年 12 月 8日—2011 年 12月 22日
1
库存管理系统说明书
1 绪论
库存管理系统可以全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。
2 需求说明
系统开发的总体任务是实现全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。
系统功能模块图
库存管理系统需要完成的功能主要有:
(1)基本信息管理
本信息包括客户信息、仓库信息、和用户信息。客户可以分为供应商和购货商两种类型。在产品入库时,需要提供供应商的信息;在产品出库和退货时,需要提供购货商的信息。仓库信息包括仓库编号、仓库名和仓库说明等信息。用户信息包括用户名、密码、员工姓名等信息。基本信息管理模块可以实现以下功能:
添加、修改、删除和查看客户信息;添加、修改、删除和查看仓库信息;添加、修改、删除和查看用户信息;
(2)产品信息管理功能模块可以实现以下功能:
添加产品类别、修改产品类别、删除产品类别、查看产品类别、添加产品信息、修改产品信息、删除产品信息、查询产品信息。
(3)库存操作管理
库存操作是由仓库管理员执行,就是把产品放入仓库或把产品从仓库中取出的操作,用专业术语来描述就是入库和出库。库存操作管理模块可以实现入库管理、出库管理和库存管理等功能;入库可以分为采购入库、生产入库、退货入库、退料入库等情况。采购入库指将从供应商处采购的产品入库;生产入库是指将企
业自己生产的产品入库;退货入库是售出的产品退货后,将退货产品入库;退料
2
入库是指用于本企业生产的原材料出库后没有完全使用,退回仓库。入库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息。出库可以分为销售出库、退货出库、用料出库等情况。销售出库是指把卖给购货商的产品出库;退货出库是指将本企业用于生产的原材料从仓库中提取到生产线。出库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和出库时间等信息。库存盘点是指对库存产品进行整理,纠正不准确的库存数据。由于人为操作等原因,系统中的库存数据与实际数据之间可能会存在误差。所以每隔一段时间就需要对库存进行盘点,从而保证库存数据的准确性。
(4)库存警示管理
库存警示是指对库存中接近或超过临界值的产品进行报警。在产品信息中,包括产品的合理数量范围和有效期限。产品数量小于合理数量的下限称为短线;产品数量大于合理数量的上限称为超储。产品出现短线、超储、接近或超过有效期限时都需报警。库存警示管理模块可以实现以下功能:库存产品数量报警;库存产品失效报警。
(5)统计查询管理功能
统计查询管理模块可以对库存产品进行各个类型的统计和查询,从而使用户能够全面的了解库存情况。库存出入库统计报表;库存产品流水线统计报表。对上述各功能进行集中、模块划分,得到系统功能模块图,如图2-1。
系统流程分析
系统流程就是用户在使用系统时的工作过程。系统的工作流程都是从用户登录模块开始,对用户身份进行权限验证,进而对于系统进行管理的。本系统的流程分析图如下:
3
库存管理系统
基
本信息
管理
产品信息管理
库存操作管理
库存警示管理
统计查询管理
客户信息管理
仓库信息管理
用户信息管理
产品类别管理
产品信息管理
入库操作管理
出库操作管理
库存盘点管理
数量报警管理
失效报警管理
产品出库统计表
库存产品统计表
图2-1 系统功能模块图
4
开始
重试
用户登陆
失败
失败超过3次
是
退出程序
企业库存管理模块
成功 用户管理模块
基本信息管理
读取用户类型
Admin用户
库存操作管理
普通用户
管理自己的用户信息
统计查询管理
库存警示管理
1、 管理自己的用户信息
2、 管理普通的用户信息
产品信息管理
3概念模型设计
从上面的信息中规定出的实体有客户实体、仓库实体、产品实体、库存产品实体、产品出库实体、产品入库实体等。由于此库存管理系统中以上的实体都是存在着三元关系,故客户、仓库、产品之间存在的三元关系的E-R下面的图1所示;仓库、产品、库存产品之间存在的三元关系的E-R下面的图2所示;客户、仓库、产品出库之间存在的三元关系的E-R下面的图3所示;客户、仓库、产品入库之间存在的三元关系的E-R下面的图3所示:
5
联系电话
仓库编号
客户编号
客户名称
仓库名称
客户
M
管理
N
仓库
客户类型
通信地址
P
联系人
参考价格
产品
计量单位
产品编号
有效期
仓库说明
产品名称
产品规格
产品类型编号
图3-1
产品名称
仓库名称
产品编号
产品类型编号
仓库编号
仓库
M
存储
N
产品
参考价格
仓库说明
产品入库单价
P
计量单位
库存产品
产品存储编号
生产日期
产品数量
图3-2
产品规格
6
联系电话
仓库编号
客户名称
客户编号
M
仓库名称
客户
管理
N
仓库
客户类型
通信地址
P
联系人
产品出库
出库产品数量 出库产品编号
仓库说明
出库日期
出库操作类型
图3-3
联系电话
仓库编号
客户名称
客户编号
M
仓库名称
经办人
客户
管理
N
仓库
客户类型
通信地址
P
联系人
仓库说明
入库产品单价
入库产品数量
产品出库
入库产品编号
生产日期
入库日期
入库操作类型
图3-4
7
经办人
4 逻辑设计
用户的需求具体体现在各种信息的提供、保存、修改、查询等方面,经调查和分析,针对一般库存管理系统的需求和对系统流程图的分析,设计成如下的逻辑结构。
(1)客户信息表Client
客户信息表Client用来保存客户信息。表Client的结构如表所示:
编号
1
2
3
4
5
6
7
8
9
字段名称
Cid
Cname
Ctype
Contact
Adderss
Postcode
Phone
Fax
Memo
数据结构
int
varchar(50)
tinyint
varchar(30)
varchar(50)
varchar(10)
varchar(30)
varchar(30)
varchar(100)
说明
客户编号
客户名称
客户类型
联系人
通信地址
邮政编码
联系电话
传真电话
备注信息
(2)仓库信息表Storehouse
编号
1
2
3
字段名称
Sid
Sname
Memo
数据结构
int
varchar(50)
varchar(100)
说明
仓库编号
仓库名称
仓库说明
(3)用户信息表Users
编号
1
2
3
字段名称
UserName
Pwd
User_type
数据结构
varchar(40)
varchar(40)
tinyint
说明
用户名
密码
用户类型
(4)产品类别表ProType
产品类别表ProType用来保存产品类别信息,表ProType的结构如图所示:
编号 字段名称 数据结构 说明
8
1
2
3
TypeId
TypeName
UpperId
int
varchar(50)
int
产品类别编号
产品类别名称
上级产品类别
(5)产品信息表Product
产品信息表Product用来保存产品的基本信息。表Product的结构如图所示:
编号
1
2
3
4
5
6
7
8
9
10
字段名称
Pid
Pname
TypeId
Ptyle
Punit
Pprice
Plow
Phigh
Valid
AlarmDays
数据结构
int
varchar(50)
int
varchar(50)
varchar(10)
Decimal(15,2)
int
int
Int
int
说明
产品编号
产品名称
产品类型编号
产品规格
计量单位
参考价格
产品数量下限
产品数量上限
有效期(以天为单位)
在到达有效期前几天发出警告
(6)入库操作信息表StoreIn
入库操作信息表StoreIn用来保存入库操作的基本信息。表StoreIn的结构如表所示:
编号
1
2
3
4
5
6
7
8
9
字段名称
SidType
Pid
MakeDate
Pprice
Pnum
Cid
Sid
EmpName
OptDate
数据结构
Varchar(20)
int
Char(10)
Decimal(15,2)
int
int
int
varchar(50)
Char(10)
说明
入库操作类型
入库产品编号
生产日期
入库产品单位
入库产品数量
客户编号
仓库编号
经办人
入库日期
(7)出库操作信息表TakeOut
出库操作信息表TakeOut用来保存出库操作的基本信息。表TakeOut的结构如图所示:
编号
1
2
3
4
字段名称
Ttype
Pid
Pprice
Pnum
9
数据结构
Varchar(20)
int
Decimal(15,2)
int
说明
出库操作类型
出库产品编号
出库产品单位
出库产品数量
5
6
7
8
Cid
Sid
EmpName
OptDate
int
int
varchar(50)
Char(10)
客户编号
仓库编号
经办人
出库日期
(8)库存产品信息表ProInStore
库存产品信息表ProInStore用来保存库存产品的基本信息如图所示:
编号
1
2
3
7
8
9
字段名称
SpId
Pid
Pprice
Pnum
MakeDate
Sid
数据结构
int
int
Decimal(15,2)
int
char(10)
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 SQL Server 2000.
(1)创建数据库
create database Store
go
(2)创建客户信息表 Client
create table Client
10
( 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,
11
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,
12
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
13
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,’产品’,’农副产品’)
Select * from ProType
(5)·查询信息(ProType)
7总结
通过本次设计我学习了如何使用SQL Server2000和VC++来创建数据库。此
14
库存管理系统缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率,适用于各大型商场和一些较大的物品管理企业。
参考文献
[1] 温贤发.Visual C++6.0数据库程序设计.北京:科学出版社,2004
[2] 董传银.Visual C++6.0数据库编程技术.北京:希望电子出版社,2004
[3] 启明工作室.Visual C++ +SQL Server数据库系统开发与实例.北京:人民邮电出版社,2004
15
发布者:admin,转转请注明出处:http://www.yc00.com/news/1708547762a1573286.html
评论列表(0条)