收藏 分销(赏)

仓库管理系统36402587.docx

上传人:xrp****65 文档编号:8790929 上传时间:2025-03-02 格式:DOCX 页数:30 大小:75.15KB
下载 相关 举报
仓库管理系统36402587.docx_第1页
第1页 / 共30页
仓库管理系统36402587.docx_第2页
第2页 / 共30页
点击查看更多>>
资源描述
辽 宁 工 业 大 学 数据库应用技术课 程 设 计 说 明 书 题目: 仓库管理系统 学院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 目录 第一章 概述 4 第二章 问题定义 5 第三章 需求分析 6 第四章 数据库设计 11 第五章 界面设计 19 第六章 代码与注释 24 设计总结 26 参考文献 27 第一章 概述 本仓库货物管理系统针对企业仓库进货管理方面的问题。它能实现仓库进货的综合管理,减少不必要的手工上报,也为基层单位上报数据提供便利,减少人工劳动。对仓库进货信息资源,出货信息资源管理的货号、货物名称、进出货时间、数量、生产单位;货物报表登记货物的基本档案,货号、货名、入库日期、存放地点、存放情况;日常管理中货物性质、存放要求、保质期等信息进行全面、系统的管理。在整个系统开发的过程中,运用了软件工程的基本概念、相关技术和方法。并且采用了系统生命周期的结构化程序设计方法,从而将整个系统开发各阶段(系统分析、系统设计、系统实施)的基本活动贯穿起来。 第二章 问题定义 随着科学技术的发展,社会进步,计算机迅速的发展,仓库货物管理的方法也日新月异,以前全是由人工管理的方法现存在很多的缺点:管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。为了提高仓库货物管理效率,减轻劳动强度提高,信息处理速度和准确性;为管理员提供更方便、科学的服务项目。为管理员提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个仓库货物管理系统的方案。让计算机对仓库货物进行自动管理,管理员可以直接在计算机上实现仓库货物的信息管理,并能在一定程度上实现自动化。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。 第三章 需求分析 一、数据库需求分析 该系统主要包括系统功能输入模块、基本资料维护模块、报表模块、综合查询功能模块和统计模块等。 系统要实现基本信息录入、修改、查询等功能: 1、 信息的输入,包括溢货信息、缺货信息、货物入库信息、库存信息、货源信息、货价信息等。 2、 信息的修改、删除。 3、 根据要求,查询统计符合条件的各类信息。 4、 依据实际需要,对重要新信息进行统计。 二、数据流图 需求单位需求 仓库现有库存 向供应单位进货 管理事物处理 设备进货 设备入库 设备出库 设备出货 库存清 单 出货清 单 进货清 单 三、数据字典(DD): 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 由于本次设计是小型软件系统的开发,所以采用卡片形式书写数据字典。每张卡片上保存描述一个数据的信息这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。下面将列出若干数据元素的数据卡片信息。 数据字典卡片: 名称:库存清单 别名:库存报表 描述:仓库货物存储的描述 定义:货物编号+名称+生产日期+有效期+数量+单价+上、下限 位置:输出到打印机 保存到磁盘 名字:货物编号 别名: 描述:惟一地标识库存清单中一个特定货物的关键域 定义:货物编号=8{字符}8 位置:进货报表 库存清单 事务 名称:货物现存量清单 别名: 描述:仓库货物存量描述 定义:货物编号+名称+生产日期+有效期+数量+上下限 + +状态标志(正常、紧急、警告、严重) 位置:输出到打印机 保存到磁盘 名称:进货清单 别名:进货报表 描述:每次进货的货物描述 定义:货物编号+名称+生产日期+有效期+数量 位置:输出到打印机 保存到磁盘 名字:货物生产单位 别名:生产商 描述:惟一的标识仓库货物生产的一个特定的单位 定义:单位名+负责人+联系电话 位置:进货报表 出货报表 库存清单 名字:货物供应单位 别名:供应商 描述:惟一的标识仓库货物来源的一个特定的单位 定义:单位名+负责人+联系电话 位置:进货报表 出货报表 库存清单 名字:需求数量 别名:本次数量 描述:某种货物一次被某单位领取的数量 定义:本次数量=1{数字}5 位置:货物出库信息 名字:上期数量 别名: 描述:某种货物的库存数量 定义:上期数量=1{数字}5 位置:货物入库信息 货物出库信息 名字:进货数量 别名:本次数量 描述:某种货物的一次入库数量 定义:本次数量=1{数字}5 位置:货物入库信息 名字:出货清单 别名:出货报表 描述:每次出货的货物描述 定义:货物编号+名称+生产日期+有效期+数量 位置:输出到打印机 保存到磁盘 名字:需求单位名 别名: 描述:惟一的标识需要货物的一个特定的单位 定义:单位名=20{字符}20 位置:部门表 货物入库信息 货物出库信息 名字:需求单位表 别名:需求单位信息 描述:是对需要货物的各单位的信息进行统计 定义: 单位名+负责人+负责人联系电话+操作员 +所属工作 位置:货物入库信息 货物出库信息 名字:操作用户表 别名:操作用户信息 描述:是对使用本系统的用户进行身份和权限验证用的 定义:用户名+密码+所属单位+权限一+权限二+权限三+操作员 位置:班级表 货物需求单位信息表 货物信息表 货物出库表 货物入库表 名字:用户名 别名: 描述:惟一标识本系统的用户身份 定义:用户名=8{字符}8 位置:操作用户表 名字:密码 别名: 描述:验证本系统的用户身份 定义:密码=8{字符}8 位置:操作用户表 名字:权限三 别名: 描述:标识本系统的用户对本系统查询权的使用权限 定义:权限四=8{字符}8 位置:操作用户表 名字:权限二 别名: 描述:标识本系统的用户对本系统出入库权的使用权限 定义:权限三=8{字符}8 位置:操作用户表 名字:权限一 别名: 描述:标识本系统的用户对本系统管理权使用权限 定义:权限一=8{字符}8 位置:操作用户表 四、数据库概念的结构设计 数据库一般分为三级模式:外模式、概念模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。概念模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。 在这里我们将要设计的是数据库的概念模式, 通过对仓库货物管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构。 仓库信息。包括库房名称、库位名称、库存货物、来往客户信息、库房编号、库位编号,仓库管理员等。 货物信息。包括名称、供应单位、生产单位、生产日期、货物数量、货物单价、入库时间、货物编号等。 单位信息。包括单位名称、负责人、地址、联系电话等信息。 货物入库信息。包括货物编号、货物名、生产单位、供应单位、本次数量、生产时间、货物单价、入库时间、经办人等信息。 货物出库信息。包括货物编号、货物名、生产单位、供应单位、货物需求单位名、本次数量、生产时间、货物单价、出库时间、经办人等信息。 用户信息。包括用户名称、密码、所在单位、用户权限信息、操作员、最后修改时间。 数据库概念结构设计,是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。 五、数据库的逻辑结构设计: 在数据库设计中相当重要的一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在再数据库设计的实现过程中,在计算机上有效地表示出这些关系就成了数据库设计的关键。 根据仓库货物管理系统的功能要求,选取SQLServer 2000作为后台数据库。 在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。 该数据库由6个表组成,需求单位表、货物表、供应单位表、入库信息表、出库信息表、操作用户表。 一、主表的结构设计 1.需求单位信息 需求单位表是对需求单位信息进行统计,包括单位名、单位编号、取货时间、地址、负责人、联系电话、操作员、所需货物、货物单价、货物数量等信息。2.供应单位信息 供应单位信息表是提供货物的单位信息的统计,包括单位编号、单位名称、负责人、联系电话、地址、所供应货物、货物单价、货物商量等信息。 3.货物信息 货物表是对货物信息的统计,包括名称、供应单位、生产单位、生产时间、货物数量、货物单价、入库时间、编号等。 4.货物入库信息 货物入库信息是对入库信息的统计,包括货物编号、货物名称、生产单位、供应单位、本次数量、生产时间、货物单价、入库时间、经办人等信息。 5.操作用户信息 操作用户表是对使用本系统的用户进行身份和权限验证用的,包括用户名称、密码、所在单位、用户权限信息、操作员、最后修改时间。 6、货物出库信息 货物出库表是对出库信息的统计。包括货物编号、货物名称、生产单位、需求单位、本次数量、生产时间、货物单价、出库时间、经办人等信息。 六、仓库货物管理系统系统模块 可以根据模块独立原理对软件结构进行精化。为了合理的分解,得到尽可能高的内聚、尽可能松散的耦合,最终要的是,为了得到一个易于实现、易于测试和易于维护的软件结构,应该对模块进行再分解或合并。 系统功能模块图如图7.1所示: 仓库货物管理系统 系统模块 输入模块 维护模块 查询模块 报表模块 帮助模块 打印设置 日志管理 入库模块 出库模块 还原模块 需求模块 进货模块 图4.1 系统功能模块图 第四章 数据库设计 一、概念设计:系统ER图 根据对数据流图和数据字典的分析,我们可以确定该应用中的实体,属性和实体之间的关系,并画出如下所示的E-R图。 编号 取货时间 负责人 联系电话 需求单位名 需求单位 操作员 地址 货物单价 图1.3 需求单位实体E-R 生产单位 供应单位 生产日期 名 称 上 下 限 货 物 货物编号 需求单位 货物单价 货物数量 入库时间 图1.4货物实体E-R图 库 房 库房编号 库房名称 库存量 供应单位 货物 电话 地址 管理员 需求单位 图1.5 仓库E-R图 供货时间 货物编号 单位地址 单位编号 单位名称 供应单位 联系电话 负责人 图1.6 供应单位实体E-R图 货物编号 货物名称 生产单位 供应单位 生产时间 货物单价 入库时间 经办人 本次数量 入库信息 图1.7 入库信息实体E-R图 生产单位 货物名称 供应单位 本次数量 出库信息 货物单价 出库时间 货物编号 生产时间 经办人 需求单位名 图1.8 出库信息实体E-R图 所在单位 用户权限 用户名称 密码 操作员 修改时间 用 户 图1.9 用户实体E-R图 地址 货物编号 负责人 负责人 地址 货物编号 名称 名称 电话 电话 供应单位 需求单位 单位编号 单位编号 需求 生产日期 供应 数量 编号 货物 单价 名称 入库时间 生产单位 存储 仓库 名称 编号 货物 库存量 需求单位 供应单位 地址 电话 查询 用户 修改时间 拥护权限 操作员 所在单位 密码 名称 图3.10 实体和实体之间的E-R图 二、逻辑设计: 下面列出几个主要的数据库表设计: 表2-1. 需求单位结构表 列 名 数据类型 长 度 是否允许为空 说明 xqdwnumber money 8 否 编号(主键) xqdwname varchar 50 否 单位名 xqdwadress varchar 20 否 地址 xqdwmanager varchar 8 否 负责人 xqdwtel varchar 20 是 联系电话 operator varchar 8 是 操作员 xqprice money 8 是 单价 xqhw varchar 20 是 所需货物 xqamount int 4 否 货物数量 qhtime datatime 8 否 取货时间 表2-2 供应单位信息结构表 列 名 数据类型 长 度 是否为空 说 明 gydwnumber money 8 否 编号(主键) gydwname varchar 20 否 单位名称 gydwmanager varchar 8 是 负责人 gydwtel varchar 50 是 联系电话 gydwadress varchar 20 否 地址 operator varchar 8 是 操作员 gyprice money 8 是 单价 gyhw varchar 20 是 供应货物 gyamount int 4 否 货物数量 表2-3 货物结构表 列 名 数据类型 长 度 是否为空 说 明 gydw varchar 50 是 供应单位 hwname varchar 8 是 货物名称 scdw varchar 20 是 生产单位 sctime datatime 8 是 生产时间 amount int 4 是 货物数量 price money 8 是 货物单价 rktime datatime 8 是 入库时间 operator varchar 8 是 操作员 hwnumber money 8 否 编号(主键) 表2-4 货物入库信息结构表 列名 数据类型 长度 是否为空 说 明 hwnumber int 4 否 货物编号 hwname varchar 50 否 货物名称 scdw varchar 8 否 生产单位 gydw varchar 50 是 供应单位 bcsl int 4 是 本次数量 sctime varchar 8 是 生产日期 price money 8 是 货物单价 rktime datetime 8 是 入库时间 jbr varchar 8 是 经办人 表2-5 操作用户结构表 列名 数据类型 长度 是否为空 说明 username varchar 8 否 用户名 password varchar 20 否 密码 szdw varchar 20 是 所在单位 Qx1 bit 1 是 权限一 Qx2 bit 1 是 权限二 Qx3 bit 1 是 权限三 operator varchar 8 是 操作员 表2-6 货物出库信息结构表 列名 数据类型 长度 是否为空 说明 hwnumber int 4 否 货物号 hwname varchar 50 否 货物名 scdw varchar 20 否 生产单位 xqdw varchar 20 否 需求单位 bcsl int 4 是 本次数量 sctime varchar 8 是 生产日期 price money 8 是 货物单价 outtime datetime 8 是 出库时间 jbr varchar 8 是 经办人 三、物理设计 在数据库中创建索引时,查询所使用的索引信息存储在索引页中。连续索引页由从一个页到下一个页的指针链接在一起。当对数据的更改影响到索引时,索引中的信息可能会在数据库中分散开来。重建索引可以重新组织索引数据(对于聚集索引还包括表数据)的存储,清除碎片。这可通过减少获得请求数据所需的页读取数来提高磁盘性能。 在 SQL Server 2000 中,如果要用一个步骤重新创建索引,而不想删除旧索引并重新创建同一索引,则使用 CREATE INDEX 语句的 DROP_EXISTING 子句可以提高效率。这一优点既适用于聚集索引也适用于非聚集索引。 以删除旧索引然后重新创建同一索引的方式重建聚集索引,是一种昂贵的方法,因为所有二级索引都使用聚集键指向数据行。如果只是删除聚集索引然后重新创建,则会使所有非聚集索引都被删除和重新创建两次。一旦删除聚集索引并再次重建该索引,就会发生这种情形。通过在一个步骤中重新创建索引,可以避免这一昂贵的做法。在一个步骤中重新创建索引时,会告诉 SQL Server 要重新组织现有索引,避免了删除和重新创建非聚集索引这些不必要的工作。该方法的另一个重要优点是可以使用现有索引中的数据排序次序,从而避免了对数据重新排序。这对于聚集索引和非聚集索引都十分有用,可以显著减少重建索引的成本。另外,通过使用 DBCC DBREINDEX 语句,SQL Server 还允许对一个表重建一个或多个索引,而不必单独重建每个索引。 DBCC DBREINDEX 也可用于重建执行 PRIMARY KEY 或 UNIQUE 约束的索引,而不必删除并创建这些约束(因为对于为执行 PRIMARY KEY 或 UNIQUE 约束而创建的索引,必须先删除该约束,然后才能删除该索引) 第五章 界面设计 一、程序流程图: 该系统数据流程图如图3.2所示: 更新库存清 单 处理进 货 产生进货报 表 处理出 库 处理出 货 产生出货报 表 仓库管理员 经办人 产生出库报 表 D1 库存清单 D1 库存清单 D2 进货信息 D4 出库信息 更新 事物 库存 信息 库存清单 进货信息 进货信息 进货报表 接收事务 出货 信息 出货报表 D3 出货信息 出货信息 出库信息 出库 信息 库存清单 出库报表 图3.2 系统数据流程图 二、登录界面及密码修改 1、登录界面如图5.3所示 图5.3 登录界面图 在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行对比,若一致,则打开主窗体,若不一致提示错误,并要求再次输入,若输入次数超过三次,则关闭系统。 在这个部分中,需要对用户的类型存入一个全局变量,予以判断其所具有的系统使用权限,例如,用户类型为DBA,则该用户拥有系统的一切权力,可以对每一部分进行添加、删除、查找、统计等操作;而其他用户类型都依据其类型的属性,可以使用的部分也会相应减少,而只能使用一部分与其类型相匹配的功能。 2、增加新用户如图5.4所示 图5.4 增加新用户 三、货物添加操作及修改 1、货物添加如图5.5所示: 图5.5 货物添加如图 管理员查询某货物时货物名及货物号与数据库中的数据不相一致,系统提示所查货物在仓库里为空,即仓库从没存储该货物。然后管理员可根据仓库管理的需求是否保存该货物。 2、货物修改 此功能是对货物单价、库位、编号修改。 首先系统将从数据库中读取所有可用的货物信息,其中包括编号、名称、入库时间、单价等信息,管理员可视情况分别修改。修改完毕并确认后,系统将所做修改保存,并将新的记录保存于数据库中。 在仓库货物管理操作中,为了保护数据库以及考虑实际因素,对单价、编号的修改时都不能留空,同时编号的修改也不能有重复,若出现此类情况则提示出错。 四、查询操作 查询操作如图5.7所示 图5.7 查询操作图 在执行查询操作之前通常要先在单行文本框中输入被查询的条件,在单行文本框失去聚焦时将查询条件传递给查询按钮的单击事件中,然后过滤语句依据此过滤条件过滤得出相应的数据,并显示在其他数据窗体控件中。 在通常情况下,用户可以在得到要查询的信息后,对它们的各个字段进行修改,经过修改后,在退出时系统会提示进行存储。 在完成了用户界面设计和程序过程设计后,基本上完成了详细设计的内容。 第六章 代码与注释 一、登录代码 Option Explicit Dim cnt As Integer '记录确定次数 Private Sub Command1_Click() Dim sql As String Dim rs_login As New ADODB.Recordset If Trim(txtuser.Text) = "" Then '判断输入的用户名是否为空 MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" txtuser.SetFocus Else sql = "select * from 系统管理 where 用户名='" & txtuser.Text & "'" rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" txtuser.SetFocus Else '检验密码是否正确 If Trim(rs_login.Fields(1)) = Trim(txtpwd.Text) Then userID = txtuser.Text userpow = rs_login.Fields(2) rs_login.Close Unload Me MDIForm1.Show Else MsgBox "密码不正确", vbOKOnly + vbExclamation, "" txtpwd.SetFocus End If End If End If cnt = cnt + 1 If cnt = 3 Then Unload Me End If Exit Sub End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Dim connectionstring As String connectionstring = "provider=Microsoft.Jet.oledb.4.0;" & _ "data source=cangku.mdb" conn.Open connectionstring cnt = 0 End Sub Private Sub Timer1_Timer() Label3.Caption = Time Label4.Caption = Date End Sub Option Explicit Dim rs_find As New ADODB.Recordset Private Sub Command1_Click() On Error GoTo cmderror Dim find_date1 As String Dim find_date2 As String If Option1.Value = True Then sqlfind = "select * from 入出库 where 货单号 between '" & _ Combo1(0).Text & "'" & " and " & "'" & Combo1(1).Text & "'" End If If Option2.Value = True Then find_date1 = Format(CDate(comboy(0).Text & "-" & _ combom(0).Text & "-" & combod(0).Text), "yyyy-mm-dd") find_date2 = Format(CDate(comboy(1).Text & "-" & _ combom(1).Text & "-" & combod(1).Text), "yyyy-mm-dd") sqlfind = "select * from 入出库 where 日期 between #" & _ find_date1 & "#" & " and" & " #" & find_date2 & "#" End If rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic kumanage.displaygrid1 Unload Me kumanage.Show cmderror: If Err.Number <> 0 Then MsgBox "请输入正确的查询条件!", vbOKOnly + vbExclamation, "警告" End If End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Dim i As Integer Dim j As Integer Dim sql As String 'If findok = True Then 'rs_data1.Close 'End If sql = "select * from 入出库 order by 货单号 desc" rs_find.CursorLocation = adUseClient rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_find.EOF = False Then '添加货单号 With rs_find Do While Not .EOF Combo1(0).AddItem .Fields(0) Combo1(1).AddItem .Fields(0) .MoveNext Loop End With End If For i = 2001 To 2005 '添加年 comboy(0).AddItem i comboy(1).AddItem i Next i For i = 1 To 12 '添加月 combom(0).AddItem i combom(1).AddItem i Next i For i = 1 To 31 '添加日 combod(0).AddItem i combod(1).AddItem i Next i End Sub Private Sub Form_Unload(Cancel As Integer) rs_find.Close End Sub Private Sub Option1_Click() Option2.Value = False End Sub Private Sub Option2_Click() Option1.Value = False End Sub 设计总结 通过对本仓库货物管理系统的设计,使我认识到软件开发的过程实际上就是描述现实世界的过程。而由现实世界向软件模型的转化过程是其中最核心的过程。在课程设计的过程中我们遇到了许多问题。而这些问题的产生都是由于理论知识和实践经验的缺乏造成的。 在此过程中我通过张聚礼老师的指导、同学的帮助、自学战胜了所有的困难。使我得到一次难的锻炼机会,加深了对理论知识的理解,丰富了实践经验。同时更让我深刻体会到团队协作的重要性,并通过这次设计让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我即将从事的工作打下了一个坚实的基础! 但是由于课程设计时间较短,所以该系统还有许多不尽人意的地方,用户界面设计不够美观,统计功能还不完善等,这些都有待进一步改善。这次课程设计,提高了我的实际操作能力,从以前的理论上升到实践,从感性认识上升到理性认识,真正做到学有所用。虽然在设计过程中也遇到一些困难,但在周小健老师和同学们的帮助下,再加上自己的努力,都一一克服了! 参考文献 [1]张海藩,软件工程导论[M].清华大学出版社,2003年12月 [2]张海藩.软件工程导论学习辅导[M].清华大学出版社,2004年9月 [3]萨师煊,王珊.数据库系统概论[M].清华大学出版社,2002年2月 [4]汪孝宜,刘中兵,徐佳晶等.JSP数据库开发实例精粹[M].电子工业出版社,2005年1月 [5]孙健文.VB信息管理系统开发编著[M].民邮电出版社.2005,9. [6]刘一鸣.毕业设计步步赢教程[M].清华大学出版社.2008,2. [7]孙鑫.数据库简单易学[J].电子工业出版社.2006,5. [8]蔡鸿雷.从零开始学VB[M].人民邮电出版社.2006,3. [9]李想.VB百例案例教程[M].清华大学出版社.2007,1. [10]孙红.VB从入门到精通[M].中国铁道出版社.2007,4.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服