仓库管理系统的分析与设计Word下载.docx
《仓库管理系统的分析与设计Word下载.docx》由会员分享,可在线阅读,更多相关《仓库管理系统的分析与设计Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
(4)法律可行性
新系统的研制和开发,将不会侵犯他人、集体和国家的利益,不会违反国家政策和法律。
二、需求分析
本报告的编写目的是为了用最小的代价、在尽可能短的时间内确定问题是否能够解决,以及是否值得解决,并对软件的前景进行分析。
为了适应日趋激烈的市场竞争,企业需要对自身的经营状况有充分的了解,并通过有效的管理不断提高效率。
因此,对仓库的管理也成为提高生产经营效率的一个重要途径。
本仓库管理系统是针对企业仓库材料的出入库登记和查询统计等方面工作而开发的管理软件,是一个实用的管理信息系统,针对企业的实际需要,分析了企业仓库管理系统的功能,描述了两子系统的模块结构设计及实施过程中的技术要点。
(1)设备管理系统:
设备入库出库的服务,在新设备入库前,需输入设备的基本信息,并记录。
(2)人员管理系统:
包括添加仓库的用户,建立用户时需选定用户的权限等级。
仓库管理员可修改其他用户的密码和权限等级等信息。
(3)查询服务系统:
库存信息查询,使仓库的用户可以随时知道设备的储存量。
查询设备出入库的信息,了解仓库里设备的进出情况。
三、业务流程图
四、数据流图与数据字典
根据系统功能描述,采用面向数据流的分析方法,绘制出系统的数据流图。
1、数据流图
(1)顶层图
(2)0层图
2、数据字典
(1)数据流的描述
数据流编号:
D001
数据流名称:
设备入/还库信息
简述:
设备入/还库数量、日期
数据流来源:
采购员/经办人员
数据流去向:
仓库管理系统
数据流组成:
设备编号+设备名+入库日期+入库数量
数据流量:
1000/天
高峰流量:
3000/天
D002
设备出库信息
设备出库数量、日期
库存信息查询
经办人员
D003
设备余额
设备数量能不能借出
出库时库存检查
设备编号+设备名+设备数量
100/天
300/天
D004
人员的权限信息
人员的权限
查询时对人员权限的检查
经办人员
人员权限等级
100/天
300/天
D005
修改人员信息
修改人员的基本信息
对人员权限的检查
经办人员,管理人员,采购员
人员账号
(2)数据存储的描述
数据存储编号:
F001
数据存储名称:
人员信息
人员的基本信息
数据存储组成:
人员账号+人员密码+人员权限等级
关键字:
人员账号
相关联的处理:
P001
F002
库存信息
设备库存数量
设备编号
P002
(3)处理逻辑的描述
处理逻辑编号:
P001
处理逻辑名称:
人员信息判断
人员的权限等级
输入的数据流:
处理描述:
根据人员权限等级判断能否查询修改
输出的数据流:
处理频率:
100次/天
库存查询
查询需要借出的设备数量是否足够
D002
根据经办人员提供借出设备的设备号,查询需要借出设备的数量。
D003
100次/天
五、系统功能设计
根据数据流图,绘制出系统功能的层次图
各功能模块的功能描述:
用户信息维护:
包括修改密码、修改账号
设备入/出库服务:
记录入/出库的设备编号、数量、日期
六、数据库设计
1、E-R图
根据系统数据流图和数据字典,得出系统的各局部概念模型(E-R)和总体概念模型(E-R)如下图所示。
采购员采购设备E-R图:
管理员管理人员E-R图:
经办人借出归还设备E-R图:
全局E-R图:
各E-R图各实体的属性如下所示:
设备:
(设备号,设备名称)
采购员:
(账号,密码,权限等级)
经办人:
管理员:
仓库:
(仓库编号,仓库名称,仓库地址)
各E-R图中联系的属性如下所示:
入库信息:
(设备号,入库日期,供应商,供应商电话,数量,价格,采购员)
出库信息:
(设备号,出库日期,使用部门,数量,经办人,备注)
还库信息:
(设备号,还库日期,数量,经办人,归还部门)
2、关系模式的3NF设计
根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型。
人员信息表:
库存信息表:
(设备号,现有库存量)
设备信息表:
入库信息表:
出库信息表:
还库信息表:
七、系统实施
1、系统界面
遵循人-机界面的设计原则设计应用系统界面。
本系统主要界面运行实时截图如下:
【登陆窗口】
【仓库管理系统主界面】
【设备信息查询】
2、系统的主要源代码:
privatevoidInStorage_Load(objectsender,System.EventArgse)
{
MyConn.Open();
//打开连接
InStgAdapter.SelectCommand.CommandText="
SELECT*FROMstorage_In"
;
InStgAdapter.SelectCommand.Connection=MyConn;
InStgAdapter.Fill(InStgInfo);
//填充数据集
this.dataGrid1.DataSource=InStgInfo.DefaultView;
ISReport=(CurrencyManager)BindingContext[InStgInfo];
this.DataBindingsFunction();
DataGridTableStylets=newDataGridTableStyle();
ts.AlternatingBackColor=Color.Blue;
//颜色设置
ts.MappingName=InStgInfo.TableName;
this.dataGrid1.Select(0);
//选定第一列
this.textNum2.Enabled=false;
}
privatevoidDataBindingsFunction()//绑定
this.textNum2.DataBindings.Add("
Text"
InStgInfo,"
设备号"
);
this.textDate.DataBindings.Add("
入库日期"
this.textSupply.DataBindings.Add("
供应商"
this.textPho.DataBindings.Add("
供应商电话"
this.textAmount.DataBindings.Add("
数量"
this.textCost.DataBindings.Add("
价格"
this.textMan.DataBindings.Add("
采购员"
privatevoidadd_button_Click(objectsender,System.EventArgse)//增加记录
try
{
ISReport=(CurrencyManager)this.BindingContext[InStgInfo];
ISReport.AddNew();
//增加新记录
this.textNum2.Enabled=true;
this.textDate.Text=DateTime.Now.ToString();
this.change=true;
//还库数量更改
this.oldtxtAmount="
0"
this.textNum2.Focus();
//焦点在第一个字段上
}
catch(Exceptionex)
MessageBox.Show(ex.Message);
privatevoidsend_button_Click(objectsender,System.EventArgse)//提交信息
if(MyConn.State!
=ConnectionState.Open)
{
MyConn.Open();
}
if(this.textNum2.Enabled==true)
this.textNum2.Enabled=false;
if(this.textNum2.Text.Trim()=="
"
||this.textAmount.Text.Trim()=="
)//检查不能为空的字段
MessageBox.Show("
设备号,数量不能为空!
return;
ISReport.EndCurrentEdit();
if(InStgInfo.GetChanges()!
=null)//信息是否被重新编辑
if(!
change)
{
if(this.oldtxtAmount==this.textAmount.Text.Trim())
change=false;
else
change=true;
}
InStgAdapter.UpdateCommand.Connection=MyConn;
//更新到数据库
InStgAdapter.InsertCommand.Connection=MyConn;
InStgTran=MyConn.BeginTransaction();
InStgAdapter.UpdateCommand.Transaction=InStgTran;
InStgAdapter.InsertCommand.Transaction=InStgTran;
this.InStgAdapter.Update(InStgInfo);
if(change)//还库数量字段有新值了
{
stringnumber=this.textAmount.Text.Trim();
intchangeAmt=int.Parse(number)-int.Parse(oldtxtAmount);
stringdriveID=this.textNum2.Text.Trim();
SqlCommanddriveStorageUpdateCommand=newSqlCommand();
//更新库存表的现有库存
driveStorageUpdateCommand.Connection=MyConn;
//调用存储过程
driveStorageUpdateCommand.Transaction=InStgTran;
driveStorageUpdateCommand.CommandType=CommandType.StoredProcedure;
driveStorageUpdateCommand.CommandText="
UpdateStorage"
driveStorageUpdateCommand.Parameters.Add("
@i_Drive_ID"
SqlDbType.Char,10);
driveStorageUpdateCommand.Parameters["
].Value=driveID;
@i_InOutNumber"
SqlDbType.Int);
].Value=changeAmt;
@o_ErrMessage"
SqlDbType.VarChar,256);
].Direction=ParameterDirection.Output;
driveStorageUpdateCommand.ExecuteNonQuery();
InStgTran.Commit();
MessageBox.Show("
OK"
}
else
您没有修改任何信息"
catch(Exceptionex)
MessageBox.Show("
对不起,您输入的设备号错误!
!
具体信息:
+ex.ToString());
if(InStgTran!
=null)
InStgTran.Rollback();
=ConnectionState.Closed)
MyConn.Close();
return;
privatevoidcancel_button_Click(objectsender,System.EventArgse)
ISReport=(CurrencyManager)this.BindingContext[InStgInfo];
ISReport.CancelCurrentEdit();
//取消编辑
已经取消!
MessageBox.Show(ex.ToString());
return;
privatevoiddataGrid1_Select(objectsender,System.EventArgse)//在数据集中选定记录
if(this.InStgInfo.Rows.Count>
0)
intcurrentRow=this.dataGrid1.CurrentCell.RowNumber;
if(currentRow>
=0&
&
currentRow<
ISReport.Count)
ISReport.Position=currentRow;
this.oldtxtAmount=this.textAmount.Text.Trim();
3、开发过程中遇到的技术问题以及解决方法
在程序完善过程中,我们也遇到了许多问题,但经过自己的不懈努力及查阅大量的资料,最终都得到了基本满意的答案。
同时,同学也给了我许多有益的启示,促动和帮助,使我能够顺利的完成课题。
例如MicrosoftVisualStudio2005中的案例与MicrosoftSQLSever2000中设计好的数据库连接问题;
设计好的软件不能正常关闭,导致数据不能保存。
这些问题的答案都能从网络上找到。
八、系统开发总结
本次设计使用了MicrosoftVisualStudio2005结合MicrosoftSQLSever2000来开发一个仓库管理系统。
结合网络获取的资料及个人生活经验,分析了作为仓库管理系统所需要实现的基本的管理功能,在此基础上确定了本次课程设计所开发的系统的预期功能。
这次我们所面对的是我们以前所不成面对的软件开发报告的撰写,在报告的撰写中,我们遇到了很多的困难。
由于我们缺乏对项目的开发经验,我们走了许多的弯路,不过在指导老师的辅导下,我们还是克服了重重困难,在预定的时间内完成了老师所分配的任务。
我觉得只有自己真正的在实践中得到的才是你所需要的。
这个课程设计要自己做,尽管它是否有结果,别人的思想可以借鉴过来,但不能照抄照搬。
你所学的知识,将是一种解决问题的方法、思想。
这是我们所需要的,如何将我们的系统知识串成串,按照我们的思想,运用知识去解决它,我们将得到很大的收获。
此外,课题在现今社会中要有一定的生命力,以便我们更深入的研究。
九、主要参考文献
著作:
[1]王珊萨师煊.数据库系统概论[M].北京:
高等教育出版社,2006.5
[2]耿骞韩圣龙傅湘玲.信息系统分析与设计[M].北京:
高等教育出版社,2008.1
[3]李志刚.决策支持系统原理与应用[M].北京:
高等教育出版社,2009.1