管理信息系统.docx
《管理信息系统.docx》由会员分享,可在线阅读,更多相关《管理信息系统.docx(26页珍藏版)》请在冰豆网上搜索。
管理信息系统
仓库管理信息系统设计与实现
1课题简介
课题:
仓库管理信息系统
任务:
开发仓库管理系统,主要为减轻仓库管理人员的负担,使货物的存入记录与取出记录相对完善,便于货物的增加与减少,降低出错率,使管理更加合理、科学,也为经营者节省开支。
在系统中应实现货物的入库、出库、货物信息盘点等操作,由于在仓库管理的过程中会涉及到大量的数据操作,如数据的添加、删除、修改和保存等,因此在系统中应充分完善这些功能的实现,为避免数据的误操作或其它原因造成的数据损坏在系统中数据的备份和还原必不可少。
该系统正是在此基础上开发出来的。
功能概述:
该系统界面友好,操作简便,能完成用户的注册,用户信息管理,供应商信息管理,仓库信息管理,货物入库、出库、和盘点管理,数据的备份和还原等一系列仓库管理功能,开发本系统的总体任务是实现仓库信息管理的系统化和自动化,帮助管理人员更好更高效地完成仓库管理工作。
本着实用性和介绍性的原则,整个系统由五大模块组成,每个大的模块又包括二至三个小的模块。
(1)用户管理部分:
包括个人信息管理、注册信息管理和退出;其功能是实现对个人信息的查询、修改和注销,完成新用户注册以及推出系统等操作。
(2)基本信息管理部分:
包括供应商基本信息和商品基本信息管理,其功能是实现对供应商和商品信息的添加和修改、删除和查询等操作。
(3)仓库管理部分:
包括货物的入库、出库和盘点管理,其功能是实现货物的入库和删除历史记录,自动查询要出库的货物并记录出库信息,查询需盘点的货物的信息并进行货物盘点等操作。
(4)系统维护部分:
包括数据的备份和还原两项功能,实现仓库信息的定期备份和还原。
(5)帮助部分:
设置关于和使用帮助使用户了解系统的基本信息。
系统具有高效、易操作、易维护等特点,并且系统结构清晰、界面友好,功能较为齐全,能有效地协助管理人员进行仓库管理工作。
如果要真正把它用到仓库的自动化管理中,还需要对该系统进行一步的完善工作。
2系统需求分析
2.1可行性分析
可行性研究就是预开发软件系统的总体目标,给出它的功能、性能、可靠性以及其他方面的要求。
其目的是用最小的代价在尽可能短的时间内确定问题是否能够解决、是否值得去解决。
下面从三个方面分析本系统的可行性:
⑴技术可行性
采用SQLServer进行后台数据库的管理、操作和维护,用VisualStudio2005进行前台界面设计、实现后台数据库的接口、数据的录入、查询、浏览等功能。
根据VisualStudio2005的特点及其强大、方便、快捷的开发工具,以及他们当前的广泛应用,充分说明在技术方面可行。
⑵经济可行性
经济可行性分析(能否赢利),是从经济的角度分析系统的规划方案有无实现的可能和开发的价值;分析系统所带来的经济效益是否超过开发和维护网站所需要的费用。
此仓库管理系统在实际的生活中应用非常的广泛,存在着很大的利益,而且使用和维护也非常的方便,费用不高,所以有着很好的经济可行性。
⑶开发环境可行性
本系统对设备的软硬件的要求都不高,我们只需长有WindowsXP,VisualStudio2005以及SQL2005以上软件的电脑都可以达到我们的要求,而目前这种配置已经很普遍了。
2.2开发工具和运行环境
VisualStudio2005提供了一个方便实用的可视化界面操作,集成环境会生成大量的框架代码,节省了很多工作,另外它还有动态程序提示功能,为设计这减少了很多任务。
此外它支持VB、C#、VC++等设计语言以及程序设计的可扩展性,页面缓存技术等,对程序设计者来说是很好的选择。
SQLServer是微软推出的大型关系数据库系统,是为ADO.NET和大量数据存储量身定做的,所以本系统选择了SQLServer作为后台数据库,而没有选择Access数据库,是为了能有更好的效率去查询和操作数据库以及满足仓库管理的大量数据操作。
2.3研究设计中要解决的问题
仓库管理系统主要功能是货物的入库、出库、货物盘点和数据的备份还原等功能,因此在设计的过程中要满足这些功能的需求:
(1)如果用户没有注册是不能使用该系统的,在注册的过程中管理员的编号和所在仓库号不能是随便填写的,在数据库中必须有仓库信息才能选取相应的仓库编号,此外如果用户注册的编号已被注册过则要自动提示用户不能注册此编号;在个人信息管理中应有用户信息的修改和注销等功能。
(2)供应商信息和仓库信息作为与仓库管理联系紧密的基本信息,应设置完善的添加、删除、修改和查询等功能以满足对这些基本信息的管理。
(3)货物的入库、出库和盘点是仓库管理的主要部分,这个部分设计最复杂最容易出错;在入库时不但要记录货物入库时的详细信息以供查询历史记录使用,还要完成库存货物的更新,如:
如果库存中没有此货物,应将货物信息记录入库存中,若已有该货物的信息存在则只需更改该货物的库存数量和进货价钱即可;同样在货物出库时应完成类似操作,记录出库时货物的详细信息并完成库存货物的信息更新;库存盘点应完成货物当前的库存状况,主要解决货物的查询和保存记录等功能。
以上功能对数据库的设计要求较高,各表之间的关联相对比较复杂,这给数据库和系统的设计带来了一定的难度。
(4)数据的备份和还原对系统的维护起到关键的作用,一旦数据由于人为操作出现难以挽回的问题或其他原因造成的数据损坏后果将不堪设想,因此在系统中我们必需设计有数据的备份和还原的功能以确保系统出现的不可预料的结果。
3系统总体设计
3.1系统设计相关原理
目前,网络应用软件运行的模式主要有二类:
Client/Server模式,Browser/Server模式。
前者重要用于局域网后者主要用于广域网,考虑到仓库管理一般不需要在网络上进行所以我们没有采用这种方式,这样可以降低开发成本,同时又能充分的满足用户的需要。
3.2系统功能结构
本系统有用户信息注册,个人信息管理,供应商信息管理,仓库信息管理,入库管理,出库管理,库存管理,数据备份,数据还原等重要功能,为仓库管理提供了方便实用的途径。
整个系统分为五大模块,具体模块功能如下:
图1系统结构功能图
3.3系统数据流程
数据流程图(DataFlowDFD)是描述实际业务管理系统工作流程的一种图形表示法。
它描绘系统的逻辑模型图,其中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。
此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。
《仓库管理信息系统》主要是为了对货物入库,出库,盘点和数据信息等进行计算机管理。
下面就是对各个功能模块的流程分析:
(1)用户管理基本信息流程
分析:
用户首先注册然后输入账号密码登陆系统,可以查看和修改个人信息。
(2)仓库管理基本信息流程
分析:
按找货物编号实施查询货物信息后可以进行入库、出库和货物盘点的管理
系统流程图如下:
图2系统流程图
4系统数据库设计
4.1数据库需求分析
本系统用到的数据库名为Store_Management的数据库,各张表的设计情况如下:
表1仓管信息表(CgInfor)
字段名
数据类型
长度
主键
描述
CkId
varchar
20
否
仓库编号(notnull)
CgId
varchar
20
是
仓管编号(notnull)
Psw
varchar
50
否
密码(notnull)
CgName
varchar
50
否
仓管姓名(null)
Birth
datetime
否
生日(null)
Sex
char
10
否
性别(null)
Phone
Char
20
否
电话(null)
Email
Varchar
50
否
电子邮箱(null)
CgRemark
Nvarchar
200
否
备注(null)
Image
image
否
照片(null)
表2仓库信息表(CkInfor)
字段名
数据类型
长度
主键
描述
CkId
varchar
20
是
仓库编号(notnull)
CkName
varchar
20
否
仓库名称(notnull)
CkAdress
varchar
20
否
仓库地址(notnull)
Manager
varchar
50
否
经理(notnull)
Phone
Char
20
否
电话(notnull)
CkRemark
nvarchar
200
否
备注(notnull)
表3库存信息表(KcInfor)
字段名
数据类型
长度
主键
描述
GoodsId
varchar
20
是
货物编号(notnull)
GoodsName
varchar
50
否
货物名称(null)
ProviderName
varchar
50
否
供应商名称(null)
CkId
varchar
20
否
仓库编号(null)
CgId
varchar
20
否
仓管编号(null)
KcNum
Decimal
(18,2)
否
库存数量(null)
GoodsUnit
char
10
否
计量单位(null)
GoodsInPrice
money
否
进货单价(null)
CheckDate
datetime
否
盘点日期(null)
KcRemark
nvarchar
200
否
备注(null)
表4货物盘点信息表(CheckGoods)
字段名
数据类型
长度
主键
描述
GoodsId
varchar
20
是
货物编号(notnull)
GoodsName
varchar
50
否
货物名称(null)
ProviderName
varchar
50
否
供应商名称(null)
CkId
varchar
20
否
仓库编号(null)
CgId
varchar
20
否
仓管编号(null)
KcNum
Decimal
(18,2)
否
库存数量(null)
GoodsUnit
char
10
否
计量单位(null)
GoodsInPrice
money
否
进货单价(null)
CheckDate
datetime
否
盘点日期(null)
KcRemark
nvarchar
200
否
备注(null)
表5供应商信息表(ProviderInfor)
字段名
数据类型
长度
主键
描述
ProviderId
Varchar
20
是
供应商编号(notnull)
ProviderName
Varchar
50
否
供应商名称(null)
LinkmanName
Varchar
50
否
联系人姓名(null)
Phone
Char
20
否
电话(null)
Adress
Varchar
50
否
地址(null)
RgtDate
Datetime
否
注册日期(null)
ProviderRemark
nvarchar
200
否
备注(null)
表6货物入库信息表(GoodsInInfor)
字段名
数据类型
长度
主键
描述
GoodsId
varchar
20
否
货物编号(notnull)
GoodsName
varchar
50
否
货物名称(null)
ProviderName
varchar
50
否
供应商名称(null)
CkId
varchar
20
否
仓库编号(null)
CgId
varchar
20
否
仓管编号(null)
GoodsInNum
decimal
(18,2)
否
入库数量(null)
GoodsUnit
Char
10
否
计量单位(null)
GoodsInPrice
Money
否
进货单价(null)
AllPrice
Money
否
总价(null)
GoodsInTime
Datetime
否
入库时间(null)
GoodsInRemark
nvarchar
200
否
备注(null)
表7货物出库信息表(GoodsOutInfor)
字段名
数据类型
长度
主键
描述
GoodsId
varchar
20
否
货物编号(notnull)
GoodsName
varchar
50
否
货物名称(null)
ProviderName
varchar
50
否
供应商名称(null)
CkId
varchar
20
否
仓库编号(null)
CgId
varchar
20
否
仓管编号(null)
GoodsOutNum
decimal
(18,2)
否
入库数量(null)
GoodsUnit
Char
10
否
计量单位(null)
GoodsOutPrice
Money
否
进货单价(null)
AllPrice
Money
否
总价(null)
GoodsOutTime
Datetime
否
入库时间(null)
GoodsOutRemark
nvarchar
200
否
备注(null)
4.2实体E-R图
图3仓库管理E_R模型
实体:
图4仓管实体
其他实体…………
4.3公共类
本系统建立了一个Dbcon.cs公共类用于系统和数据库的连接,主要代码如下:
classDbcon
{
publicstaticstringcon=@"IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=Store_Management;DataSource=.";
publicstaticstringuserId;
publicstaticstringuserName;
publicstaticstringthisCkId;
}
5系统详细设计与实现
5.1系统登陆的设计与实现
图5系统登录界面
系统登录界面如上图所示,主要实现功能为用户的注册,用户登录和推出仓库管理系统。
点击注册按钮能够实现新用户的注册,输入正确的用户名和密码能登录系统主界面,否则系统会提示你相关出错信息。
主要代码如下所示:
//以下代码实现判断用户名密码是否正确和登录系统
if(TxtName.Text==""||TxtPsw.Text=="")
{//判断用户名和密码是否为空
MessageBox.Show("用户名和密码不能为空!
","提示信息",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
}
else
{SqlConnectionconstr=newSqlConnection(Dbcon.con);
constr.Open();
stringsqlstr="select*fromCgInforwhereCgId='"+TxtName.Text+"'";
SqlCommandcmd=newSqlCommand(sqlstr,constr);
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
{
if(TxtPsw.Text.Trim()==dr["Psw"].ToString().Trim())
{
Dbcon.userId=dr["CgId"].ToString().Trim();
Dbcon.userName=dr["CgName"].ToString().Trim();
Dbcon.thisCkId=dr["CkId"].ToString().Trim();
FrmMainFrmMain1=newFrmMain();
FrmMain1.Show();
this.Hide();
}
}
5.2用户管理的设计与实现
5.2.1个人信息管理
图6个人信息管理界面
个人信息管理主要进行对个人信息的修改和注销个人信息,在界面启动时会显示你的详细信息,可再次修改你的密码等信息,如果员工不在工作也可注销此用户。
主要代码如下:
//sql语句完成用户信息的修改功能
SqlConnectionstrcon=newSqlConnection(Dbcon.con);
strcon.Open();
Stringsql="updateCgInforsetpsw='"+this.txtNewPsw.Text.Trim()+"',Birth='"+DateTime.Parse(this.dtBirth.Text.Trim())+"',Phone='"+this.txtPhone.Text.Trim()+"',Email='"
+this.txtEmail.Text.Trim()+"',Sex='"+boSex.Text+"',CgRemark='"+this.rtxtRemark.Text.Trim()+"'whereCgId='"+this.txtCgId.Text.Trim()+"'";
SqlCommandcmd=newSqlCommand(sql,strcon);
if(cmd.ExecuteNonQuery()==1)
{
MessageBox.Show("修改成功!
!
","提示信息");
}
else
{
MessageBox.Show("不好意思,修改失败!
!
");
}
strcon.Close();
5.2.2注册信息管理
图7注册信息界面
该界面主要完成新用户的注册功能,主要代码如下:
//检测是否注册编号已存在
SqlConnectionstrcon=newSqlConnection(Dbcon.con);
strcon.Open();
stringsql="selectCgIdfromCgInforwhereCgId='"+this.txtCgId.Text.Trim()+"'";
SqlCommandcmd=newSqlCommand(sql,strcon);
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
{//判断是否已有此编号
MessageBox.Show("不好意思,此管理员编号已存在,请重新输入!
");
this.qingkong();
}
//以下sql语句完成新用户的注册
stringsql1="insertintoCgInfor(CkId,CgId,Psw,CgName,Birth,Sex,Phone,Email,CgRemark)values('"
+(string)boCkId.Text+"','"+(string)this.txtCgId.Text+"','"+this.txtPsw.Text+"','"+(string)this.txtCgName.Text+"','"+DateTime.Parse(this.dtBirth.Text.Trim())+"','"
+(string)boSex.Text+"','"+(string)this.txtPhone.Text+"','"+(string)this.txtEmail.Text+"','"+(string)this.rtxtRemark.Text+"')";
SqlCommandcmd1=newSqlCommand(sql1,strcon);
5.3基本信息管理的设计与实现
5.3.1供应商信息管理
图8供应商信息管理界面
该界面主要完成按供应商编号和供应商名对供应商信息进行检索,实现供应商信息的添加,删除,修改和删除功能。
部分代码如下:
//以下sql语句实现按供应商编号查询供应商信息
stringsql="select*fromProviderInforwhereProviderId='"+this.toolStripComboBox1.Text.Trim()+"'";
//以下sql语句实现按供应商名查询供应商信息
stringsql1="select*fromProviderInforwhereProviderName='"+this.toolStripComboBox1.Text.Trim()+"'";
//以下代码主要实现供应商信息的添加
SqlConnectionstrcon=newSqlConnection(Dbcon.con);
strcon.Open();
stringsql="insertintoProviderInfor(ProviderId,ProviderName,LinkmanName,Phone,Adress,RgtDate,ProviderRemark)values('"+this.txtProviderId.Text.Trim()+"','"+this.txtProviderName.Text.Trim()+"','"+this.txtLinkman.Text.Trim()+
"','"+this.txtPhone.Text.Trim()+"','"+this.txtAddress.Text.Trim()+"','"+DateTime.Parse(this.dtRgtDate.Text.Trim())+
"','"+this.rtxtRemark.Text.Trim()+"')";
SqlCommandcmd=newSqlCommand(sql,strcon);
if(cmd.ExecuteNonQuery()!
=0){MessageBox.Show("恭喜你,添加成功!
");
this.qingkong();
}
else{MessageBox.Show("不好意思,添加失败,请重试!
");
}
5.3.2仓库信息管理
图9仓库信息管理界面
该界面主要完成按仓库编号查询仓库的详细信息,并对仓库信息进行