物流管理系统.docx
《物流管理系统.docx》由会员分享,可在线阅读,更多相关《物流管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
物流管理系统
物流管理系统
一.引言
实习目的:
通过实习,参与具体的java开发项目,进一步提高了java开发的基本技术,丰富java开发的实战经验。
过学习,巩固大学所学专业的基础知识,提高分析,判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解计算机专业软件开发的具体流程,完善了自己的知识结构。
为毕业之后能够更快地进入工作状态并且能够更好地工作,打好一定的基础。
实习要求:
能够熟练运用Java,独立设计和编制一个具有一定难度的、解决实际应用问题的物流管理系统的应用程序。
2.系统设计
软件系统的总体设计大约要经历可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。
可行性分析和项目开发计划在前面已经叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。
编码过程将在下一章节论述,而测试和维护过程不在本文中叙述。
系统需求分析
在经过前一阶段的分析之后,我确定了我的开发课题为仓库物流管理系统。
现在所要做的是要准确定义系统必须做什么以及系统必须具备的功能。
软件需求分析中我采用结构化分析方法(Structured Analysis,简称SA),SA是面向数据流进行需求分析的方法,像所有的软件分析方法(如面向对象分析方法、IDEF方法等等)一样,SA也是一种建模活动,它使用简单易读的符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘满足功能要求的软件模型。
在系统中我采用数据流图(DFD)这种半形式化的描述方式表达需求。
它是一种功能模型,以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能。
它有四种基本图形符号:
◆ →:
箭头,表示数据流;
◆ 〇:
圆或椭圆,表示加工;
◆ ═:
双杠,表示数据存储;
◆ □:
方框,表示数据的源点或终点。
为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的,要按照问题的层次结构进行逐步分解,并以一套分层的数据流图反映这种结构关系。
在这里我一共使用了三层数据流图,即顶层图,0层图和1层图(也是底层图)。
在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,它的输入流是该系统的输入数据了,输出流是该系统的输出数据;底层流图是指其加工不需要再做分解的数据流图,中间层流图表示对其上层父图的细化,它的每一步加工可能继续细化成子图。
经过对系统的分析首先得到系统的顶层DFD,如图1-1:
图1-1物流管理系统顶层图
进一步细化得到系统的0层DFD,如图1-2:
图1-2物流管理系统的0层图
再进一步细化每一个数据加工功能,得到系统的1层DFD图(略)。
在这里只给出有关顶层和0层数据流图,它们体现出了系统的功能部分,而1层DFD图暂略,后面具体说明其内容。
通过以上对数据流图的分析之后,我们已大体地了解了系统的功能和目标,接下来所要做的就是系统功能模块的划分和数据库的设计,也就是系统的概要设计。
系统概要设计
在软件需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。
现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。
首先,我们需要描述的是系统的总的体系结构。
1.1.1系统结构设计
系统的概要设计中最重要的就是系统的模块化。
模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。
每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。
也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
在系统的概要设计中我采用结构化设计(Structure Design,简称SD),SD以需求分析阶段产生的数据流图DFD为基础,按一定的步骤映射成软件结构。
我首先将整个系统化分为几个小问题,小模块,在系统中,我设计了工作人员管理,物品类别管理,数据维护管理,物品登记与物流处理管理,物流情况查询和物流情况汇总6个模块。
然后,进一步细分模块,添加细节。
比如,工作人员管理我又将其分为工作人员注册、工作人员注销、授权、密码修改、增加照片等;物品登记与物流处理管理分为物品登记、进库、出库、报损等。
以下就是系统功能模块图
,如图1-3:
图1-3系统功能模块图
1.1.2数据库设计
在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域:
信息世界,数据世界,现实世界。
现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界。
这些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作。
这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心。
1.E-R图设计
在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界进行抽象。
目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。
在本系统中我采用“实体联系模型”(E-R模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。
E-R模型直接从现实世界抽象出实体类型及实体间联系,然后用E-R图来表示数据模型。
它有两个明显的优点:
接近于人的思维,容易理解;与计算机无关,用户容易接受。
但E-R模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。
ER图是直观表示概念模型的工具,它有四个基本成分:
◆ 矩形框,表示实体类型(考虑问题的对象)。
◆ 菱形框,表示联系类型(实体间的联系)。
◆ 椭圆形框,表示实体类型和联系类型的属性。
对于关键码的属性,在属性名下划一横线。
◆直线,联系类型与其涉及的实体类型之间以直线连接。
本系统为仓库物流管理,主要管理物品的登记、流通以及种类和工作人员等事项。
仓库根据需要可以查询物品的信息,同时还需要了解在库存流通中员工的参与情况。
依据物流管理的实际情况,考虑了多方面的因素以后,确定系统的E-R图如下:
图1-4工作人员表E-R图
图1-5物品登记表E-R图
图1-6物品流通表E-R图
图1-7物品种类表E-R图
图1-8数据库表关系图
在该数据库中,本系统中的物品流通是核心,也是基本,没有了物品流通其它的也就没有什么意义了。
经手人的添加是考虑到责任问题,也就是说,在物流管理的实际运用中,出现了责任不清的现象,特别是由于仓库的进出物品数量都比较大时产生了一系列问题,所以在设计数据库时,我特别考虑到这一点,在物品流通表中加入了经手人。
2.数据库表格设计
在完成系统的E-R图之后,需要将E-R模型转化为关系模型,也就是说,要设计出数据库所需要的表格。
在这里,我选用的是关系数据库。
因为关系数据库中的二维表格可以很清楚地描述数据之间的联系。
根据系统E-R图,针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下四张表格,分别是工作人员信息表,物品流通信息表,物品登记信息表和物品种类信息表。
通过对这四张表格的操作可以较好地完成系统设计的各项功能,四张表格之间有着不同程度的联系。
工作人员信息表(图1-9):
图1-9工作人员信息表图
工作人员信息表主要用于记录物流管理人员的详细信息,包括职员ID、姓名、密码、操作权限、停用、联系电话、说明、照片和日期类型等有关工作人员的各类信息。
在该表中职员ID是主键,它是工作人员的值是登记时自行填写的,它会和经手人相对应的,体现出物品是经谁的手出入库的。
姓名和密码的值也是登记时自行填写的,但必须要记住。
它们是在用户登陆时用来确定用户和密码的正确性,以防止非法用户登陆。
操作权限则是工作人员在操作系统的时所授权的范围,分为物品登记、物流处理、物流查询和物流汇总。
停用则是指该注册工作人员是否可以操作本系统。
联系电话、说明和照片则是介绍个人情况的。
日期则是系统当时默认时间的,是不可以修改的。
物品流通信息表(图1-10):
图1-10物品流通信息表图
物品流通信息表主要用于记录各物品经仓库和物流管理人员的详细信息,包括物流ID、物品ID、物流类型、数量、经手人、日期、说明和记录特征类型等各类信息。
该信息表是数据库的主表,是不可缺少的。
在该表中物流ID是主键,它是记录每一次物品流动时的唯一编号,不会有重复,而且是计算机自动编号。
物品ID则是记录每一件物品本身的编号,它跟物流ID是有区别的。
数量则是每次流通数量的多少。
而经手人前面已经说过,这里就不在叙述了。
日期则是记录当时物流的时间,是当时的默认时间,是系统给定的。
说明是指记录物品当时的情况或物品的特征的。
记录特征就很好理解了,就是该操作是否被记录。
物流类型则是记录物品流通的一种形式,包括:
"进库"Or"出库"Or"报损"。
值得提出的一点是入库记录和出库记录的添加不仅仅是单表操作,由于它们都与库存记录相联系,所以,无论您是添中入库记录还是添加出库记录,都必须同时修改库存记录,以保持数据的一致性,否则将引发系统出错而这些我都让其在系统中自动完成。
无论您是添加入库记录,还是添加出库记录,系统都将自动修改库存中物品的数量,而且,在您出库的数量大于库存数量时,系统还会自动提示错误,这样就可以防止一定错误的发生。
物品登记信息表(图1-11):
图1-11物品登记信息表图
物品登记信息表主要用于记录仓库中各各物品的详细信息,包括物品ID、名称、类别ID、单价、说明和照片类型等有关物品的各类信息。
在该表中物品ID作为主键,它是管理员每增加一件物品时,物品ID就会自动为其编上一个号码。
类别ID则是说明该物品属于某一物品种类的。
而名称、单价、说明和照片是介绍物品本身的信息。
物品种类信息表(图1-12):
图1-12物品种类信息表图
物品种类信息表主要用于记录仓库中物品种类的信息,包括类别ID和说明两个类型的信息。
类别ID是指创建一类物品的种类的称呼。
而说明则是对类别ID进行描述。
3.系统实现
登录窗体的设计及实现
登录界面是一个系统的开始,所以我就从系统的开始进行说明。
登录窗体是系统的一个门,只有通过它才能进入主界面,所以登录界面是非常关键的。
如下图2-1:
图2-1登录窗体图
该窗体主要是完成职员ID和密码的校对,所以下面这段代码就是校对职员ID和密码,其与数据库的链接采用代码来完成。
DimstrZyIDAsString,strMmAsString
DimrsAsADODB.Recordset
strZyID=Trim(txtZyID)
strMm=Trim(txtMm)
Setrs=mCdt.rsGZRYDL(strZyID,strMm)
'验证用户
Ifrs.EOFThen
MsgBox"登录失败!
",vbInformation
txtZyID.SetFocus
txtZyID.SelStart=0
txtZyID.SelLength=Len(txtZyID.Text)
Else
gbytZyQX=rs("操作权限")
gstrZyID=strZyID
gblnOK=True
Hide
EndIf
下图2-2是“修改密码窗体”,只有通过鼠标点击登录窗体中