仓库货品管理说明书.docx
《仓库货品管理说明书.docx》由会员分享,可在线阅读,更多相关《仓库货品管理说明书.docx(29页珍藏版)》请在冰豆网上搜索。
![仓库货品管理说明书.docx](https://file1.bdocx.com/fileroot1/2022-11/15/7832a0e5-8232-495c-9052-73f1609302f7/7832a0e5-8232-495c-9052-73f1609302f71.gif)
仓库货品管理说明书
目录
摘要1
前言2
正文3
1.采用类c语言定义相关的数据类型3
2.各模块的伪码算法3
3.函数的调用关系图8
4.调试分析9
5.测试结果10
6.源程序(带注释)13
总结19
参考文献21
致谢22
附件Ⅰ部分源程序代码23
摘要
库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起一个数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序具有功能完备、易使用等特点。
该程序实现库存货品信息的输入、插入、删除、查找等功能,并能建立和更新的库存信息保存于文件供输出或打印。
对于查找、删除等功能要求能按货品名、货品号分别进行。
每个货品的相关信息包括:
货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等。
关键词:
库存管理;面向对象;数据库
前言
随着我国市场经济的蓬勃发展和人们对物质水平需求的增加,各行各业都处于一个飞速发展的时期,行业的快速发展必然导致各企业之间的竞争更加激烈,为了使自己的企业在竞争中能够站稳脚跟,不被激烈的竞争环境所压倒,必然要求企业加强对自身的管理,提高企业的经营效率。
本文正文分为六部分,第一部分列举了采用类c语言定义相关的数据类型,第二部分介绍各模块的伪码算法,第三部分绘出了函数的调用关系图,第四部分简述算法的调试分析,第五部分展示了系统的部分测试结果,第六部分附加了完整的源代码(带注释)
本系统由于个人能力有限,设计过程中一定有很多不足之处,以求日后完善。
正文
1.采用类c语言定义相关的数据类型
structBrand
{
intBrand_number;
charBrand_name[20];
charProvide_name[20];
intBrand_code;
charProductor_name[20];
structBrand*next;
};
structTotal//该结构只在统计商品总量时使用
{
inti;//商品编号
structToal*next;
};
2.模各块的伪码算法
1.货品信息的输入
#if!
defined(AFX_INDLG_H__45EE16C9_7E05_4051_847B_E7EA39D86403__INCLUDED_)
#defineAFX_INDLG_H__45EE16C9_7E05_4051_847B_E7EA39D86403__INCLUDED_
#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
//InDlg.h:
headerfile
//
/////////////////////////////////////////////////////////////////////////////
//CInDlgdialog
classCInDlg:
publicCDialog
{
//Construction
public:
CInDlg(CWnd*pParent=NULL);//standardconstructor
//DialogData
//{{AFX_DATA(CInDlg)
enum{IDD=IDD_DIALOG_IN};
CComboBoxm_cbProvider;
CComboBoxm_cbGoods;
CTimem_Date;
CTimem_Time;
CStringm_strNum;
CStringm_strPrice;
//}}AFX_DATA
//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CInDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//Generatedmessagemapfunctions
//{{AFX_MSG(CInDlg)
virtualBOOLOnInitDialog();
afx_msgvoidOnButtonOk();
afx_msgvoidOnButtonCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
voidAddIn(CStringstrGcode,CStringstrPcode);
CStringm_strProviderName;
CStringm_strGoodsName;
voidAddGoods(intiNum);
voidGetProviderCode(CStringstrName,CString&strCode);
voidGetGoodsCode(CStringstrName,CString&strCode);
};
//{{AFX_INSERT_LOCATION}}
//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.
#endif//!
defined(AFX_INDLG_H__45EE16C9_7E05_4051_847B_E7EA39D86403__INCLUDED_)
2.货品入库操作(插入操作)
voidCInDlg:
:
AddGoods(intiNum)
{
intiCurrentNum=0;
_variant_tHolder,strQuery;
strQuery="select*fromgoodswhereG_name='"+m_strGoodsName+"'";
theApp.ADOExecute(theApp.m_pRs,strQuery);
theApp.m_pRs->MoveFirst();
Holder=theApp.m_pRs->GetCollect("Current_number");
if(Holder.vt!
=VT_NULL)
iCurrentNum=Holder.iVal;
iCurrentNum+=iNum;
CStringstrSql;
strSql.Format("UPDATEgoodsSETCurrent_number=%dWHEREG_name='%s'",iCurrentNum,m_strGoodsName);//TODO:
Addyourcontrolnotificationhandlercodehere
_variant_tvtQuery(strSql);
if(theApp.ADOExecute(theApp.m_pRs,vtQuery))
{
AfxMessageBox("入库成功");
theApp.m_log.AddLog("商品入库");
}
}
3.货品的出库操作(删除操作)
voidCOutDlg:
:
DelGoods(intiNum)
{
intiCurrentNum=0;
_variant_tHolder,strQuery;
strQuery="select*fromgoodswhereG_name='"+m_strGoodsName+"'";
theApp.ADOExecute(theApp.m_pRs,strQuery);
theApp.m_pRs->MoveFirst();
Holder=theApp.m_pRs->GetCollect("Current_number");
if(Holder.vt!
=VT_NULL)
iCurrentNum=Holder.iVal;
iCurrentNum-=iNum;
CStringstrSql;
strSql.Format("UPDATEgoodsSETCurrent_number=%dWHEREG_name='%s'",iCurrentNum,m_strGoodsName);//TODO:
Addyourcontrolnotificationhandlercodehere
_variant_tvtQuery(strSql);
if(theApp.ADOExecute(theApp.m_pRs,vtQuery))
{
AfxMessageBox("出库成功");
theApp.m_log.AddLog("商品出库");
}
}
4.货品查找操作
voidCViewDlg:
:
ViewGoods()
{
m_listDisp.DeleteAllItems();
m_listDisp.SetRedraw(FALSE);
_variant_tHolder,strQuery;
strQuery="select*fromgoods";
theApp.ADOExecute(theApp.m_pRs,strQuery);
intiCount=theApp.m_pRs->GetRecordCount();
if(0==iCount)
return;
theApp.m_pRs->MoveFirst();
inti=0;
while(!
theApp.m_pRs->adoEOF)
{
Holder=theApp.m_pRs->GetCollect("G_code");
if(Holder.vt!
=VT_NULL)
m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);
Holder=theApp.m_pRs->GetCollect("G_name");
if(Holder.vt!
=VT_NULL)
m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);
Holder=theApp.m_pRs->GetCollect("Current_number");
if(Holder.vt!
=VT_NULL)
m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);
Holder=theApp.m_pRs->GetCollect("Max_number");
if(Holder.vt!
=VT_NULL)
m_listDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);
Holder=theApp.m_pRs->GetCollect("Min_number");
if(Holder.vt!
=VT_NULL)
m_listDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);
theApp.m_p