基于C的仓库管理信息系统设计报告书.docx
- 文档编号:15005593
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:17
- 大小:48.72KB
基于C的仓库管理信息系统设计报告书.docx
《基于C的仓库管理信息系统设计报告书.docx》由会员分享,可在线阅读,更多相关《基于C的仓库管理信息系统设计报告书.docx(17页珍藏版)》请在冰点文库上搜索。
基于C的仓库管理信息系统设计报告书
仓库管理信息系统设计报告
1、设计简述
在仓库管理信息系统中,需要从大量的日常仓库存取中提取相关信息,以反映库存情况。
传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作。
在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。
仓库管理信息系统是针对企业仓库货品的出入库登记和查询统计等方面工作而开发的管理软件,是一个非常实用的管理信息系统。
它可以针对各个仓库的实际需要,设定不同的仓库管理系统的功能,实现物资信息的登记、入库登记、出库登记等任务。
管理者可以通过相应的模块,对仓库里的物资的基本情况进行修改、删除和查询,对物资的入库和出库进行管理,对出入库的物资进行查询,并能生成相应的报表,对使用该系统的用户进行修改、添加等,查询等其他系统设计实现的管理系统能够正确有效地完成仓库管理的日常工作,并能够根据需要进行灵活的查询。
系统与数据库管理系统紧密结合,为仓库管理提供了功能较为强大的数据安全功能。
二、设计目的
仓库信息管理系统以计算机为工具,通过对出库、入库、库存等所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,把仓库管理的井井有条,便于统计,结构清晰。
本课程设计目的是培养学生在VisualStudio.NET开发环境下利用面向对象的编程语言C#开发一个Windows应用程序的能力。
通过开发一个功能完善具有实际价值的管理信息系统,让学生全面实践本课程所学的编程知识,包括对C#编程语言的掌握与应用、VS.NET开发环境下的各种工具的运用、Windows环境下的数据库编程、实际工程中数据结构和算法思想的基本实现等。
三、设计步骤
1功能需求分析、系统总体结构设计,功能模块的划分、画出流程图。
2数据库需求分析、画出E-R图。
3数据库的实现,要求最好使用SQL2005(酌情使用ACCESS)
4各个功能模块的设计及实现。
5综合调试、运行及发布。
四、设计要求
(4.1)设计目标要求
本次综合实训要求学生完成一个具有实用价值的仓库管理信息系统,能够方便地被具企业的仓库管理所使用,应达到如下的设计要求:
系统用户管理模块
要求实现:
对系统操作用户及权限的管理。
登录模块
用户身份的识别、用户输入的验证。
企业物资信息的管理
包括添加、浏览、修改、查看企业现有的物资情况
企业物资出、入库信息管理
所有物资入库、出库的管理。
(4.2)系统的性能要求
要求系统界面美观,布局合理,菜单设置方便操作;系统各项功能正常。
5、需求分析
(5.1)系统需求分析
本系统的具体要求为:
1.通过使用计算机能方便地维护(包括插入、删除、修改)各信息表;
2.能组合查询基于某信息表的所需信息;
3.能方便地实现基于多个表的连接查询;
4.能方便地实现基于单个或多个表的统计功能;
5.系统具有操作方便、简捷等特点。
(5.2)功能需求分析
1.系统管理:
用户和管理者的设置
2.物资信息管理:
物资的一般信息
3.入库信息管理:
入库物资的所有信信息包括时间、价格、日期、型号等
4.出库信息管理:
出库物资的所有信信息包括时间、价格、日期、型号等
5.库存信息管理:
出库物资的所有信信息包括时间、价格、日期、型号等
6.用户操作:
通过登录对仓库进行管理以及密码的修改
6、系统模型简述
(6.1)构成系统的实体型
1.本系统包括管理员,物资,出库,入库,,库存,五个主要实体。
2.管理员实体型属性有用户名、密码、角色名。
3.物资实体型属性有物资编号、物资名称、物资型号、规格型号、类型、单位
4.入库实体型属性有物资编号、物资名称、物资型号、规格型号、类型、单位、数量、单价、金额、入库时间、经办人、保管人、仓库
5.出库实体型属性有物资编号、物资名称、物资型号、规格型号、类型、单位、数量、单价、金额、入库时间、经办人、保管人、仓库
6.库存实体型属性有物资编号、物资名称、物资型号、类型、单位、金额、入库时间、经办人、保管人、仓库
(6.2)系统功能模块
重新操作
修改密码
查询库存
信息
浏览库存
信息
用户操作
系统管理
添加用户
新建角色
仓库管理信息系统
物资信息管理
添加物资
信息
浏览物资
信息
查询物资
信息
入库信息管理
添加入库
信息
浏览入库
信息
查询入库
信息
出库信息管理
添加出库
信息
浏览出库
信息
查询出库
信息
库存信息管理
修改物资信息
修改入库信息
修改出库信息
(6.3)数据库表的结构
得出数据表的各个关系模式后,需要给出是各数据表结构。
考虑系统的兼容性及编写程序的方便性,可将关系模式的属性对应为表字段的英文名。
同时,考虑到数据依赖关系和数据完整性,需要指出表的主码和外码,以及字段的值域约束和数据类型。
系统各表的结构如下所示
入库信息表(ininfo)
列名
数据类型
长度
说明
InID
int
入库编号(自动编号,主键)
MID
char
10
物资编号
InAccount
int
数量
InPrice
int
单价
InValue
int
金额
InDate
Datetime
入库时间
InDealer
char
10
经办人
InSaver
char
10
保管人
InStore
char
10
仓库
Remark
char
40
备注
出库信息表(outinfo)
列名
数据类型
长度
说明
OutID
int
出库编号(自动编号,主键)
MID
char
10
物资编号
OutAccount
int
数量
OutPrice
int
单价
OutValue
int
金额
OutDate
Datetime
入库时间
OutDealer
char
10
经办人
OutUser
char
10
领取人
OutStore
char
10
仓库
Remark
char
40
备注
物资信息表(materialinfo)
列名
数据类型
长度
说明
MID
char
10
物资编号(主键)
MName
char
10
物资名称
MModel
char
10
物资型号
MType
char
10
类型
MUnit
char
10
单位
用户表信息表(userinfo)
列名
数据类型
长度
说明
UID
char
10
用户名(主键)
PWD
char
10
密码
RoleName
char
10
角色名
七、部分程序代码和分析
1.登录界面:
用户通过用户名和密码登录
代码如下:
privatevoidbutton1_Click(objectsender,System.EventArgse)//确定
{
if(name.Text.Trim()==""||password.Text.Trim()=="")
MessageBox.Show("请输入用户名和密码","提示");
else
{
sqlConnection1.Open();
SqlCommandcmd=newSqlCommand("",sqlConnection1);
stringsql="selectRoleNamefromuserinfowhereUID='"+name.Text.Trim()+"'andPWD='"+password.Text.Trim()+"'";
cmd.CommandText=sql;
stringrolename;
if(null!
=cmd.ExecuteScalar())
{rolename=cmd.ExecuteScalar().ToString();
//隐藏登录窗口
this.Visible=false;
//创建并打开主界面
Mainmain=newMain();
main.Tag=this.FindForm();
sql="select*fromroleswhereRoleName='"+rolename+"'";
SqlDataReaderdr;
cmd.CommandText=sql;
dr=cmd.ExecuteReader();
dr.Read();
main.menuItem1.Visible=(bool)(dr.GetValue
(1));
main.menuItem4.Visible=(bool)(dr.GetValue
(2));
main.menuItem5.Visible=(bool)(dr.GetValue(3));
main.menuItem6.Visible=(bool)(dr.GetValue(4));
main.statusBarPanel5.Text=name.Text.Trim();
main.ShowDialog();
}
else
MessageBox.Show("用户名或密码错误","警告");
sqlConnection1.Close();
}
}
privatevoidbutton2_Click(objectsender,System.EventArgse)//取消
{
this.Close();
}
}
2.添加用户:
登录主界面之后添加用户
代码如下:
privatevoidbtAdd_Click(objectsender,System.EventArgse)
{if(textName.Text.Trim()==""||textPassword.Text.Trim()==""||textPWDNew.Text.Trim()==""||comRole.Text.Trim()=="")
{MessageBox.Show("请输入完整信息!
","警告");}
else
{
if(textPassword.Text.Trim()!
=textPWDNew.Text.Trim())
{MessageBox.Show("两次密码输入不一致!
","警告");}
else{
sqlConnection1.Open();
SqlCommandcmd=newSqlCommand("",sqlConnection1);
stringsql="select*fromuserinfowhereUID='"+textName.Text.Trim()+"'";
cmd.CommandText=sql;
if(null==cmd.ExecuteScalar())
{stringsql1="insertintouserinfo(UID,PWD,RoleName)"+"values('"+textName.Text.Trim()+"','"+textPWDNew.Text.Trim()+"','"+comRole.Text.Trim()+"')";
cmd.CommandText=sql1;
cmd.ExecuteNonQuery();
MessageBox.Show("添加用户成功!
","提示");
this.Close();
}
else
MessageBox.Show("用户名"+textName.Text.Trim()+"已经存在!
","提示");
sqlConnection1.Close();
}}}
3.通过主页面进入物资信息管理点击浏览物资信息出现如下:
代码如下:
点击修改出现如下页面:
//修改privatevoidbtModify_Click(objectsender,System.EventArgse)
{if(dataGrid1.DataSource!
=null||dataGrid1[dataGrid1.CurrentCell]!
=null)
{materailModify=newMaterialModify();
materailModify.textID.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim();materailModify.textName.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim();materailModify.textModel.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Trim();materailModify.textType.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][3].ToString().Trim();materailModify.textUnit.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][4].ToString().Trim();
materailModify.ShowDialog();
}
else
MessageBox.Show("没有指定物资信息!
","提示");
}
//删除privatevoidbtDel_Click(objectsender,System.EventArgse)
{if(dataGrid1.CurrentRowIndex>=0&&dataGrid1.DataSource!
=null&&dataGrid1[dataGrid1.CurrentCell]!
=null)
{stringsql="select*fromininfowhereMID='"+ds.Tables["material"].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim()+"'";
SqlCommandcmd=newSqlCommand(sql,oleConnection1);
SqlDataReaderdr;
dr=cmd.ExecuteReader();
if(dr.Read())
{MessageBox.Show("删除物资'"+ds.Tables["material"].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim()+"'失败,请先删除该物资入库信息!
","提示");dr.Close();
}
else
{dr.Close();
stringsql1="delete*frommaterialinfowhereMID='"+ds.Tables["material"].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim()+"'";
cmd.CommandText=sql1;
cmd.ExecuteNonQuery();
MessageBox.Show("删除物资'"+ds.Tables["material"].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim()+"'成功!
","提示");}
}else
MessageBox.Show("没有指定物资信息!
","提示");}
//退出privatevoidbtClose_Click(objectsender,System.EventArgse)
{this.Close();}
4.通过主页面进入物资信息管理点击查询物资信息出现如下:
代码如下:
//查询privatevoidbtQuery_Click(objectsender,System.EventArgse)
{boolflag=true;
stringsql="selectMIDas物资编号,MNameas物资名称,MModelas物资型号,Mtypeas类型,MUnitas单位"+"frommaterialinfowhere";
if(textID.Text.Trim()==""&&textName.Text.Trim()==""&&textModel.Text.Trim()=="")
{MessageBox.Show("请输入查询条件!
","警告");
return;}
elseif(textID.Text.Trim()!
="")
sql=sql+"MID="+"'"+textID.Text.Trim()+"'";
else
{if(textName.Text.Trim()!
="")
{sql=sql+"MName="+"'"+textName.Text+"'";
flag=false;}
if(textModel.Text.Trim()!
="")
{if(flag)
sql=sql+"MModel="+"'"+textModel.Text+"'";
else
sql=sql+"andMModel="+"'"+textModel.Text+"'";}}
oleConnection1.Open();
SqlDataAdapteradp=newSqlDataAdapter(sql,oleConnection1);
DataSetds=newDataSet();
ds.Clear();
adp.Fill(ds,"material");
dataGrid1.DataSource=ds.Tables[0].DefaultView;
dataGrid1.CaptionText="共有"+ds.Tables[0].Rows.Count+"条查询记录";
oleConnection1.Close();}
//重置privatevoidbtNew_Click(objectsender,System.EventArgse)
{this.textID.Text="";this.textModel.Text="";this.textName.Text="";}
5.通过主页面进入物资信息管理点击添加物资信息出现如下:
代码如下:
//确定privatevoidbtAdd_Click(objectsender,System.EventArgse)
{if(textID.Text.Trim()=="")
MessageBox.Show("请输入物资编号!
","提示");
else{oleConnection1.Open();
stringsql="select*frommaterialinfowhereMID='"+textID.Text.Trim()+"'";
this.oleCommand1.CommandText=sql;
if(null==oleCommand1.ExecuteScalar())
{stringsql1="insertintomaterialinfovalues('"+textID.Text.Trim()+"','"+textName.Text.Trim()+"',"+"'"+textModel.Text.Trim()+"','"+textType.Text.Trim()+"','"+textUnit.Text.Trim()+"')";
oleCommand1.CommandText=sql1;
oleCommand1.ExecuteNonQuery();
MessageBox.Show("添加物资信息成功!
","提示");}
else
MessageBox.Show("物资编号"+textID.Text.Trim()+"已经存在!
","警告");
oleConnection1.Close();}}
综上所述是物资信息的添加、删除、查询、修改等一系列操作的实现,以此类推,关于入库信息管理、出库信息管理、库存信息管理都是大同小异而论的。
6.通过主页面进入用户操作点击修改密码出现如下:
代码如下:
//确定privatevoidbtSave_Click(objectsender,System.EventArgse)
{if(textName.Text.Trim()==""||textPWD.Text.Trim()==""||textPWDNew.Text.Trim()==""||textPWDNew2.Text.Trim()=="")
MessageBox.Show("请填写完整信息!
","提示");
else{oleConnection1.Open();
SqlCommandcmd=newSqlCommand("",oleConnection1);
stringsql="select*fromuserinfowhereUID='"+textName.Text.Trim()+"'andPWD='"+textPWD.Text.Trim()+"'";
cmd.CommandText=sql;
if(null!
=cmd.ExecuteScalar())
{if(textPWDNew.Text.Trim()!
=textPWDNew2.Text.Trim())
MessageBox.Show("两次密码输入不一致!
","警告");
else{
stringsql1="updateuserinfosetPWD='"+textPWDNew.Text.Trim()+"'whereUID='"+textName.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 仓库 管理信息系统 设计 报告书