




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏技术师范学院毕业论文第1章 序言随着计算机技术的不断发展,公司、企业和机关的计算机自动化管理已经十分普及,计算机技术已经深入到企业管理的各个方面。一般小型企业的库存管理大部分还是手工操作,工作起来效率很低,并且不能及时了解库存的具体情况。同时,由于不可避免的人为因素,造成库存商品数量及价格的错报和漏报等情况。本文设计的库存管理系统实现了仓库的计算机量化管理,利用它可以安全、可靠的管理仓库物品来往业务,不仅可以保障仓库安全和商品数量的透明,更可以提高公司的管理水平和对外形象。库存管理是企业各项工作的重点,市场经济的高速发展给企业带来了很多变革的契机,我们必须在进行机构改革的同时,尽快使用现代化管理设备、管理手段、管理方法。计算机在企业管理中应用的普及,利用计算机实现库存管理势在必行。将计算机技术应用到库存管理中对于提高工作效率,有很大的帮助,特别是库存管理系统的应用,对于大中型企业来说,利用计算机支持企业高效率完成货物来往的复杂性,是适应现代企业制度要求、推动库存管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高库存管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,企业非常需要一套既有先进管理思想又适合国内企业的库存管理系统,作为实现目标和提高现有水平的一种重要手段,库存管理系统是一个公司不可缺少的部分,它的内容对于公司的管理者来说至关重要, 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。第2章 系统分析2.1库存管理系统需求分析2.1.1.用例分析通过库存管理系统实际需求,进行详细的用例分析。库存管理系统用例分析如图2-1所示。图2-1库存管理用例图用例图建立完成,就需要编写用例描述,用例描述也就是对系统各个功能进行描述,这一部是进行系统设计前最重要的一个过程。准确地描述出系统的功能有助于清理自己的思路,更是和用户进行有效沟通的保障。(1) 基础信息管理在基础信息管理中应包括供应商信息、客户信息管理、仓库信息管理、地域信息管理、计量单位管理。供应商信息管理、客户信息管理、仓库信息管理、商品信息管理都应该具备添加、修改、删除、浏览功能;地域信息管理应以树状视图形式显示。(2) 日常业务管理在日常业务管理模块中应包括入库管理、出库管理、调货管理、库存盘点。各模块允许一次对多种商品进行操作,并可自动核算合计数量及合计金额,最好可以提供联想输入提示功能。(3) 查询统计管理在查询统计管理中包含过期商品查询,它的功能是实现自动筛选过期商品。(4) 系统管理系统管理模块包括用户信息管理模块。2.2业务流程商品库存管理系统的业务流程如图2-2所示。图2-2业务流程图2.3系统目标1)完成入库、出库业务,且允许一张单据涉及多种商品。2)跟踪仓库中每种商品的库存数量,且可以对其进行盘点。3)提供过期商品查询功能。4)可以满足多仓库需要。5)支持联想输入设计。2.4系统总体设计系统总体设计工作应该由上而下的进行。首先设计总体结构,然后逐层深入,直到进入每一个模块的设计。总体设计主要是指在系统分析的基础上,对整个系统的划分、软硬件配置、数据存储以及整个系统实现等方面的合理安排。2.4.1系统功能结构设计通过前面的系统分析工作,下面将库存管理系统划分为4部分,它们是基础信息管理、日常业务管理、查询统计管理、系统信息管理。结构图如图2-3所示。图2-3系统结构图2.4.2编码设计编码设计是管理信息系统过程中的一个重要内容。设计一个好的编码,可以使信息统计和查询变得更方便。编码一般由数字和字符组成,用来代表事物的实体类别和属性的特定符号或记号。在库存管理系统中,需要对出、入库单进行编码,以入库单为例,入库单据号用来标记入库单的单号,具有唯一性。通过该编码,可以判断某一张入库单是哪年、哪月、哪日第几张单据。程序模块设计如下:首先,判断入库信息表中是否有记录,如果无记录,则说明要录入的入库单是本天的第一张入库单据。该单据编码由字母“RK”、当前日期的“年”“月”“日”,再加“000001”组成;如果有记录,那么该单据编码由字母“RK”、当前日期,和当天上一张单据编码后6位加1组成。第3章 数据库设计数据库是应用程序的核心。数据库设计师开发应用程序的重要组成部分。一个好的数据库结构可以使系统处理速度快、占用空间少、操作处理过程简单、查找容易等。数据商品库存管理系统的实际需要和数据流量的大小,数据库使用了Microsoft Access。下面介绍数据库的创建过程。3.1创建数据库库存管理系统采用了Microsoft Access作为后端数据库,创建数据库名称为“spkc.mdb”3.2创建数据表及数据库逻辑结构设计库存管理系统共使用13张数据表,分别为仓库信息表、出库明细表、出库信息表、入库信息表、入库明细表、入库信息表、地域信息表、供应商信息表、客户信息表、计量单位表、库存信息表、商品调拨表、商品信息表、用户信息表。表3-1 供应商信息表字段名称 字段类型 主键 外键 允许为空 默认值编号 文本型(10) 是 否名称 文本型(40)简称 文本型(20)地址 文本型(40)地区编号 长整形 是电话 文本型(13)传真 文本型(13)联系人 文本型(13)联系人电话 文本型(10)银行 文本型(20)账号 文本型(15)纳税人 文本型(8)邮箱地址 文本型(40)表3-2 入库信息表字段名称 字段类型 主键 外键 是否为空 默认值票号 文本型(15) 是 否入库时间 日期时间型合计数量 长整型合计金额 货币型操作员 长整型 是表3-3 入库明细表字段名称 字段类型 主键 外键 是否为空 默认值票号 文本型(15) 是商品编号 文本型(10)入库仓库 长整型数量 长整型表3-4 库存信息表字段名称 字段类型 主键 外键 是否为空 默认值商品编号 文本型(10) 是库存编号 长整型 是库存数量 长整型库存上限 长整型库存下限 长整型单价 货币型销售价格 货币型表3-5 商品调拨表字段名称 字段类型 主键 外键 是否为空 默认值商品编号 文本型(10) 是所在仓库 长整型调拨仓库 长整型掉拨数量 长整型操作员 长整型表3-6 供应商基础信息表字段名称 描述 说明编号 标记一个供应商 用来区分同名的供应商 名称 标记供应商名称简称 供应商名称的拼音缩写表3-7 库存信息表字段名称 描述 说明商品编号 标识一种商品 用来区分同名的商品库存数量 商品数量库存上限 仓库中可以容纳某种商品的最大数量库存下限 仓库中可以存在某种商品的最小数量表3-8 商品调拨表字段名称 描述 说明所在仓库 商品为调拨前所在仓库调拨仓库 商品到调拨到的仓库调拨数量 调拨商品的数量操作员 记录此操作的操作员编号第4章 程序模型设计4.1进入环境AppWizard的建立完毕,需要完成以下工作:在StdAfx.h中引入头文件#import ”C:Program FilesCommon FilesSYSTEMADOMSADO15.dll”rename(”EOF”,”_EOF”)using namespace ADODB;声明全局变量_ConnectionPtr cnn;在bool CmyApp:InitInstance()中初始化数据库连接:CoInitialize(NULL);cnn=NULL;cnn.CreateInstance(_uuidof(Connection);cnn-ConnectionString=uid=admin;pwd=111;DRIVER=Microsoft Access Driver (*.mdb);DBQ=spkc.mdb;cnn-Open(L,L,L,adCmdUnspecified);4.2类模型分析本程序涉及27个类,主要类的说明如下表所示:表4-1 库存管理系统中的类及说明类名 派生自 说明CBaseComboBox CComboBox 添加数据源连接功能与回车移动功能的CcomboBox类CBaseEdit CEdit 添加回车移动焦点功能的CEdit类 CBaseDateTimeCtrl CDateTimeCtrl 增加回车移动焦点功能的CDateTimeCtrl类CBaseListBox CListBox 添加数据源连接功能与回车移动焦点功能ClistBox类CDAbate CDialog 过期商品查询模块CDAbout CDialog 关于模块CDAdjust CDialog 调货管理模块CDCheck CDialog 库存管理模块CDCheckDlg CDialog 库存盘点模块CDClient CDialog 客户信息查询模块CDClient_Edit CDialog 客户信息管理模块CDClime CDialog 地域信息管理模块CDInput CDialog 商品出库模块CDLogin CDialog 登录模块CDOutput CDialog 商品输出模块CDProvider CDialog 供应商查询模块 CDStore CDialog 仓库信息管理模块CDunit CDialog 计量单位管理模块CDUser CDialog 用户管理模块CDWare CDialog 商品信息查询模块CExtendEdit_Grid CListCtrl 增加绑定数据源功能的CListCtrl类CMainDlg CDialog 主程序界面对话框CMyApp CWinApp Windows应用程序基类的派生类CRxGrid CListCtrl 增加联想提示等诸多功能的CListCtrl类第5章 界面及主要模块设计5.1主程序界面开发步骤5.1.1模块描述主程序界面是应用软件中非常重要的模块,用户需要通过它来实现与其他功能模块的衔接。本程序的主界面由菜单栏、工具栏、状态栏模式组成。主程序界面的运行结果如图所示:图5-1 库存管理系统主界面5.1.2菜单资源设计图5-2 菜单资源结构图5.1.3关键程序代码声明CToolCtrl类对象实体、CImageList类对象实体、CststusBarCtrl类对象实体。CToolBarCtrl m_ToolBar;CImageList m_ImageList;CStatusBarCtrl m_StatusBar;在OnInitDialog成员函数中添加工具栏和状态栏。BOOL CMainDlg:OnInitDialog()CDialog:OnInitDialog();SetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small iconTBBUTTON button10;int i=0,nStringLength;CString string;TCHAR * pString; m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0); m_ToolBar.EnableAutomation();m_ToolBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_TOOLBAR);UINT Resource10=IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON4,IDI_ICON5,IDI_ICON6,IDI_ICON7,IDI_ICON7,IDI_ICON8;for(i=0;i10;i+)m_ImageList.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRESOURCE(Resourcei); m_ToolBar.SetImageList(&m_ImageList); for(i=0;iGetWindowText(TipText);TipText=TipText+ 当前用户:+UserName+ ;this-SetWindowText(TipText);int width=150,800;m_StatusBar.SetParts(2, &width0);m_StatusBar.SetText(GUSONG2009,0,0);return TRUE; 5.2商品信息管理5.2.1功能分析商品信息管理应该包括查询和管理两部分。在查询部分中,以列表形式显示商品信息,且允许用户根据不同字段、不同条件进行查询。当用户在表格中双击某条商品记录时,进入管理部分;管理部分以卡片形式显示某种商品的信息,允许用户对记录进行添加、修改、删除等操作。商品信息管理模块运行结果如图5-3所示。图5-3 商品信息管理效果图5.2.2商品信息管理模块查询部分详细设计向项目中添加一个新的Dialog资源,资源ID为IDD_WARE。在IDD_WARE对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“DialogProperties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其【Caption】文本框内容为“商品信息查询”;单击【Font】按钮,将Dialog资源更改为宋体、9号。从Controls面板上向Dialog资源中添加3个Static、2个Combo Box、1个Edit、1个Button和1个ListControl,更改资源的属性,并为资源设置相对应的变量。如下表所示。表5-1 资源设置ID Properties Members Variables Type MemberIDC_COMFIELD Sort FLASE CBaseComboBox m_ComField Data 编号 名称 产地 计量单位IDC_COMEMBLEM Sort FLASE CBaseComboBox m_ComEmblem Data LIKE = = Execute(_bstr_t)sSQL,NULL,adCmdText);catch(.) if(theApp.GetRecordCount(rst)0)rst-MoveFirst();CTime OutfactoryTime,KeepTime;sID=(char*)(_bstr_t)rst-GetCollect(编号);sKeepTime=(char*)(_bstr_t)rst-GetCollect(保质期);m_EdtID.SetWindowText(sID);this-m_EdtLetterName.SetWindowText(SLatterName);this-m_EdtName.SetWindowText(sName);this-m_EdtSpec.SetWindowText(sSpec);this-m_ComUnit.SetWindowText(sUnit);OutfactoryTime=theApp.CStringTOCTime(sOutfactoryTime);KeepTime=theApp.CStringTOCTime(sKeepTime);this-m_DatOutFactoryTime.SetTime(&OutfactoryTime);this-m_DatKeepTime.SetTime(&KeepTime);int nProducing=theApp.NumberTOName(地域信息表,名称,sProducing);Clime(nProducing);rst-Close();单击【添加】按钮时,在编号文本框中自动生成编号;清空其他编辑控件,系统进入编辑状态。void CDWare_Edit:OnBUTAdd() CString NewID;Enabled(true);ClearFrom();NewID=theApp.AutoNumber(商品信息表,SP,1);this-m_EdtID.SetWindowText(NewID);m_EdtName.SetFocus();AddOrChange=true;用户单击【修改】按钮,系统进入编辑状态,名称文本框获得焦点。void CDWare_Edit:OnBUTChange() Enabled(true);m_EdtName.SetFocus();AddOrChange=false;用户单击【保存】按钮时,判断用户在此前按下的是【添加】还是【修改】,如果是【添加】就插入一条记录,如果是【修改】,就更新原纪录。void CDWare_Edit:OnBUTSave() int a=MessageBox(确定保存记录吗?,系统提示,MB_ICONQUESTION|MB_OKCANCEL);if(a=1)CTime time;CString sID,sSQL,sName,sLetterName,sUnit,sSpec,sTown,sOutFauctryTime,sKeepTime;int nUnit,nTown;m_EdtID.GetWindowText(sID);m_EdtLetterName.GetWindowText(sLetterName);m_DatOutFactoryTime.GetTime(time);sOutFauctryTime=theApp.CTimeToCString(time);m_DatKeepTime.GetTime(time);sKeepTime=theApp.CTimeToCString(time);m_EdtName.GetWindowText(sName);if(sName.IsEmpty()MessageBox(请输入商品名称!,系统提示,MB_OK|MB_ICONSTOP);m_EdtName.SetFocus();return;if(this-AddOrChange=true)sSQL.Format(Insert Into商品信息表values (%s,%s,%s,%s, %d,%d,#%s#,#%s#),sID,sName,sLetterName,sSpec,nTown,nUnit,sOutFauctryTime,sKeepTime);elsesSQL.Format(UPDATE 商品信息表 SET 名称=%s,简称=%s,规格=%s,产地=%d,计量单位=%d,出厂日期=#%s#,保质期=#%s# WHERE 编号=%s,sName,sLetterName,sSpec,nTown,nUnit,sOutFauctryTime,sKeepTime,sID);cnn-Execute(_bstr_t)sSQL,NULL,adCmdText);this-Enabled(false);用户单击【撤销】按钮时,程序进入只读状态,并且显示用户在查询模块双击的记录。void CDWare_Edit:OnBUTUndo() this-Display(this-DisplayNumber);this-Enabled(false);5.4出库管理5.4.1.功能分析出库管理模块主要完成商品出库的操作,在本系统中,采用表格式录入数据,这样便可以实现一张出库单据可出库多种商品。细节方面,具备快捷提示功能,只要通过几个字母,系统便可以找到用户所需要的数据,并且支持自动核算功能。运行结果如图5-6所示。图5-6 出库管理模块图5.4.2 详细设计向项目中添加一个新Dialog资源,资源ID为IDD_DIAOUTPUT。在IDD_DIAOUTPUT对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“DialogProperties”对话框。在“DialogProperties”对话框中选择General选项卡,更改其“Caption”文本框内容为“出库管理”;单击【Font】按钮,将Dialog资源字体更改为宋体9号。从Controls面板上向Dialog资源中添加7个Static、3个Edit,4个Button、和1个ListControl,更改资源的属性,并为资源设置相对应的变量。如下表所示。表5-3 资源设置ID Properties Members Variables Type MemberIDC_STAID Caption CK040224_000001 CStatic m_StaIDIDC_STADATE Caption 2004-02-24 CStatic m_StaDateIDC_EDTCLIENT Border FALSE CExtendEdit m_EdtClientIDC_EDTSUM 默认 CEdit m_EdtSumIDC_EDTMONEY 默认 CEdit m_EdtMoneyIDC_BUTENROL Caption 登记 CButton m_ButEnrolIDC_BUTSAVE Caption 保存 CButton m_ButSaveIDC_BUTUNDO Caption 撤销 CButton m_ButUndoIDC_BUTEXIT Caption 退出 CButton m_ButExitIDC_LIST 默认 CRxGrid m_Grid调整控件资源在Dialog中的位置。最终设计结果如下图所示。图5-7 出库管理资源设置图使用函数外部的变量。extern _ConnectionPtr cnn;extern CMyApp theApp;关键程序步骤和代码。在模块执行时,需要初始化m_EdtClient和m_Grid,使它们拥有联想和输入功能。BOOL CDOutPut:OnInitDialog() CDialog:OnInitDialog();CString FieldName=商品名称,规格,产地,计量单位,出厂日期,保质期,出货仓库,出货单价,出货数量;for(int i=0;iExecute(_bstr_t)sSQL,NULL,adCmdText);m_Grid.SetField(商品名称);m_Grid.m_Edit.SetPopRecordset(rst);this-IsPopShow=false;m_Grid.AutoInsert=true;return TRUE;双击【登记】按钮,为按钮添加单击消息响应函数OnBUTEnrol()。void CDOutPut:OnBUTEnrol() CTime tDate;CString cID,cDate;cID=theApp.AutoNumber(出库信息表,CK,2);m_StaID.SetWindowText(cID);tDate=tDate.GetCurrentTime();cDate=theApp.CTimeToCString(tDate);用户使用时,单击【登记】按钮后模块会进入编辑状态。使用如下代码实现此功能。void CDOutPut:ItemChange()CString sSQL,sWare,sStore,sInput;if(m_Grid.GetCol()=6)trysInput=(char*)(_bstr_t)m_Grid.m_Edit.rst-GetCollect(销售价格);m_Grid.SetItemText(m_Grid.GetRow(),7,sInput);catch(.)goto ResameNext;m_Grid.m_Edit.IsPopShow=false;if(m_Grid.GetCol()=0) /自动添充 CString sSpec,sArer,sUnit,sOutFactroyDate,sKeepDate;trysSpec=(char*)(_bstr_t)m_Grid.m_Edit.rst-GetCollect(规格);catch(.)goto ResameNext;sArer=(char*)(_bstr_t)m_Grid.m_Edit.rst-GetCollect(产地); sUnit=(char*)(_bstr_t)m_Grid.m_Edit.rst-GetCollect(计量单位); sOutFactroyDate=(char*)(_bstr_t)m_Grid.m_Edit.rst-GetCollect(出厂日期); sKeepDate=(char*)(_bstr_t)m_Grid.m_Edit.rst-GetCollect(保质期);m_Grid.SetItemText(m_Grid.GetRow(),1,sSpec); m_Grid.SetItemText(m_Grid.GetRow(),2,sArer);m_Grid.SetItemText(m_Grid.GetRow(),3,sUnit); m_Grid.SetItemText(m_Grid.GetRow(),4,sOutFactroyDate);m_Grid.SetItemText(m_Grid.GetRow(),5,sKeepDate);m_Grid.m_Edit.IsPopShow=true;m_Grid.m_Edit.GetWindowText(sWare);m_Grid.SetField(仓库名称);sSQL.Format(SELECT 仓库名称,销售价格 FROM 库存查询 WHERE 商品名称=%s,sWare);rst=cnn-Execute(_bst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量管理体系标准化建设参考工具集
- 各类小吃培训课件图片
- 财务预算编制标准化流程
- 企业资金预算编制工具及标准
- 门面房房屋租赁协议书5篇
- 内科护理查房范文:高血压
- 互联网软件开发及技术转让协议
- 农村农业废弃物资源化利用技术协议
- 气管切开观察及护理
- 2025年大模型量化动态量化(含答案与解析)
- 2025年河北省中考物理试卷
- 物流车队轮胎管理制度
- 碳化硅项目可行性分析报告
- 安装电杆施工协议书范本
- 老年共病管理中国专家共识(2023)课件
- 惠州市惠阳区水资源综合规划 修编(2020-2035 年)
- 应聘简历模板进厂
- 工厂员工星级管理制度
- 我国汽车产业在全球价值链中的地位剖析与影响因素探究
- 衢州龙游县龙新高速公路投资有限公司招聘笔试题库2025
- 【素养目标】1.2.2 棱柱、圆柱、圆锥的展开与折叠 教案(表格式) 2024-2025学年北师大数学上册
评论
0/150
提交评论