精品仓库管理数据库课程设计论文仓储管理系统.docx
- 文档编号:24786111
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:25
- 大小:133.53KB
精品仓库管理数据库课程设计论文仓储管理系统.docx
《精品仓库管理数据库课程设计论文仓储管理系统.docx》由会员分享,可在线阅读,更多相关《精品仓库管理数据库课程设计论文仓储管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
精品仓库管理数据库课程设计论文仓储管理系统
(精品仓库管理)数据库课程设计论文(仓储管理系统)
一绪论1
1.1课题背景及现状1
1.2开发工具介绍1
二需求分析2
三概要设计5
四逻辑设计7
五详细设计9
六测试结果21
七小结21
参考文献25
一绪论
1.1课题背景及现状
软件定义:
仓库管理系统
在当今时代,随着社会,技术,尤其是计算机的发展,人工智能已经成为时代的需求,而纯人工已经成为过去。
在这样一个背景下!
仓库的存储作为一个时代的产物,信息化,智能化也成为必须了。
同时开发一个仓库管理系统也变得紧迫的需要。
仓库管理系统用于对企业出入库的日常管理,是一套高效的信息管理系统。
它能够为企业提供先进的业务信息管理解决方案,改进传统的工作方式,提高企业所经营物品的供、销、存的运转效率,缩短管理周期,减少因为重复操作而带来的人为差错,减轻管理人员的工作强度、降低管理成本。
软件定义:
从客户的需求开始,从对客户的需求的分析,到数据流程图完成,然后,概念设计,E-R图的设计,接下来,将E-R图转换成关系模型,当然这个关系模型要满足一定的范式地要求,这样要是根据实际的情况决定的!
再接下来,设计数据库,进行详细的设计,根据客户的需求选择是做成c/s,还是b/s形式!
!
最后是软件的测试和维护。
这个整个的过程是一个完整的流程,这个过程被称为软件开发。
成品为软件。
1.2开发工具介绍
这次项目主要是使用Eclipse和MicrosoftSQLServer2000。
Sqlsever2000数据开发工具!
Sqlsever2000是微软公司开发的智能的,大型的实用型的数据库设计工具!
目前在市场上大部分公司用的是oracle,bb2等数据开发工具。
因为我们课堂上介绍的是Sqlsever2000,我就选用了它。
Eclipse是开放源代码的项目,其本身是用Java语言编写。
Eclipse是我们在学习Java中使用过的工具,它的功能比较完整!
乍一看起来,Eclipse的界面有点象JBuilder,但实际操作进程中会发现它更象IVJ,毕竟开发Eclipse的主导用量是开发IVJ的原班人马。
Eclipse开发环境和IVJ一样,Eclipse开发环境被称为Workbench,它主要由三个部分组成:
视图(Perspective),编辑窗口(Editor)和观察窗口(View)。
在下面的介绍中,希望读者能知道Java视图,Java包浏览窗口,资源视图,资源浏览窗口等区别(其实最主要的也就是要区别视图和窗口)。
Asp运行在装有Microsoft的IIs操作系统中,所以创建Asp应用程序之前,需要安装相关的操作系统和Web服务器。
二需求分析
2.1目标设计:
仓库管理系统需要实现的功能相对来说比较简单,最重要的是物品的入库操作、出库操作和提货单的管理,对供应商、提货单位的管理功能,以及对库存中物品数目的管理功能。
另外,作为一个完整的系统,为了保证系统的安全,还有必要对使用本系统的用户进行身份的验证以及权限的管理等。
仓库管理系统实现的功能如下:
1.系统的用户登录以及身份验证
●系统用户进入系统需要经过身份验证。
●系统用户在登录系统以后,在不同页面跳转浏览时的身份验证。
2.库存管理功能
●库存信息的管理,包括添加仓库、查看仓库、删除仓库。
●提货单为信息的添加。
●货物类别信息的添加。
●物品信息的添加。
●提货单的管理。
3.权限的管理功能
在本系统中,将权限分为俩种,一种为超级管理员权限,该权限可以管理系统中定义的所有仓库;而另一种为普通管理员权限,该权限只能管理分配给他的某个仓库。
2.2数据流图:
商品入库数据流图:
入库单
事务事务
商品出货数据流图:
出库单
事务事务
商品订货数据流图:
事务事务订货单
2.3数据字典:
1:
名字:
用户表
描述:
记录所有可以登录该系统的用户名、密码和其他相关数据;
定义:
用户名+密码+备注+IP地址;
位置:
输出到打印机;
2:
名字:
供应商信息表
描述:
此表记录所有供应商的信息。
;
定义:
供应商名称+供应商编号+备注;
位置:
输出到打印机;
3:
名字:
提货单位信息表
描述:
该表是指某物在出库时提货者的信息;、
定义:
使用编号+名称+备注;
位置:
输出到打印机;
4:
名字:
仓库信息表
描述:
一个企业可能会有许多仓库,就存放在这个表中;
定义:
仓库编号+仓库名称+备注;
位置:
输出到打印机;
5:
名字:
物品类别信息表
描述:
该表记录仓库中具体的物件名称和其他相关的信息;
定义:
类别名称+类型编号+所属仓库名
位置:
输出到打印机;
6.名字:
物品信息表
描述:
此表记录仓库中具体的物件名称和其他相关的信息;
定义:
仓库编号+类型编号+品名编号+品名物品的名称+计量单位+当前库存数+当前库存总金额+最大储存量+最小储存量+储存地点+规格+货号+货名;
位置:
输出到打印机;
7.名字:
入库/出库明细表
描述:
该表记录所有各个仓库的入库、出库的记录,每当进行出库或者入库操作是,就会有一条记录插入该表;
定义:
编号+记录日期+种类+号数+收入数量+收入单价+收入金额+发出数量+发出单价+发出金额+结存数量+结存单价+结存金额+品名编号+仓库编号+供应商编号+接受这编号+剩余数量
位置:
输出到打印机;
三概要设计
这一设计阶段是在需求分析的基础上,设计出能够满足需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
本实例根据上面的设计规划出的实体有员工实体、供应商实体、提货单位实体、仓库实体、物品类别实体、物品信息实体、出库/入库实体。
各个实体的E-R图及其关系描述如下。
1.员工实体E-R图(用户编号,用户名,密码,是否在线,备注,IP地址)
2.供应商实体E-R图(供应号,供应商名称,备注)
3.提货单位实体E-R图(使用编号,使用名称,备注)
4.仓库实体实体E-R图(仓库编号,仓库名称,备注)
5.物品类别实体E-R图(类型名称,类型编号,该类别所属仓库)
6.物品实体E-R图(仓库编号,类型编号,品名编号,物品名称,记量单位,当前库存数,当前库存总金额,最大储存量,最小储存量,储存地点,规格,货号,货名)
7.入库/出库实体E-R图(编号,记录日期,种类,号数,收入数量,收入单价,收入金额,发出数量,发出单价,发出金额,结存数量,结存单价,结存金额,品名编号,仓库编号,供应商编号,用户编号,剩余数量)
四逻辑设计
4.1基本表关系:
1.员工(用户编号,用户名,密码,是否在线,备注,IP地址)
2.供应商(供应编号,供应商名称,备注)
3.提货单位(使用编号,使用名称,备注)
4.仓库(仓库编号,仓库名称,备注)
5.物品类别(类型名称,类型编号,该类别所属仓库)
6.物品(仓库编号,类型编号,品名编号,物品名称,记量单位,当前库存数,当前库存总金额,最大储存量,最小储存量,储存地点,规格,货号,货名)
7.入库/出库(编号,记录日期,种类,号数,收入数量,收入单价,收入金额,发出数量,发出单价,发出金额,结存数量,结存单价,结存金额,品名编号,仓库编号,供应商编号,用户编号,剩余数量)
4.2数据库截图
员工:
供应商:
提货单位
仓库信息:
物品类别信息:
物品信息:
入库/出库:
前5个关系达到了BC范式,后俩个达到3范式。
4.3定义权限:
管理:
用户表user中的字段in_storage意思是所属仓库,在表storage中存放着仓库,且表中字段storage_id就是仓库的编号,in_storage与之对应,而storage_id是自动编号产生的,所以不会有小于等于0的数字的,根据这样,当in_storage值为0时,即不属于任何仓库的用户,即他们可以管理任何仓库,也即可以称之管理员了!
查看:
用户表user中的字段viewother是查看其他的仓库,一个用户是否可以查看全部的仓库首先看他是否可以管理全部仓库,如果可以就可以查看其他的仓库,如果不可以,即只能管理一个仓库,那么就要看字段viewother的值为什么,如果为“是”那么可以查看其他的仓库,如果为“否”则不能看其他仓库。
五详细设计
在该系统中主要由基本信息维护模块、库存管理模块和安全管理模块3大模块组成。
1系统功能模块图
2基本信息模块图
库存管理模块
入库管理
出库管理
提货单管理
3库存管理模块
4安全管理
5.1功能说明:
1.登录:
登录模块在文件default.asp中,即仓库的首页中,在登录时需要填写“用户名、密码、选择仓库”三项,如果用户名和密码有至少一个不正确时,就提示“用户名或密码错误”。
2、分类查看库存-type.asp
因为该界面使用一种目录树的结构概念,进入时显示总分类的类别,总分类下也可直接创建物品,但一般都不会有。
3、浏览库存(管理库存)-brow.asp
他适合于规模小,分类简单的仓库,而且在上面将该仓库的所有分类名称列出来,可以很方便的选择哪个分类来查看该类别下的所有库存。
4、今日库存报表-report.asp
日报表是将今日所有仓库中的物品根据出、入库情况进行填充报表表格,他可以自动计算某样物品今日的所有出库数量、出库金额、入库数量、入库金额、当前库存数、当前库存金额。
5、查看全部库存-all.asp
只有在这里才可以一览全部仓库的情况,可以很方便的选择某个仓库再选择其下的某个类别进行查看,或查找时,是针对全部仓库来找的,要进入此页面,必须该用户具有可以查看其他仓库的权限。
6、修改密码-chkpass.asp
修改密码是让用户在线时的进行修改自己的密码,要先以自己的用户名和密码登录进去,新密码和校验密码一致时才可以正确修改密码。
7、查看在线人数online.asp
可以查看当前在线的人数,以及他们的用户名,登录时间和其IP地址。
8、新增用户-newuser.asp
在线式的进行增加用户名,这种方式具有权限继承性,即只有可以管理全部仓库的才可以分配给新用户这种权限,只有可以查看全部仓库的才可以分配给新用户这种权限。
9、新增分类
typemanage.asp只是新增总分类下的类别。
Newtype.asp是在树型结构中进行的动态分类,是增加当前类别下的新类别。
10、新增仓库-storagemanage.asp
对表storage进行增加仓库名称,该程序一个很大的优点就在于此,只要新加入一个仓库,这个仓库在使用时与其他仓库的使用没有任何关系,只是他们可以放在一起进行查看,是他们唯一的联系。
11、新增供应商-providermanage.asp
对每一个进库的物品,都需要指明供应商是谁,不然不就搞出了三无产品嘛?
对供应商的管理还有待完善。
12、新增用处-usesmanage.asp
用处是相对供应商的,既然货有源,那么使用也得有个对象,要从这里反应出,某物品从哪里来,又走象哪里了。
13、新增品名-newname.asp
对当前仓库当前类别下新增物品,用来描述物品信息。
当新增某物品时还需对他进行入库、出库等操作,该物品才算有意思。
14、入库操作-in.asp
即收入,对仓库的一个进的过程,需要输入物品的数量、单价、摘要、供应商等信息。
当数据全正确确定可以保存时,程序先将全部的已有库存记录逐个重新誊写一遍至当前日,然后再新增一个记录表示现在入库的数据,并重新统计现在的库存数量,并写到stock中表示现有的库存情况,并且重新改写“记帐记录标志jz_log”,用来标记最后一个操作,置全部记录为0,并将刚誊写的及新增的记录为1,只在list.asp显示明细中用颜色块显示时使用,清楚的表示当前的库存情况。
15、出库操作-out.asp
出库与入库相反,在出库时先将出库请求的数量与现有库存数量比较,如果小于等于库存数,则可以出库,如果大于库存了,则提示不能出库,以save_out.asp来检测数据。
当可以出库也是将全部已有库存记录逐个重新誊写一遍至当前日,产生新的数据,然后根据具体出库的数量根据“先入先出”原则从最早一批开始出库,如果第一批数量不足,再继续出第二批,第二批不足,再继续出第三批,依次类推,直到全部达到出库请求的数量。
16、退出-logout.asp
在使用完后,一定要使用退出来结束工作,一来是注册表user使自己的名称已经下线,并记录下线时间,二来为了安全起见。
5.2功能实现:
首页
一.基本信息维护模块:
1.新增员工:
页面设计:
本系统添加员工页面如图所示,在该页面上管理员需要输入用户、员工登录密码和分配给该员工管理的仓库并且需要给该员工赋予一定的权限。
实现方法:
当用户填写表单后,首先把填写的结果交给指定的程序检查,这里采用在服务器端检查填写结果的合法性。
如果填写结果合法,则将表单内容交给newuser.asp页面,负责将用户信息写入数据库中。
newuser.asp文件的核心代码如下:
ifrequest("name")=""then
msg=msg+"请输入用户名!
"
endif
ifrequest("password")=""then
msg=msg+"请输入密码!
"
endif
ifrequest("confirm")=""then
msg=msg+"请输入确认密码!
"
endif
ifrequest("password")<>request("confirm")then
msg=msg+"密码和确认密码不一致!
"
endif
ifrequest("selstorage")=0andrequest("manage")=""then
msg=msg+"隶属仓库和是否可以管理其他仓库至少选择一样!
"
endif
sql="select*fromuserwhereusername='"&session("username")&"'"
rs.opensql,conn
ifrs("in_storage")>0andrequest("manage")<>""then
msg=msg&rs("username")&"本身就没有管理其他仓库的权限,所以这里就不能选!
"
endif
ifrs("viewother")=Falseandrequest("view_other")<>""then
msg=msg&rs("username")&"本身就没有查看其他仓库的权限,所以这里就不能选!
"
endif
rs.close
ifmsg<>""then
showerror(msg)
endif
sql="select*from[user]whereusername='"&request.form("name")&"'"
rs.opensql,conn,3,2
ifnotrs.eofthen
showerror("该用户名已经存在,请重新选用另一个试试!
")
else
rs.addnew
rs("username")=request.form("name")
rs("password")=request.form("password")
rs("memo")=request.form("memo")
ifrequest.form("manage")=""then
ifrequest.form("selstorage")<>0then
rs("in_storage")=request.form("selstorage")
else
rs("in_storage")=session("storage")
endif
else
rs("in_storage")=0
endif
ifrequest.form("view_other")=""then
rs("viewother")=False
else
rs("viewother")=True
endif
rs.update
ShowSuccess("数据已经成功保存!
")
endif
rs.close
else
%>
2.查看/删除员工信息
页面设计:
若管理员单击了“查看用户信息”超链接,将会进入如图所示的页面,在该页面上列出了所有使用该系统的用户名称、所管理的仓库、最近登录时间等信息、
实现方法:
查看用户信息页面使用的是用户信息表,应用该表的username用户名、in-storage所在仓库、login-time登录时间、memo备注等信息。
实现文件viewuser.asp的代码段如下:
<%
CheckLogin
getStorage(session("storage"))
SQL="select*from[user]orderbyusername"
rs.opensql,conn
%>
<%
rs.movefirst
ifnotrs.eofthen
dowhilenotrs.eof
%>
id=<%=rs("user_id")%>>删除该用户
<%
rs.movenext
loop
else
%>
二.仓库信息管理(本模块实现仓库信息的新增和查询处理)
1.新增仓库
对于实际的应用,企业或者是单位的仓库肯定不止一个,因此这就要求系统必须具有增加仓库的功能。
这个仓库在使用时与其他仓库的使用没有任何关系,只是可以把它们放在一起进行查看,这是他们唯一的关系。
效果图如下:
实现代码:
<%
ifRequest.ServerVariables("REQUEST_METHOD")="POST"then
ifrequest.form("storagename")<>""then
sql="selec*fromstoragewherestorage_name='"&request.form("storagename")&"'"
rs.opensql,conn,3,2
ifrs.eofthen
rs.addnew
rs("storage_name")=request.form("storagename")
rs("memo")=request.form("memo")
rs.update
ShowSuccess("数据已经成功保存!
")
else
showerror("该仓库已经存在,请重新输入")
endif
rs.close
else
showerror("请输入仓库名称")
endif
else
%>
2.查看仓库信息
<%
CheckLogin
SQL="select*fromstorageorderbystorage_id"
rs.opensql,conn
%>
三.库存管理
1.入库管理
入库即操作,是对仓库的一个进的过程。
需要输入商品的数量、单价、摘要、供应商等信息。
故该页面的主要功能是显示该物品的一些基本信息如物品名称、当前的库存数目和单位等信息,并且收集客户端输入的待入库物品的数量、单价、供应商等信息。
%>
当用户填写完所需的信息后,单击“添加”,服务器将会把用户信息传给save-in.asp文件,其核心代码:
ifmsg<>""then
showerror(msg)
endif
session("selprovider")=request("selprovider")
sql="updatedetailsetjz_log=0wherename_id="&session("name_id")&"andstorage_id="&session("storage")
rs.opensql,conn
sql="select*fromdetailwherename_id="&session("name_id")&"andstorage_id="&session("storage")&"andleft_num>0orderbyid"
rs.opensql,conn,3,2
ifnotrs.eofthen
sql="select*fromdetail"
rs3.opensql,conn,3,2
dowhilenotrs.eof
rs3.addnew
rs3("jz_log")=0
rs3("storage_id")=session("storage")
rs3("provider_id")=request("selprovider")
rs3("name_id")=session("name_id")
rs3("rq")=date()
rs3("zl")=request("zl")
rs3("hs")=request("hs")
rs3("zy")=request("zy")
rs3("now_num")=rs("now_num")
rs3("now_price")=rs("now_price")
rs3("now_sum")=rs("now_sum")
rs3("left_num")=rs("left_num")
rs3("jz_log")=1
rs3.update
rs("left_num")=0
rs("jz_log")=0
rs.update
rs.movenext
loop
rs3.close
endif
rs.close
sql="select*fromdetail"
rs.opensql,conn,3,2
rs.addnew
rs("jz_log")=1
rs("storage_id")=session("storage")
rs("provider_id")=request("selprovider")
rs("name_id")=session("name_id")
rs("rq")=date()
rs("zl")=request("zl")
rs("hs")=request("hs")
rs("zy")=request("zy")
rs("in_num")=request("in_num")
rs("in_price")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 仓库 管理 数据库 课程设计 论文 仓储 系统