资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
《数据库原理及应用》
实验报告
( — 第 1学期)
题 目: 仓库管理系统的设计______
专 业: 计算机科学与技术( 嵌入式)
班 级: 13计算机( 2) 班______
姓名学号: 何雨虹 _____
黄成旺 ___
林国凤 _____
庄海隆 ___
指导教师: 柳玲
成 绩: ___________________________
计算机科学与技术系
年 1 月 7 日
目录
一、 需求分析 3
1.1系统需求分析 3
1.2系统功能基本要求和功能描述 3
1.2.1基本信息管理 3
1.2.2产品信息管理 3
1.2.3仓库管理操作 3
1.2.4仓库警示管理 3
1.2.5查询管理功能 3
1.3系统功能模型 4
1.4数据分析 4
1.4.1数据流图 4
1.4.2数据字典 5
二、 数据库概念结构设计 6
三、 数据库逻辑结构设计 10
四、 数据库物理结构设计 12
五、 数据库的实施 15
六、 数据库的运行 17
参考文献 25
附录1仓库管理系统部分程序代码 25
仓库管理系统的设计
一、 需求分析
1.1系统需求分析
仓库管理系统主要用于仓库货品信息的管理, 系统包括仓库管理、 入库、 出库和一些统计查询等几部分组成。仓库管理系统实现对货品信息的管理和总体的统计等, 仓库信息, 供货单位和操作员信息的查看及维护。仓库管理人员能够浏览、 查询、 添加、 删除等产品的基本信息。
⑴ 产品入库管理, 能够填写入库单, 确认产品入库;
⑵ 产品出库管理, 能够填写出库单, 确认产品出库;
⑶ 借出管理, 凭借条借出, 然后能够还库;
⑷ 初始库存设置, 设置库存的初始值, 库存的上下警戒限;
⑸ 能够进行盘库, 反映每月、 年的库存情况;
⑹ 能够查询产品入库情况、 出库情况、 当前库存情况, 能够按出库单、 入库单, 产品、 时间进行查询;
1.2 系统功能基本要求和功能描述
1.2.1 基本信息管理
基本信息包括客户信息、 仓库信息和操作员信息。客户能够分为供应商和购货商两种类型。在产品入库时, 需要提供供应商的信息; 在产品出库和退货时, 需要提供购货商的信息。
基本信息管理模块能够实现以下功能:
⑴ 添加、 修改、 删除和查看客户信息;
⑵ 添加、 修改、 删除和查看仓库信息;
⑶ 添加、 修改、 删除和查看操作员信息。
1.2.2 产品信息管理
产品信息管理模块能够实现以下功能:
⑴ 添加产品信息; ⑵ 修改产品信息; ⑶ 删除产品信息; ⑷ 查询产品信息;
1.2.3 仓库管理操作
进行入库和出库操作。入库操作需要记录相关的产品信息、 仓库信息、 客户信息、 入库时间等信息; 出库操作需要记录相关的产品信息、 仓库信息、 客户信息、 出库时间等信息。
1.2.4仓库警示管理
仓库警示管理模块能够实现仓库产品数量报警和仓库容量报警。
1.2.5查询管理功能
查询管理模块能够对仓库产品进行各种类型的查询, 从而能够全面的了解仓库情况。
1.3系统功能模型
根据以上所介绍的功能, 能够设计出系统的总体功能模块, 如图1-1所示。
仓库管理系统
基本信息管理
操作员登陆
产品信息管理
仓库警示管理
仓库管理操作
客户信息管理
查询产品信息
入库操作管路
修改产品信息
删除产品信息
添加产品信息
仓库信息管理
出库操作管理
查询仓库信息
图1-1 仓库管理系统功能模块示意图
查询管理操作
操作员信息管理
查询产品信息
查询客户信息
填写入库单
修改客户信息
添加客户信息
填写出库单
删除客户信息
产品数量报警
仓库容量报警
查询客户信息
1.4 数据分析
1.4.1 数据流图
经过进行系统调查,了解用户需求、 分析应用软件系统的功能需求。总结出了系统逻辑模型,即系统业务流程图、 数据流图。如 图1-2和图1-3所示。
仓库管理系统
产品
操作员
客户
仓库
入库
出库
查询操作
返回结果
进货
出货
供货
购货
图1-2 系统业务流程图
产品
操作员
注册
返回信息
产品信息管理
仓库信息管理
产品信息表
入库表
P1
P2
D1
D2
基本信息管理
P4
管理
返回信息
D5
仓库信息
D4
操作员信息
仓库信息管理
P3
查询
返回信息
出库表
D3
库存表
D3
仓库
存储
返回信息
入库
添加填表
返回信息
图1-3 仓库管理系统数据流图
1.4.2 数据字典
名字: 产品
别名:
描述: 唯一的标识一个产品的信息集合
定义: 产品=产品号+产品名+供应商号+类别+产品单价+产品数量
位置: 存储在数据库
名字: 仓库
别名:
描述: 唯一的标识一个仓库的信息集合
定义: 仓库=仓库号+仓库名+剩余容量+总容量
位置: 存储在数据库
名字: 客户
别名:
描述: 唯一的标识一个客户特征的信息集合
定义: 客户=客户号+客户名+地址+电话 +客户类型
位置: 存储在数据库
名字: 操作员
别名:
描述: 唯一的标识一个职工特征的信息集合
定义: 操作员=操作员号+操作员名+密码
位置: 存储在数据库
名字: 库存表
别名:
描述: 仓库存储物资的情况
定义: 库存表=仓库号+产品号+产品总数量
位置: 存储在数据库
名字: 入库表
别名:
描述: 物资的入库信息
定义: 入库表=产品号+仓库号+入库时间+数量
位置: 存储在数据库
名字: 出库表
别名:
描述: 物资的出库信息
定义: 出库表=产品号+仓库号+出库时间+数量
位置: 存储在数据库
二、 数据库概念结构设计
经考察和分析,本案例客房管理系统包括以下实体: 客户实体、 客房实体、 操作员实体、 结算账单实体,它们的E-R图如以下所示。
产品
产品名
供应商号
产品单价
产品数量
产品号
图2-1产品及其属性
库存表
仓库号
产品号
产品总数量
图2-2库存表及其属性
入库表
仓库号
产品号
入库时间
数量
图2-3入库表及其属性
出库表
仓库号
产品号
出库时间
数量
图2-4出库表及其属性
仓库
仓库号
仓库名
剩余容量
总容量
图2-5仓库及其属性
客户
客户号
客户名
客户类型
联系地址
联系电话
邮政编号
客户备注
图2-6客户及其属性
操作员
操作员编号
操作员名
密码
图2-7操作员及其属性
产品
供应商
入库表
仓库
操作员
购货商
出库表
管理
提供
取出
存储
返回
库存表
图2-8仓库管理系统E-R图
n
1
1
m
n
1
n
n
1
n
三、 数据库逻辑结构设计
根据E-R图, 数据库仓库管理系统包含以下8个表: 客户信息表”客户”、 仓库信息表”仓库”、 操作员信息表”操作员”、 产品类别表”产品类别”、 产品信息表”产品”、 入库操作信息表”入库”、 出库操作信息表”出库”和库存产品信息表”库存”。
1. 客户信息表”客户”
客户信息表”客户”主要是用来保存客户信息, 表”客户”结构如图表2-1所示。
表2-1 客户信息表”客户”
编号
字段名称
数据结构
说 明
1
客户号
Int
客户编号
2
客户名
varchar(50)
客户名称
3
客户类型
tinyint
客户类型, 供应商、 购货商
4
联系地址
varchar(50)
客户的联系地址
5
邮政编号
varchar(10)
邮政编码
6
联系电话
varchar(30)
联系电话
7
备注
varchar(100)
备注信息
2. 仓库信息表”仓库”
仓库信息表”仓库”用来保存仓库信息, 表”仓库”的结构如表2-2所示。
表2-2 仓库信息表”仓库”
编号
字段名称
数据结构
说 明
1
仓库号
int
仓库编号
2
仓库名
varchar(50)
仓库名称
3
仓库备注
varchar(100)
仓库说明
3. 操作员表”操作员”
操作员表”操作员”用来保存用户信息, 表”操作员”的结构如表2-3表示。
表2-3操作员信息表”操作员”
编号
字段名称
数据结构
说 明
1
操作员号
Int
操作员的编号
2
操作员名
varchar(40)
用户名
3
密码
varchar(40)
密码
4. 产品信息表”产品”
产品信息表”产品”用来保存产品的基本信息, 表”产品”的结构如表2-5表示。
表2-5产品信息表”产品”
编号
字段名称
数据结构
说 明
1
产品号
int
产品编号
2
产品名
varchar(50)
产品名称
3
产品数量
int
产品的数量
4
产品单价
Varchar(20)
产品的每单位价格
5
客户号
int
供应商编号
5. 入库操作信息表”入库表”
入库操作信息表”入库表”用来保存入库操作的基本信息, 表”入库表”的结构如表2-6表示。
表2-6入库操作信息表”入库表”
编号
字段名称
数据结构
说 明
1
产品号
int
入库产品编号
2
入库单价
Varchar(20)
入库产品单价
3
入库数量
int
入库产品数量
4
客户号
int
客户编号
5
仓库号
int
仓库编号
6
入库时间
char(10)
入库日期
6. 出库操作信息表”出库表”
出库操作信息表”出库表”用来保存出库操作的基本信息。表”出库表”的结构如表2-7表示。
表2-7 出库操作信息表”出库表”
编号
字段名称
数据结构
说 明
1
产品号
int
出库产品编号
2
出库单价
Varchar(20)
出库产品单价
3
出库数量
int
出库产品数量
4
客户号
int
客户编号
5
仓库号
int
仓库编号
6
出库时间
char(20)
出库日期
7. 库存产品信息表”库存表”
库存产品信息表”库存表”用来保存库存产品的基本信息, 表”库存表”的结构如表2-8表示。
表2-8库存产品信息表”库存”e
编号
字段名称
数据结构
说 明
1
产品号
int
产品编号
2
入库价格
Varchar(20)
产品入库单价
3
现存数量
Int
产品数量
4
仓库号
Int
仓库编号
四、 数据库物理结构设计
在进行了数据表的逻辑结构定义后,需要为每个数据表创立其物理结构,即在数据库系统中定义数据表具体存放的格式、 位置等。这里列出利用SQL Server 自带的数据库创立的数据表的物理结构。
1.”客户”表的物理结构
”客户”表的物理结构如图4-1所示,关键字为”客户号”。
图4-1 ”客户”表
2. ”产品”表的物理结构
”产品”表的物理结构如图4-2所示,关键字为”产品号”。
图4-2 ”产品”表
3. ”仓库”表的物理结构
”仓库”表的物理结构如图4-3所示,关键字为”仓库号”。
图4-3 ”仓库”表
4. ”库存表”的物理结构
”库存表”的物理结构如图4-4所示。
图4-4”库存表”
5. ”入库表”的物理结构
”入库表”的物理结构如图4-5所示。
图4-5”入库表”
6. ”出库表”的物理结构
”出库表”的物理结构如图4-6所示。
图4-6”出库表”
7. ”操作员”表的物理结构
”操作员”表的物理结构如图4-7所示。
图4-7”操作员”表
8. ”产品视图”的物理结构
”产品视图”的物理结构如图4-8所示。
图4-8 ”产品视图”
五、 数据库的实施
根据以上所进行的调查、 设计和进行方案,建立并实施数据库。此系统运用
SQL Server 进行数据库的开发。
1.数据库建表语句
⑴ 名称: 客户表”客户”
标识: 客户
建表语句如下:
create table 客户 (
客户号 int not null,
客户名 varchar(50) null,
客户类型 tinyint null,
联系地址 varchar(50) null,
邮政编号 varchar(10) null,
联系电话 varchar(30) null,
备注 varchar(100) null,
constraint PK_客户 primary key (客户号)
)
go
(2) 名称: 产品表”产品”
标识: 产品号
建表语句如下:
create table 产品 (
产品号 int not null,
产品名 varchar(50) null,
产品数量 int null,
产品单价 varchar(20) null,
客户号 int null,
constraint PK_产品 primary key (产品号)
)
go
(3) 名称: 仓库表”仓库”
标识: 仓库号
建表语句如下:
create table 仓库 (
仓库号 int not null,
仓库名 varchar(50) null,
仓库备注 varchar(100) null,
constraint PK_仓库 primary key (仓库号)
)
go
(4) 名称: ”入库表”
建表语句如下:
create table 入库表 (
产品号 int null,
入库单价 varchar(20) null,
入库数量 int null,
客户号 int null,
仓库号 int null,
入库时间 varchar(10) null
)
go
(5) 名称: ”出库表”
建表语句如下:
create table 出库表 (
产品号 int null,
出库单价 varchar(20) null,
出库数量 int null,
客户号 int null,
仓库号 int null,
出库时间 varchar(10) null
)
go
(6) 名称: ”库存表”
建表语句如下:
create table 库存表 (
产品号 int null,
入库价格 varchar(20) null,
现存数量 int null,
仓库号 int null
)
go
(7) 名称: ”操作员”表
建表语句如下:
create table 操作员 (
操作员号 int not null,
操作员名 varchar(40) null,
密码 varchar(40) null,
constraint PK_操作员 primary key (操作员号)
)
go
2.数据库建视图语句
(1) 名称: ”产品视图'”
建视图语句如下:
CREATE VIEW dbo.产品视图
AS
SELECT dbo.产品.产品号, dbo.产品.产品名, dbo.产品.客户号,
dbo.库存表.仓库号, dbo.产品.产品数量,
dbo.产品.产品单价, dbo.库存表.入库价格, dbo.库存表.现存数量
FROM dbo.产品 INNER JOIN
dbo.库存表 ON dbo.产品.产品号 = dbo.库存表.产品号
六、 数据库的运行
根据以上所做的准备以及SQL Server 建立好的表、 试图及各种关系, 运用Visual Basic 6.0 为前台开发工具, 开发出客户管理系统, 主要运用了ADODC控件和DataGrid控件。
1. 系统登陆界
填入用户名和密码后点击【登录】按钮,系统将自动从数据库中判断是否存在相同的用户名和密码,如果有则进入系统, 进入系统的主页面并出现欢迎使用系统的对话框,不成功则显示错误信息页面。如果不存在则提示用户名和密码有错误信息。
系统登陆界面如图6-1所示
图6-1 系统登陆界面
2. 系统主界面
主界面包括系统的主要功能包括新建客户信息、 客房信息查询、 客户信息查询、 结算信息账单, 四个主要的功能。用户能够根据需要点击自己想使用的功能进入功能界面。
系统主界面如图6-2所示。
图 6-2 系统主界面
3. 管理界面
图6-3 各信息管理界面
4.添加界面
用于添加新的信息, 有添加客户信息、 添加仓库信息、 添加产品信息、 添加操作员信息, 各个添加界面如图4-4所示。
图4-4-a 添加客户信息界面
图4-4-b 添加仓库信息界面
图4-4-c 添加产品信息界面
5.查询界面
用于查询各种信息, 有客户信息查询、 仓库信息查询、 产品信息查询、 操作员信息查询。各个查询界面如图4-5所示。
图4-5-1仓库信息查询
图4-5-2 产品信息查询
图4-5-3 入库表信息查询
图4-5-4 客户信息查询
6. 删除界面
删除界面用于删除无用的、 过时的信息。包括删除客户信息、 删除仓库信息、 删除产品信息。各界面如下列图4-6所示。
图4-6-1 删除客户信息界面
图 4-6-2 删除仓库信息界面
图4-6-3 删除产品信息界面
参考文献
[1] 王珊,陈红.数据库系统原理教程[M].北京: 清华大学出版社,1998.7.
[2] 王珊,萨师煊.数据库系统概论( 第四版) [M].北京: 高等教育出版社, .5.
[3] 虞益诚,孙莉.SQL Server 数据库应用技术[M].北京: 中国铁道出版社, .11.
[4] 刘钢.Visual Basic 程序设计与应用案例[M].北京: 高等教育出版社, .9.
[5] Abraham Silberschatz, Henry F.Korth ,S.Sudarshan.Database System Concepts( Fourth Edition) . Higher Education Press.
[6] 罗运模.完全掌握SQL Server [J].北京: 人民邮电出版社, .
[7] 白尚旺.PowerDesigner软件工程技术[M].北京: 电子工业出版社, .
附录Ⅰ仓库管理系统部分程序代码
1. 登陆代码
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
Dim rs, rss As New ADODB.Recordset
Set rs = cn.Execute("select * from 操作员 where 操作员名='" & Text1.Text & "'")
Set rss = cn.Execute("select * from 操作员 where 密码='" & Text2.Text & "'")
If rs.EOF Then
MsgBox "用户名错误!"
Text1.Text = ""
Text1.SetFocus
Else
If rss.EOF Then
MsgBox "密码错误!"
Text2.Text = ""
Text2.SetFocus
Else
Me.Hide
Form2.Show
MsgBox (Text1.Text + ",欢迎您使用冰舞奇迹仓库管理系统")
End If
End If
End Sub
2. 添加客户信息代码
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
Dim a1, a2, a3, a4, a5, a6, a7 As String
a1 = Text1.Text
a2 = Text2.Text
a3 = Text3.Text
a4 = Text4.Text
a5 = Text5.Text
a6 = Text6.Text
a7 = Combo1.Text
sql = "insert into 客户 values('" & a1 & "','" & a2 & "','" & a7 & "','" & a3 & "','" & a4 & "','" & a5 & "','" & a6 & "')"
cn.Execute (sql)
cn.Close
MsgBox "已添加客户信息"
End Sub
3. 根据客户号查看、 删除客户代码
Private Sub Command1_Click()
Dim kehuhao As String
kehuhao = Text8.Text
Adodc1.Recordset.Find "客户号=" & Val(kehuhao)
End Sub
Private Sub Command2_Click()
Dim cn As New ADODB.Connection
Dim sql As String
Dim kehuhao As String
kehuhao = Text8.Text
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
sql = "delete from 客户 where 客户号='" & kehuhao & "'"
cn.Execute (sql)
MsgBox "已删除编号为" & kehuhao & "的客户信息"
End Sub
4. 查看客户信息代码
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
If Combo1.Text = "供应商" Then
rs.Open "select * from 客户 where 客户类型='供应商'", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
Else
If Combo1.Text = "购货商" Then
rs.Open "select * from 客户 where 客户类型='购货商'", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
Else
rs.Open "select * from 客户", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End If
End If
End Sub
Private Sub Command2_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
rs.Open "select * from 客户 where 客户号='" & Text1.Text & "'", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub
Private Sub Command3_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
rs.Open "select * from 客户 where 客户名='" & Text2.Text & "'", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub
5. 查询仓库信息
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
rs.Open "select * from 仓库 where 仓库号='" & Text1.Text & "'", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub
Private Sub Command2_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
rs.Open "select * from 仓库 where 仓库名='" & Text2.Text & "'", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub
6. 添加仓库信息
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim sql As String
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01"
cn.Open
Dim a1, a2, a3 As String
a1 = Text1.Text
a2 = Text2.Text
a3 = Text3.Text
sql = "insert into 仓库 values('" & a1 & "','" & a2 & "','" & a3 & "')"
cn.Execute (sql)
cn.Close
MsgBox "已添加仓库信息"
End Sub
7. 查看删除仓库信息
Private Sub Command1_Click()
Dim cangkuhao As String
cangkuhao = Text1.Text
Adodc1.Recordset.Find "产品号=" & Val(cangkuhao)
End Sub
Private Sub Command2_Click()
Dim cn As New ADODB.Connection
Dim sql As String
Dim cangkuhao As String
cangkuhao = Text1.Text
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;
展开阅读全文