(完整版)基于C#的库存管理系统的开发毕业设计
- 格式:doc
- 大小:698.00 KB
- 文档页数:57
第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. Files\SYSTEM\ADO\MSADO15.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_, TRUE); Set big iconSetIcon(m_, FALSE); Set small iconTBBUTTON button[10];int i=0,nStringLength;CString string;TCHAR * pString;m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0);m_ToolBar.EnableAutomation();UINTResource[10]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON4,IDI_IC ON5,IDI_ICON6,IDI_ICON7,IDI_ICON7,IDI_ICON8};for(i=0;i<10;i++){m_ImageList.Add(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOU RCE(Resource[i])));}m_ToolBar.SetImageList(&m_ImageList);for(i=0;i<10;i++){button[i].dwData=0;button[i].fsState=TBSTATE_ENABLED;if(i==4 ||i==8)button[i].fsStyle=TBSTYLE_SEP ;elsebutton[i].fsStyle=TBSTYLE_BUTTON ;button[i].iBitmap=i;string.LoadString(i + IDS_STRING1);nStringLength= string.GetLength() + 1;pString = string.GetBufferSetLength(nStringLength);pString[nStringLength] = 0;button[i].iString =m_ToolBar.AddStrings(pString);string.ReleaseBuffer();}button[0].idCommand=ID_MENUITEM32807;button[1].idCommand=ID_MENUITEM32808;button[3].idCommand=ID_MENUITEM32817;button[2].idCommand=ID_MENUITEM32822;button[5].idCommand=ID_MENUITEM32811;button[6].idCommand=ID_MENUITEM32812;button[7].idCommand=ID_MENUITEM32813;button[9].idCommand=ID_MENUITEM32815;m_ToolBar.AddButtons(10,button);m_ToolBar.AutoSize();m_ToolBar.SetStyle(TBSTYLE_FLAT|CCS_TOP);m_StatusBar.EnableAutomation();CString TipText;this->GetWindowText(TipText);TipText=TipText+" 〖当前用户:"+UserName+ "〗";this->SetWindowText(TipText);m_StatusBar.SetParts(2, &width[0]);m_StatusBar.SetText("GUSONG2009",0,0);return TRUE;}5.2商品信息管理5.2.1功能分析商品信息管理应该包括查询和管理两部分。