数据库课程设计库存管理系统.docx
- 文档编号:28371004
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:19
- 大小:195.35KB
数据库课程设计库存管理系统.docx
《数据库课程设计库存管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计库存管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课程设计库存管理系统
成绩:
__________
《数据库原理及应用》
课程设计
课题库存管理系统
班级计算机2091班
组长杨阳(28)
组员杨阳
2011年12月8日—2011年12月22日
库存管理系统说明书
1绪论
库存管理系统可以全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。
2需求说明
系统开发的总体任务是实现全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。
系统功能模块图
库存管理系统需要完成的功能主要有:
(1)基本信息管理
本信息包括客户信息、仓库信息、和用户信息。
客户可以分为供应商和购货商两种类型.在产品入库时,需要提供供应商的信息;在产品出库和退货时,需要提供购货商的信息.仓库信息包括仓库编号、仓库名和仓库说明等信息。
用户信息包括用户名、密码、员工姓名等信息。
基本信息管理模块可以实现以下功能:
添加、修改、删除和查看客户信息;添加、修改、删除和查看仓库信息;添加、修改、删除和查看用户信息;
(2)产品信息管理功能模块可以实现以下功能:
添加产品类别、修改产品类别、删除产品类别、查看产品类别、添加产品信息、修改产品信息、删除产品信息、查询产品信息。
(3)库存操作管理
库存操作是由仓库管理员执行,就是把产品放入仓库或把产品从仓库中取出的操作,用专业术语来描述就是入库和出库。
库存操作管理模块可以实现入库管理、出库管理和库存管理等功能;入库可以分为采购入库、生产入库、退货入库、退料入库等情况。
采购入库指将从供应商处采购的产品入库;生产入库是指将企
业自己生产的产品入库;退货入库是售出的产品退货后,将退货产品入库;退料入库是指用于本企业生产的原材料出库后没有完全使用,退回仓库。
入库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息。
出库可以分为销售出库、退货出库、用料出库等情况。
销售出库是指把卖给购货商的产品出库;退货出库是指将本企业用于生产的原材料从仓库中提取到生产线。
出库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和出库时间等信息。
库存盘点是指对库存产品进行整理,纠正不准确的库存数据.由于人为操作等原因,系统中的库存数据与实际数据之间可能会存在误差。
所以每隔一段时间就需要对库存进行盘点,从而保证库存数据的准确性。
(4)库存警示管理
库存警示是指对库存中接近或超过临界值的产品进行报警.在产品信息中,包括产品的合理数量范围和有效期限。
产品数量小于合理数量的下限称为短线;产品数量大于合理数量的上限称为超储。
产品出现短线、超储、接近或超过有效期限时都需报警。
库存警示管理模块可以实现以下功能:
库存产品数量报警;库存产品失效报警.
(5)统计查询管理功能
统计查询管理模块可以对库存产品进行各个类型的统计和查询,从而使用户能够全面的了解库存情况。
库存出入库统计报表;库存产品流水线统计报表。
对上述各功能进行集中、模块划分,得到系统功能模块图,如图2—1.
系统流程分析
系统流程就是用户在使用系统时的工作过程。
系统的工作流程都是从用户登录模块开始,对用户身份进行权限验证,进而对于系统进行管理的.本系统的流程分析图如下:
图2-1系统功能模块图
3概念模型设计
从上面的信息中规定出的实体有客户实体、仓库实体、产品实体、库存产品实体、产品出库实体、产品入库实体等。
由于此库存管理系统中以上的实体都是存在着三元关系,故客户、仓库、产品之间存在的三元关系的E-R下面的图1所示;仓库、产品、库存产品之间存在的三元关系的E-R下面的图2所示;客户、仓库、产品出库之间存在的三元关系的E—R下面的图3所示;客户、仓库、产品入库之间存在的三元关系的E—R下面的图3所示:
图3—1
图3—2
图3—3
图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实现设计
实现该设计的环境为Windows2000SQLServer2000.
(1)创建数据库
createdatabaseStore
go
(2)创建客户信息表Client
createtableClient
(CidintprimarykeyCLUSTERED,
Cnamevarchar(50)notnull,
Ctypetinyint,
Contactvarchar(30),
Addressvarchar(50),
Postcodevarchar(10),
Phonevarchar(30),
Faxvarchar(30),
Memovarchar(100)
)
Go
(3)创建仓库信息表Storehous
createtableStorehouse
(SidintprimarykeyCLUSTERED,
Snamevarchar(50)notnull,
Memovarchar(100)
)
Go
(4)创建用户信息表Users
createtableUsers
(UserNamevarchar(40)primarykeyCLUSTERED,
Pwdvarchar(40)notnull,
User_Typetinyintnotnull
)
Go
(5)创建产品类别表ProType
createtableProType
(TypeIdintprimarykeyCLUSTERED,
TypeNamevarchar(50)notnull,
UpperIdint
)
Go
(6)创建产品信息表Product
createtableProduct
(PidintprimarykeyCLUSTERED,
Pnamevarchar(50)notnull,
TypeIdint,
Pstylevarchar(50),
Punitvarchar(10),
Ppricedecimal(15,2),
Plowint,
Phighint,
Validint,
AlarmDaysint
)
Go
(7)创建入库操作信息表StoreIn
createtableStoreIn
(SiTypevarchar(20),
Pidint,
MakeDatechar(10),
Ppricedecimal(15,2),
Pnumint,
Cidint,
Sidint,
EmpNamevarchar(50),
OptDatechar(10),
CONSTRAINTPK_STOREINPRIMARYKEYClUSTERED(Cid,Pid,Sid),
CONSTRAINTFK_STOREIN_CLIENTFOREIGNKEY(Cid)
REFERENCESClient(Cid),
CONSTRAINTFK_STOREIN_PRODUCTFOREIGNKEY(Pid)
REFERENCESProduct(Pid),
CONSTRAINTFK_STOREIN_STOREFOREIGNKEY(Sid)
REFERENCESStorehouse(Sid))
Go
(8)创建出库操作信息表TakeOut
createtableTakeOut
(Ttypevarchar(20)notnull,
Pidint,
Ppricedecimal(15,2),
Pnumint,
Cidint,
Sidint,
EmpNamevarchar(50),
OptDatechar(20),
CONSTRAINTPK_TAKEOUOTPRIMARYKEYClUSTERED(Cid,Pid,Sid),
CONSTRAINTFK_TAKEOUT_CLIENTFOREIGNKEY(Cid)
REFERENCESClient(Cid),
CONSTRAINTFK_TAKEOUT_PRODUCTFOREIGNKEY(Pid)
REFERENCESProduct(Pid),
CONSTRAINTFK_TAKEOUT_STOREFOREIGNKEY(Sid)
REFERENCESStorehouse(Sid))
(9)创建库存产品信息表ProInStore
createtableProInStore
(SpIdintprimarykeyCLUSTERED,
Pidintnotnull,
Ppricedecimal(15,2),
Pnumint,
MakeDatechar(10),
Sidint
)
Go
(10)创建存储过程实现插入、删除、更新
//存储过程实现客户信息表Client的信息插入
CREATEprocClient_insert
@Cnamevarchar(50),
@Ctypetinyint,
@Contactvarchar(30),
@Addressvarchar(50),
@Postcodevarchar(10),
@Phonevarchar(30),
@Faxvarchar(30),
@Memovarchar(100)
as
insertintoClientvalues(@Cname,@Ctype,@Contact,@Address,@Postcode,@Phone,@Fax,@Memo)
GO
//存储过程实现客户信息表Client的信息删除
createprocClient_Delete
@Cnamevarchar(50),
as
deletefromClientwhereCname=@Cname
Go
//存储过程实现客户信息表Client的信息修改
createprocClient_Update
@Cnamevarchar(50),
@Contactvarchar(30),
as
updateClientsetCname=@CnamewhereContact=@Contact
go
//存储过程实现用户信息表Users的信息插入
CREATEprocUsers_insert
@UserNamevarchar(40),
@Pwdvarchar(40),
@User_Typetinyint
as
insertintoUsersvalues(@UserName,@Pwd,@User_Type)
GO
//存储过程实现用户信息表Users的信息删除
createprocUsers_Delete
@UserNamevarchar(40),
as
deletefromUserswhereUserName=@UserName
Go
//存储过程实现用户信息表Users的信息修改
createprocUsers_Update
@UserNamevarchar(40),
@Pwdvarchar(40),
as
updateUserssetUserName=@UserNamewherePwd=@Pwd
go
6实验数据示例
对用户的操作
(1)注册(register)
INSERTINTOUsers(UserName,Pwd,User_Type)
VALUES(’A',888888,1);
select*fromUsers
在登记操作后,用户得到一个唯一的UserName,可以根据这个
UserName来查询和修改大部分的数据.
(2)注销(unregister)
DELETEUsers
WHERE(UserName='A’);
(3)修改个人信息(update)
UPDATEUsersSet(UserName=B,Pwd=1,User_Type=1)
WHERE(UserName=A);
(4)插入信息(ProType)
InsertintoProTypevalues(23,’产品','农副产品')
(5)·查询信息(ProType)
Select*fromProType
7总结
通过本次设计我学习了如何使用SQLServer2000和VC++来创建数据库.此库存管理系统缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率,适用于各大型商场和一些较大的物品管理企业.
参考文献
[1]温贤发.VisualC++6.0数据库程序设计.北京:
科学出版社,2004
[2]董传银.VisualC++6。
0数据库编程技术.北京:
希望电子出版社,2004
[3]启明工作室.VisualC+++SQLServer数据库系统开发与实例.北京:
人民邮电出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 库存 管理 系统