仓储管理系统设计.docx
- 文档编号:10669661
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:36
- 大小:713.88KB
仓储管理系统设计.docx
《仓储管理系统设计.docx》由会员分享,可在线阅读,更多相关《仓储管理系统设计.docx(36页珍藏版)》请在冰豆网上搜索。
仓储管理系统设计
软件开发综合技能训练报告
仓储管理系统设计
专业
计算机科学与技术
学生姓名
班级
学号
指导教师
李萍
完成日期
2015年1月8日
信息学院
仓库管理系统的设计
1简介
1.1.课程设计目的及要求
数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程。
数据库课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程分为系统分析与数据库设计、应用程序设计和系统集成调试三个阶段进行。
数据库课程设计的主要目标是:
a.加深对数据库系统、程序设计语言的理论知识的理解和应用水平。
b.通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
1.2.课程设计的主要内容
运用数据库基本理论与应用知识,在微机RDBMS(SQLServer)的环境上建立一个数据库应用系统。
要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。
背景资料:
1)有一个存放商品的仓库,每天都有商品出库和入库。
2)每种商品都有名称、生产厂家、型号、规格等。
3)出入库是必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。
设计要求:
1)进行需求分析,编写数据字典。
2)设计E-R图。
3)设计出入库单据的录入。
4)实现按商品名称、出入库日期的查询。
5)实现分别安日、月和年对出入库商品数量的统计。
1.3.开发工具
JBuilder是目前最好的Java开发工具之一,在协同管理、对J2EE和XML的支持等方面都非常的优秀,它的这些特性是其他同类产品无法比拟的。
同时它在Applet和EJB开发方面也具有独特的优势,使得它在J2EE工程开发界具有独特的优势,成为目前最流行的Java开发工具之一。
一般来讲Jbuilder提供了企业数据库的动态链接,可以开发出基于网络的动态分布计算数据库管理系统。
在现在的企业信息管理系统的实现中通常是结合Jbuilder和Weblogic_server来共同实现数据库开发系统。
Jbuilder的主要特性包括四个方面:
(1)Tomcat组件的集成:
Tomcat组件是业界公认的优秀的网络开发软件,Jbuilder和它集成,大大方便了Java在网络和数据库分布计算方面的应用,使得Java的Web开发更容易。
(2)企业信息化应用的开发功能:
可以据此集成多种应用服务器,大大方便了Java在企业信息化方面的应用。
提高了企业信息化的水平,促进了Java在工程界的广泛应用。
(3)非常简单的程序发布功能:
只需简单的步骤便可将自己的程序打包进行发布,大大方便了用户使用和发布自己的程序。
(4)由于在现在的软件开发中团队合作是最重要的,Jbuilder就提供了团队开发能力,可以集成多种版本控制产品,方便了不同层次的用户使用。
Jbuilder是按照SUN公司提供J2EE标准来构筑的,它是一个遵循J2EE标准的可视化集成开发环境,目前在业界具有广泛的用户,成为一个处于市场领先地位的跨平台环境,主要用于构建一些具有行业实力的企业Java小程序,如为企业信息化而产生的客户前台浏览界面,为特定的用户开发一些专业的程序包和特定的类库。
JBuilder继承了Borland公司开发工具系列的优秀特性,继承了许多Delphi和C++Builder产品的优秀特性,这使得用过这两种产品的用户很容易的就可以过渡到JBuilder的开发环境当中,熟练的开发出高质量的Java程序。
在JBuilder这个开发环境中实际上包含了用户在Java集成开发环境中所需要的一切东西。
包括对常用的面向对象语言UML建模工具的支持。
我们可以在这个环境下对系统进行建模,进行系统调试,对系统进行打包发布。
SQLServer在管理企业信息方面最灵活和最经济高效。
在尽可能提高服务质量的同时削减了管理成本。
除极大地提高质量和性能以外,SQLServer作为微软公司的数据库产品,能够和绝大多数建立在WindowsXP平台上的软件兼容,具有很强的兼容性,并且SQLServer本身功能也十分强大,其中还有SQL查询分析器、SQLServer服务管理器、企业管理器等功能强大的工具,所以我选择SQLServer作为我们的的后台数据库。
2算法说明
2.1.需求分析数据字典
1.对图中"采购",在数据字典中可对其作如下描述:
处理过程:
确定订单
说明:
采购员以购买计划为准,确定价格,数量,总金额,供应商,在采购过程中生成订单及订单.
输入:
计划单编号
输出:
订单
预订单
程序提要:
A在购买计划表中查找是否在价格范围之内
B在价格范围之内,则单价乘以数量是否在总金额范围之内
C若A,B都满足,则添加一条记录
D处理完后,形成订单和预订单
2.对图中"检验",在数据字典中可对其作如下描述:
处理过程:
核对物品信息后生成入库单
说明:
送货员将物品送到后,管理员以预订单为准核对物品信息,确定无误后,登记入库单.
输入:
预订单编号
输出:
入库单
程序提要:
A在预订单中查找物品(例如:
M)信息进行核对
B如若无误,则在入库单中添加一条物品(M)记录
C核对完后,形成入库单
3.对图中"入库",在数据字典中可对其作如下描述:
处理过程:
入库后修改(增加)现有库存表
说明:
入库后增加现有库存表
输入:
入库单编号
输出:
现有库存表
程序提要:
A在入库单中查找到每一种物品的数量,在现有库存表中相应增加
B处理完后,形成现有库存表
4.对图中"出库",在数据字典中可对其作如下描述:
处理过程:
出库后登记入库单并修改(减少)现有库存表
说明:
提货员提交出库申请,由管理员批准后,登记出库单并修改(减少)现有库存表
输入:
出库申请编号
输出:
出库单
现有库存表
程序提要:
A在出库申请单中查找物品(例如:
M)信息进行核对,出库数量是否超过库存或出库后数量小于最小库存
B如若无误,则在出库单中添加一条物品(M)记录
C核对完后,形成出库单
D在出库单中查找到每一种物品的数量,在现有库存表中相应加减少
E处理完后,形成现有库存表
5.对图中"对比",在数据字典中可对其作如下描述:
处理过程:
核对归还物品信息后生成还库单
说明:
将物品归还时,管理员以出库单为准核对物品信息,确定无误后,登记还库单,如若有误,登记惩罚表.
输入:
出库单编号
输出:
还库单
惩罚表
程序提要:
A管理员在出库单中查找物品(例如:
M)信息进行核对
B如若无误,则在还库单中添加一条物品(M)记
C核对完后,形成入库单
D如若有误,则登记惩罚表
E处理完后,形成惩罚表
6.对图中"归还入库",在数据字典中可对其作如下描述:
处理过程:
还库后修改(增加)现有库存表
说明:
还库后增加现有库存表
输入:
还库单编号
输出:
现有库存表
程序提要:
A在还库单中查找到每一种物品的数量,在现有库存表中相应增加
B处理完后,形成现有库存表
2.2.概念模型设计
图2-1E-R图
2.3.数据库设计
图2-2关系图
表:
1).
表2-1商品表
createtableSHANGPIN
(Snochar(5)primarykey,
Snamechar(20)unique,
Sleibiechar(10),--食物,衣物,生活用品,家用电器等等
Sxinghaochar(8)unique,
Sdanweichar
(2)notnull,--件,个等等
Spriceint
);
2).
表2-2仓库表
createtableCANGKU
(Cnochar(5)primarykey,
Cnamechar(20)
);
3).
表2-3库存表
createtableSTORE
(Snochar(5),
Cnochar(5),
NUMint,
primarykey(Sno,Cno),
foreignkey(Sno)referencesSHANGPIN(Sno),
foreignkey(Cno)referencesCANGKU(Cno)
)
4).
表2-4管理员表
createtableMANAGER
(Mnochar(5)primarykey,
Mnamechar(10)notnull,
Msexchar
(2)check(Msexin('男','女')),
Mageintcheck(Mage>=18andMage<=60),
Mtelchar(15)
)
5).
表2-5客户表
createtableKEHU
(KHnochar(5)primarykey,
KHleibiechar(10),
KHnamechar(20),
KHlxrchar(10),
KHtelchar(15),
CITYchar(5),
)
6).
表2-6入库表
createtableRUKU
(RKnochar(5)primarykey,
RKdaychar(8),
Snochar(5),
Snamechar(20),
Cnochar(5),
RKnumint,
RKpriceint,
RKmoneyint,
RKyfkint,
KHnochar(5),
KHnamechar(20),
Mnochar(5),
Mnamechar(10),
foreignkey(Sno)referencesSHANGPIN(Sno),
foreignkey(Cno)referencesCANGKU(Cno),
foreignkey(Mno)referencesMANAGER(Mno),
foreignkey(KHno)referencesKEHU(KHno)
)
7).
表2-7出库表
8.
表2-8密码表
createtableCUKU
(CKnochar(5)primarykey,
CKdaychar(8),
Snochar(5),
Snamechar(20),
Cnochar(5),
CKnumint,
CKpriceint,
CKmoneyint,
CKyfkint,
KHnochar(5),
KHnamechar(20),
Mnochar(5),
Mnamechar(10)notnull,
foreignkey(Sno)referencesSHANGPIN(Sno),
foreignkey(Cno)referencesCANGKU(Cno),
foreignkey(Mno)referencesMANAGER(Mno),
foreignkey(KHno)referencesKEHU(KHno),
foreignkey(Sno,Cno)referencesKUCUN(Sno,Cno)
)
8).
表2-9密码表
createtablePASSWORDS
(Mnochar(5),
Passwordschar(6),
foreignkey(Mno)referencesMANAGER(Mno)
)
视图:
1).
图2-3仓库信息视图
表2-10
2).
图2-4库存信息视图
表2-11
触发器:
1).入库触发器创建:
要求:
在添加入库记录时,必须修改库存表,分两种情况,一是(Sno,Cno)在库存表中有记录,修改库存数量即可,二是没有记录时,要添加相关记录。
createtriggerWHENRK
onRUKU
forinsert
as
DECLARE@S_noCHAR(5),@C_nochar(5),@N_umint
SELECT@S_no=Sno,@C_no=Cno,@N_um=RKnum
FROMINSERTED
if(EXists(selectSnofromSTOREWHERESno=@S_noANDCno=@C_no))begin
updateSTORE
setNUM=NUM+@N_um
whereSno=@S_noANDCno=@C_no
end
if(notEXists(selectSnofromSTOREWHERESno=@S_noANDCno=@C_no))
begin
insertintoSTORE
values(@S_no,@C_no,@N_um)
end
2).出库触发器创建:
要求:
在添加出库记录时,必须满足(Sno,Cno)外码约束,也就是无法添加(Sno,Cno)不在库存表中的记录。
满足外码约束后,如果出库数量不大于库存数量,修改库存数量即可,但当出库数量大于库存数量,将无法添加相关记录。
createtriggerWHENCK
onCUKU
forinsert
as
DECLARE@S_noCHAR(5),@C_nochar(5),@N_umint,@CK_noCHAR(5)
SELECT@S_no=Sno,@C_no=Cno,@N_um=CKnum,@CK_no=CKno
FROMINSERTED
if(EXists(selectSnofromSTOREWHERESno=@S_noANDCno=@C_noandNUM>=@N_um))begin
updateSTORE
setNUM=NUM-@N_um
whereSno=@S_noANDCno=@C_no
end
if(EXists(selectSnofromSTOREWHERESno=@S_noANDCno=@C_noandNUM<@N_um))begin
deletefromCUKUwhereCKno=@CK_no
end
2.4.完整性设计
•实体完整性:
在商品表中定义商品号Sno为主码;在仓库表中定义仓库号Cno为主码;在库存表中定义商品号和仓库号(Sno,Cno)为主码;在管理员表中定义管理员编号Mno为主码;在客户表中定义客户编号KHno为主码;在入库表中定义入库号RKno为主码;在出库表中定义出库号CKno为主码;在密码表中定义管理员编号Mno为主码;
•实体完整性检查和违约处理:
1.检查主码值是否唯一,如果不唯一则拒绝插入或修改
2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改;
•参照完整性:
在库存表中定义商品号和仓库号为建立在商品表和仓库表上的外码;在入库表中定义商品号为建立在商品表上的外码,仓库号为建立在仓库表上的外码,客户号为建立在客户表上的外码,管理员编号为建立在管理员表上的外码;在出库表中定义商品号为建立在商品表上的外码,仓库号为建立在仓库表上的外码,客户号为建立在客户表上的外码,管理员编号为建立在管理员表上的外码;在密码表中定义管理员编号为建立在管理员表上的外码。
•参照完整性的检查和违约处理:
1.拒绝执行:
不允许该操作执行。
该策略一般设置为默认策略;
2.级联操作:
当删除或修改被参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中的所有造成不一致的元组;
3.设置为空值:
当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值;
•用户自定义完整性:
在管理员表中,添加完整性约束条件,年龄在18—60之间;性别只能在‘男’‘女’两个选项中取值;姓名不能为空;否则,无法插入;
2.5.主要功能模块设计
图2-5登录模块设计
图2-6主菜单设计
此模块设计主要是添加两个连接其他窗口的按钮。
图2-7查询功能主菜单设计
图2-8查询信息显示模块设计
该模块设计主要是在窗体内添加reportviewer控件,并添加相关设计的报表。
其他查询信息模块完全相同,不再赘述。
图2-9仓库管理菜单设计
图2-10商品信息管理菜单设计
图2-11添加商品信息模块设计
图2-12删除商品信息模块设计
其他管理模块与上述商品信息管理模块类似,在此不再赘述。
3测试结果
3.1.登录
图3-1登录
如果登陆账号与密码无效,将弹出提示窗口
图3-2
3.2.查询
正确登录后,依次点击‘查询’,‘查询商品信息’弹出报表窗口,点击‘返回上级’可返回上级
成功登陆后出现主菜单
图3-3查询
查询菜单
图3-4查询菜单
商品信息报表窗口
图3-5商品信息报表窗口
其他信息查询调试过程类似,不在赘述。
3.3.管理
入库调试:
成功登陆后,依次点击‘管理’,‘入库管理’,弹出入库信息填写窗口。
图3-6管理菜单
图3-7入库信息填写
图3-8
通过查询入库信息,可知入库添加成功。
入库信息报表
通过比较库存信息可知入库记录添加对库存信息修改有效
图3-9入库信息报表
图3-10入库前
图3-11入库后
出库调试:
成功登陆后,依次点击‘管理’,‘出库管理’,弹出出库信息填写窗口。
图3-12出库信息填写
如果填写信息有违反数据库有关约束时,再点击添加后会弹出有关系统处理错误提示。
通过查询出库信息,可知出库添加成功。
图3-13出库信息
通过比较库存信息可知出库记录添加对库存信息修改有效
出库后库存信息
图3-14
管理员信息管理调试:
添加管理员
成功登录后,依次点击‘管理’‘管理员信息管理’‘添加管理员’弹出添加管理员窗口
图3-15管理员信息
如果填写信息有违反数据库有关约束时,再点击添加后会弹出有关系统处理错误提示。
通过比较查询管理员信息,可知添加成功。
图3-16添加前
图3-17添加后
可调试新管理员登录有效。
删除管理员
成功登录后,依次点击‘管理’‘管理员信息管理’‘删除管理员’弹出删除管理员窗口
图3-18删除管理员窗口
通过比较删除前后管理员信息报表可知删除成功
图3-19删除后
该模块调试成功。
4分析与探讨
4.1.基础数据模块
基础数据模块包含的内容有供应商信息、仓库基本信息,员工信息,商品基本信息,商品库存信息,这些数据是其余三个模块功能实现的基础,在此模块能进行信息的查询、添加、更新、删除。
在数据库中建立不同的报表,将各个子模块的信息录入到数据库中,并有管理员随时对数据库中的信息进行更新和修改,如有新的商品进入时需要添加信息,商品价格变动时要更改价格信息,在商品售出时,要记录售出的数量并将原有的商品信息进行清理
(1)商品信息录入:
输入所需录入的信息的全部内容,点击确定按钮即可将记录添加到数据库
(2)商品信息查询:
登录后再组合框中选择要查询的字段,则文本框中输入如要查询的内容,点击查询,根基ODBC绑定的数据库,显示数据库中相应表对应的数据信息
(3)商品信息更新:
定位要更新的记录,在相应的文本框中输入要更新的信息,点击确定后,变可以将记录添加到数据库中。
(4)商品信息删除:
定位要删除的信息,点击按钮即可删除数据库库中的相应的记录
4.2.数据查询模块的设计与实现
用户在系统界面选择系统功能完成不同的操作,实现系统的使用。
根据以上的分析和总结,系统的因该包括四部分:
入库、出库、订单和现实报表。
入库时商品进入仓库时的信息,如商品编号、种类、数量、价格、入库时间、仓库编号的信息;出库类似,但包含出库时间,出库等信息;订单是系统根据系统情况分析要购买的商品种类数量;报表是查询各种商品信息和仓库信息,提供商信息时显示的表格
4.3.库存管理模块
(1)库存盘点
软件系统周期性的自动检查仓库中商品的种类并记录商品的数量,同时产生表格给管理员,对于超过最大限度和最小限度的商品分别给予报警,有管理员确认信息无误后,由系统产生采购哦计划表
(2)库存查询
用户登录系统后,根据需要的的商品的种类输入关键字检索,可以查询不同的仓库的商品,也可以查询商品在不同的仓库中的库存和价格等。
4.4.数据库管理模块的实现
由于数据库管理模块分工详细,项目繁多,在此将其合并为三个子功能模块设计
本模块包含入库管理,出库管理和库存管理三个字模块
(1)入库管理模块
入库登记:
主要对入库信息进行录入操作,即第一大模块的基础。
点击添加,输入所有要录入的信息,输入完毕后,将记录添加到数据库
入库查询:
主要讲入库表中的所有数据信息查处并显示,这样用户便可以查看显存的货物信息,并以此为据进行货物的采集,及采购表和采购单明细表的录入和更新
(2)出库管理模块
出库登记:
主要对出库信息进行录入操作,输入出库信息后将记录添加到出库数据库中,及销售输出表和销售出库明细表的有关内容的录入和更新
出库查询:
主要讲出库表中的所有数据信息查出兵显示,这样用户便可以查看所有的出货信息
(3)库存管理模块
此模块有三个子模块,库存信息查询模块,库存信息更新模块,库存信息删除模块。
其中查询模块用于对数据库中的入库、出库信息进行查找并显示;更新模块用于更新数据库中的信息;删除模块用于删除无效或错误的库存信息
库存信息查询模块:
本名模块的输入输出字段为商品编号、商品名称、商品价格、数量、供应商等,改模块的功能同商品信息查询模块,在组合框中选择要查询的字段,文本框中输入要查询的内容,系统连接数据库,在页面显示数据库中相应数据
数据库信息更新模块:
功能与实现同商品信息更新模块,当进入主界面时,单击库存管理菜单会出现窗口,在华联山谷要更新的的记录字段中,填上要更新的字段。
点击确定后更新成功则提示,取消操作时放弃更新,是记录返回到选择更新记录位置上
库存信息删除模块:
当进入主界面时,单击库存管理里菜单会出现窗口,找到要删除的记录,点击删除即可实现删除,点击取消将会放弃操作,是记录返回到选择删除的记录位置
5小结
通过本次课程设计,我学习到了很多实用的知识,由于之前对C#知识的不足,在课程设计中遇到很多困难,尤其是在数据库的连接上,最后在老师的帮助下才解决问题,随着一个个问题的解决,我学到了很多知识,熟练了对软件的使用,每做完一个模块时,都有一种成功的喜悦,体会到了学习的快乐,这次设计的软件非常不完善,我将继续努力学习C#.NET,将数据库与编程语言结合,争取在接下来的这个暑假能开发出一个完善的系统,掌握更多实用的东西。
本次课程设计让我有机会能把之前学的数据库知识系统的串联起来,尤其是对数据库的建立与操作都上了一个台阶,包括怎么建立更简洁,没有冗余而又很完备的数据库系统,怎么对数据库结构模型进行设计,主键外键的定义,更重要的是对前期概念模型,也就是E-R图的规划,深刻的体会到前期工作的重要性。
只有正确详尽的对系统进行分析,才能更高效的完成系统的开发。
附录
附录1源程序清单
privatevoidbutt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓储 管理 系统 设计