库存信息管理系统的设计与开发论文.doc
库存信息管理系统的设计与开发摘 要库存信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起一个数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序具有功能完备、易使用等特点。 经过分析以上情况,我采用微软公司的Visual Studio 2008作为前端应用程序开发工具,SQL Server 2000建立后台数据库,在本次毕业设计中开发了这套库存信息管理系统。本系统利用Visual Studio 2008提供的各种面向对象的开发工具,尤其是ADO,能方便而简洁地实现应用程序和数据库的互访,是一款能让用户满意的可行系统。关键词 库存管理;ADO.NET;面向对象;数据库Inventory information management system design and developmentAbstractInventory management system is a typical management information system , which mainly includes database creation and maintenance, and front-end application development aspects. The former requires a strong consistency and integrity of data, and data with good security; while the latter requires the application functional, easy to use and so on.After analyzing of the above, I use Microsoft's Visual C #. NET as a front-end application development tool, SQL Server 2000 establishing the background database, to develop the inventory management system in this graduation project. The system uses a variety of object-oriented development tools which Visual C #. NET Provides, especially the ADO, which can be simple and easy to manipulate the database, so it is a viable system which allows the users satisfaction. Key words Inventory Management; ADO.NET; Object-oriented; Database目 录第1章绪论51.1引言51.2编写目的及意义51.3系统分析61.3.1选题的背景61.3.2系统需求分析71.4可行性分析81.4.1可行性研究的目的81.4.2经济可行性分析81.4.3技术可行性分析81.4.4操作可行性分析91.5系统的开发及功能描述91.5.1开发方法的选择91.5.2系统功能描述及系统安全性101.6系统逻辑模型10第2章 系统设计132.1 系统总体结构设计132.1.1 系统功能分析132.1.2 系统功能模块图132.2 数据库设计142.2.1 数据库概念结构设计142.2.2 数据库逻辑结构设计152.2.3 设置引用完整性202.2.4 数据库链接的实现202.3系统功能模块的详细设计202.3.1身份验证模块的设计202.3.2 系统主界面的实现232.3.3 入库管理模块的实现232.3.4 出库管理模块的实现252.3.5 报表统计模块的实现262.3.6 系统设置模块的实现262.3.7 库存管理模块的实现27第3章 系统实现283.1 用户登录界面283.2 系统主界面293.3 系统子界面303.3.1 系统信息设置303.3.2 入库管理323.3.3 出库管理343.3.4报表统计353.3.5库存管理363.3.6账务管理37第4章 系统测试384.1 系统测试的基本原则及目的384.2 软件测试方法384.3 系统的单元测试394.4 系统测试结论394.4.1 软件能力394.4.2 软件的缺陷和限制394.5 系统维护建议40结 论41致 谢43参 考 文 献44附录A45附录B 译文46库存信息管理系统46附录C 外文原文53Inventory information management system53IV ROOLSOFT第1章 绪论1.1 引言随着我国市场经济的蓬勃发展和人们对物质水平需求的增加,各行各业都处于一个飞速发展的时期,行业的快速发展必然导致各企业之间的竞争更加激烈,为了使自己的企业在竞争中能够站稳脚跟,不被激烈的竞争环境所压倒,必然要求企业加强对自身的管理,提高企业的经营效率。在当今经济全球化的社会,信息成为了企业成长的关键因素,相应的信息处理技术也在日新月异。企业的信息技术水平成为了企业具有强竞争力的重要标志。信息技术大大提高企业在信息收集、处理和发布方面的能力。因此,一个企业要想在这样极具竞争力的信息社会保持不败之地,必须关注信息技术发展,应用先进的信息技术。进销存管理系统为了提高企业管理效率和企业的核心竞争力,利用现有成熟的计算机技术和软件编程技术开发建立企业管理系统,进行有效的进销存管理变得非常重要。1.2 编写目的及意义本报告编写目的是为了说明系统需求概述、设计概要情况和设计思路,为系统的详细设计和编码提供基础,同时也作为开发人员在系统分析设计阶段的工作成果和该阶段的结束标志。使用户和软件开发者,对系统的总体设计规定有一个共同的认识,使之成为今后整个开发工作的基础和依据。库存管理是企业物流系统中的重要环节,是企业实现现代化管理的基础。因此,在研究和开发企业管理系统时,大多把库存管理系统作为突破口。库存管理系统的实施将帮助企业的仓库管理人员对库存物品的入库、出库、移库、盘点、补充订货和生产补料等操作进行全面的控制和管理。该系统可帮助用户方便的管理库存物品的数量,了解库存成本和资金占用情况,使用户可以及时了解和控制库存业务各方面的准确情况和数据,做到账、物、卡相符,帮助企业领导根据市场变化作出快速反应。库存管理系统是一个多层次的管理系统,可以通过灵活的设置实现不同层次的管理。本库存信息管理系统的开发主要包括前端应用程序以及后台数据库的建立和维护两个方面。经过分析,我选用微软公司的Visual Studio 2008来开发系统,利用其提供的各种面向对象的开发工具,来操纵数据库。本论文正文分为五部分。第一部分介绍了开发库存信息管理系统的必要性以及如何开发,并简要概述了Visual Studio 2008 和SQL Server 2008。第二部分介绍系统开发前的准备,包括系统的需求说明及系统总体结构设计和详细设计。第三部分并着重阐述了系统主要功能模块的具体实现。第四部分是系统开发的后期工作,讲到了该系统的不完善之处及本次系统开发过程中一些切身的感受与想法,是我做这次毕业设计的心得体会。1.3 系统分析1.3.1 选题的背景系统分析是软件工程的重要阶段,是所有开发的依据。在系统分析阶段,通过对系统的综合研究,对问题域进行抽象,准确的理解系统需求和系统内部运行机制,有助于准确地掌握系统的需求,从而正确地定义问题域,确定软件开发的具体内容。通过系统分析,我们要完成确定系统需求的内容、确定所有涉及到的要素为当前需要解决的问题建立相应的模型等工作,做到充分理解用户对系统的需求。企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 由于行业特殊性,产品种类繁多,业务量巨大,若仍然采用人工记账的方式,必然不能满足企业的需求,企业需要利用计算机来进行库存管理,因此需要构造一个库存信息管理系统。一个完整的企业物资供应管理系统应包括采购计划管理,合同收托管理、仓库库存管理、定额管理、统计管理、财务管理等模块。其中仓库的库存管理是整个物资供应管理系统的核心。因此有必要开发一套独立的库存信息管理系统来提高企业工作效率, 而所使用的这套库存信息管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我开发了下面的仓库库存信息管理系统。1.3.2 系统需求分析 系统需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和开发工具的选择。(1) 应用程序结构确定从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单机板应用程序结构、多层服务器应用程序结构、浏览器服务器(B/S)应用程序结构、客户机服务器(C/S)应用程序结构等5种类型。 本库存信息管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上,这样更加节约成本,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机上,可以同时运行程序。(2) 确定系统开发环境由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境: 数据库:Microsoft SQL Server 2008; 前端开发工具:Visual Studio 2008;数据访问对象:ADO.NET(3) 开发工具的选择可视化(visual)程序设计是一种全新的程序设计方法,全面采用面向对象的程序设计技术,使用事件驱动机制进行程序设计。利用可视化开发工具可以快速、高效地开发应用程序。可视化的开发工具很多,如Microsoft公司推出的Visual Studio软件系列,Borland公司的Delphi、C+ Builder系列等。Visual Studio 是微软公司推出的集成开发环境,是目前最流行的 Windows 平台应用程序开发环境。它是把代码的编写、程序的调试、编译、运行以及其他的相关操作都集成在一起的“编程工具”。 作用是程序员通过它这个平台,利用编程语言来写程序,调试,运行。SQL Server 2008 是Microsoft 公司推出的SQL Server 数据库管理系统。该版本继承了以前版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows XP 的膝上型电脑到运行Microsoft Windows 7 的大型多处理器的服务器等多种平台使用。经分析,本库存信息管理系统选用Visual Studio 2008来设计界面,选用SQL Server 2008来建立后台数据库。1.4 可行性分析1.4.1 可行性研究的目的可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。一般来说,可行性分析应从经济可行性、技术可行性、操作可行性等方面进行研究。1.4.2 经济可行性分析由于本库存信息管理系统所要求的硬件(计算机及相关硬件)和软件环境(Visual Studio 2008+SQL Server 2008),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少库存的工作强度,提高工作效率,而且方便了库存对信息的管理,延续了传统的管理模式,极大限度地方便了库存管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面分析开发此系统是可行的。1.4.3 技术可行性分析技术上的可行性分析要考虑现有技术条件能否顺利完成开发工作及将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。本系统采用Visual Studio 2008作为系统前台应用程序开发工具,采用SQL Server 2008工具建立数据库,并通过Visual Studio 2008中的ADO控件使两者进行连接从而进行系统软件开发。Visual Studio 2008不仅能帮助软件开发者提高软件开发的质量和效率,缩短开发周期,而且还具备强大的数据库管理功能,完全能够满足本系统的开发需求。 此外,从开发人员的水平考虑,作为计算机科学与技术专业毕业的学生,大学四年所积累的专业知识使我们从一定程度上具备了开发一个小型系统的能力,而且学校现有的计算机设备也完全能够满足开发的需要。1.4.4 操作可行性分析传统的库存信息管理系统,一般有两种方式:一是手工管理,这种方式应用传统的“笔纸操作系统”,将库存的货物信息、销售信息、厂商信息管理及单据管理等均以纯手工的形式进行,将信息以表格文件的表现形式记录在纸上,再进行统一保存。这种方式虽然在简单信息查询时会有一定的方便,但是存在着更多的不便:信息保存时间和条件很受限制、容易被损坏、信息查询不便、信息传达容易造成失误等。另一种常见的信息管理方法是应用单机版的管理系统,本系统就是一款做的相对到位的单机版的库存信息管理系统,在库存信息处理方面做得很精准规范。因为库存管理人员已经有丰富的信息管理经验,加之有相当的计算机应用经验,所以对于此系统一定很容易就可操作熟练。综上所述,本库存信息管理系统投资少、收益大,且其运行操作简单易学,具备了开发的可行性。1.5 系统的开发及功能描述1.5.1 开发方法的选择信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。本系统的开发采用了生命周期法。在系统设计时遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。1.5.2 系统功能描述及系统安全性本库存信息管理系统是一套对货品入库、出库、库存进行全面管理的系统。在管理内容上,它的主要功能包括:入库管理:填写货品信息,货品入库,产品的退回,退回记录查询和供应商的管理。 出货管理:进行货品出库,出货记录,销售记录的查询和退货查询的管理。库存管理:货品信息查询,库存信息查询,库存的调拨和调拨的记录查询。统计报表:进货统计,销售统计和退货统计。系统设置:基本信息的设置,员工及部门的管理,产品仓库的管理和系统日志记录。由于库存信息管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性,体现如下:安全性:本系统由后台分配权限,只有系统管理员才能进入后台。一致性:系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。1.6 系统逻辑模型本系统的逻辑模型以系统的数据流图为主要描述工具。数据流图是组织中信息运动的抽象,是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目,它表达了数据和处理的关系。为了叙述方便,我们用不同的符号代表这四个元素:表示数据流;表示文件(数据存储);表示加工;表示数据流的源点和终点。通过分析调查有关库存管理需要,并针对一般库存信息管理系统的功能需求,设计出库存信息管理系统顶层数据流程图如图1-1所示:业务输入业务结果查询结果查询要求 注册用户修改要求修改结果系统管理员仓库管理员返回结果库存信息管理系统管理员查询要求查询结果图1-1库存信息管理系统顶层DFD根据系统的顶层数据流图,进一步分析,画出系统的第二层数据流图如图1-2所示:出货结果出货管理进货管理采购员表仓库信息表 操作员个人信息表客户信息表采购员表查询结果修改结果修改要求信息查询密码用户名用户编号密码数据维护信息查询系统管理员仓库管理员进货管理身份验证身份验证操作员个人信息表系统管理员库存信息管理系统出货管理进货结果采购员表库存信息表表货品信息表表库存信息表表经理身份验证用户编号密码信息查询经理货品信息表库存信息表入库单出库单信息查询查询结果操作员个人信息表操作人员信息图1-2库存信息管理系统的第二层DFD图第2章 系统设计2.1系统总体结构设计2.1.1 系统功能分析系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。系统功能分析是在系统开发总体任务的基础上完成的。本库存信息管理系统需要完成的功能有:(1)库存管理的各种信息的输入,包括入库、出库、货品信息的输入等。 (2)库存管理的各种信息的查询、修改和维护。 (3)入库单、出库单的生成,日报表、月报表的生成。 (4)在货品库存中加入所允许的最低库存字段,对所有库存物资监控和报警。 2.1.2 系统功能模块图根据系统功能分析,画出系统功能模块图如下:库存信息管理系统基本信息设置员工管理员工部门管理账务管理报表统计入库管理出库管理系统设置产品入库入库记录查询退回记录查询库存查询库存调拨进货统计退货统计银行管理库存管理仓库管理退回公司供应商管理调拨记录查询系统登录日志产品销售销售记录查询销售退货退货记录查询销售统计图2-1系统总体功能模块图2.2 数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。2.2.1 数据库概念结构设计本系统将货品分类,每类货品都有一名采购员负责采购,每名采购员只负责采购一类货品,每类货品都放在一个仓库中,一个仓库中可以放不同种类的货品,每个客户可以订购不同的货品,每种货品可以卖给不同的客户。货品采购仓库客户存储订购采购员n1mnn1货品编号规格型号单位货品名称客户编号客户名称仓库名称负责人联系电话采购员编号采购的货品类别图2-2库存信息管理系统ER图2.2.2 数据库逻辑结构设计根据系统功能需求与数据流程图,本数据库管理系统需要13个数据表,分别是银行表、产品大类表、产品采购表、采购员提成配置表、产品单位表、产品调拨表、供应商信息表、会员管理表、仓库管理表、用户登录表、产品信息表、销售表、产品小类表、等。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。数据库的13个表如下:表格1 银行表字段名说明类型长度是否为空主键ID银行编号Int否是Bank银行名称Nvarchar255是Price银行交易量Float是Beizhu备注NvarcharMax是Moren默认Bit否表格2 产品大类表字段名说明类型长度是否为空主键ID大类编号Int否是Bigclass大类名称Nvarchar255是表格3 产品购买表字段名说明类型长度是否为空主键IdInt否是Id_productInt是TitleNvarchar50是Id_loginInt是loginNvarchar50是Id_gysInt是GysNvarchar255是Sell dateDatetime是ShulianFloat是TypeInt是Id_kuInt是KuNvarchar50是HuohaoNvarchar50是BigclassNvarchar50是SmallclassNvarchar50是GuigeNvarchar50是Id_huiyuanInt是PriceFloat是Price2Float是IsokBit否PhotoNvarchar255是BianhaoNvarchar255是ZuBit否beizhuNvarcharMax是表格4 仓库表字段名说明类型长度是否为空主键Idint否是KuNvarchar50是LoginNvarcharmax是AddressNvarchar255是TelNvarchar50是beizhuNvarcharmax是morenbit否表格5 系统日志表字段名说明类型长度是否为空主键IdInt否是usernameNvarchar255是classNvarchar255是addressNvarchar255是logindateDatetime是表格6 系统配置表字段名说明类型长度是否为空主键Idint否是DianmingNvarchar255是JieshaojifenInt是XuhuijifenInt是BaojinNvarchar10是Baojin2Nvarchar10是Dayin1Nvarchar10是Dayin2Nvarchar10是ShowpicNvarchar10是MaxrecordInt是MaxproductInt是TiqianInt是LookbuysellNvarchar10是lookhuiyuanNvarchar10是表格7 产品单位表字段名说明类型长度是否为空主键Idint否是danweiNvarchar50是表格8 产品调拨表字段名说明类型长度是否为空主键IdInt否是Id_productInt是TitleNvarchar50是Id_loginInt是loginNvarchar50是Id_login2Int是Login2Nvarchar50是Sell dateDatetime是ShulianFloat是TypeInt是Id_ku_chuInt是Ku_chuNvarchar50是Id_ku_ruint是Ku_ruNvarchar50是HuohaoNvarchar50是BigclassNvarchar50是SmallclassNvarchar50是GuigeNvarchar50是PriceFloat是Price2Float是IsokBit否PhotoNvarchar255是BianhaoNvarchar255是beizhuNvarcharMax是表格9 会员信息表字段名说明类型长度是否为空主键IdInt否是usernameNvarchar50是xingbieNvarchar50是telNvarchar50是addressNvarchar255是jieshaoint是Id_loginint是loginNvarchar50是cardNvarchar50是sfzNvarchar50是startdateDatetime是jifenFloat是enddatedatetime是beizhuNvarcharMax是shengridatetime是wenhoudatetime是yinyanNvarchar50否qqNvarchar50是emailNvarchar100是Id_zuint是表格10 用户登录表字段名说明类型长度是否为空主键Idint否是biaohaoNvarchar50是usernameNvarchar50是pwdNvarchar50是quanxianNvarcharmax是xingbieNvarchar2是telNvarchar50是AddressNvarchar255是SfzNvarchar50是Gongzifloat是qqNvarchar50是EmailNvarchar100是Id_zuint是表格11 会员组别表字段名说明类型长度是否为空主键IDInt否是zuNvarchar255是表格12 产品销售表字段名说明类型长度是否为空主键IdInt否是Id_productInt是HuohaoNvarchar50是TitleNvarchar50是loginNvarchar50是Id_loginInt是Id_gysInt是GysNvarchar255是Sell dateDatetime是ShulianFloat是PriceFloat是Price2Float是Id_huiyuanInt是TypeInt是Id_kuInt是KuNvarchar50是BigclassNvarchar50是SmallclassNvarchar50是GuigeNvarchar50是IsokBit否PhotoNvarchar255是BianhaoNvarchar255是ZuBit否beizhuNvarcharMax是表格13 产品信息表字段名说明类型长度是否为空主键IdInt否是TitleNvarchar255是Id_bigclassInt是Id_smallclassInt是PriceFloat是Price2Float是ShulianFloat是danweiNvarchar50是Id_kuint是Ticheng_typeint是tichengreal是guigeNvarchar50是HuohaoNvarchar50是Baojinfloat是classint是duihuanint是PhotoNvarchar255是beizhuNvarcharMax是表格14 产品小类表字段名说明类型长度是否为空主键ID大类编号Int否是smallclass大类名称Nvarchar255是Id_bigclassint是表格15 登录组别表字段名说明类型长度是否为空主键IDInt否是zuNvarchar255是2.2.3 设置引用完整性为了防止用户不小心删除有用的数据,或者输入错误的数据,就需要设置引用完整性 (Referential Integrity)。例如本系统用到的数据库中,入库单中输入的货品编号必须现存在于货品信息表中。通过设置引用完整性对数据库进行约束,能够帮助程序员和用户确保使用的数据是合法的。2.2.4 数据库链接的实现为了充分展现对象编程的思想,系统中利用ADO.NET中的组件SqlConnection实现数据库和前台应用程序之间的连接,利用connection对象和command对象实现随时访问数据库的功能。ADO控件比较灵活,它使用SQL表达式,通过SQL属性来和数据库文件相连并显示要显示的字段,可以方便地对一个或多个数据表中的记录进行访问。2.3系统功能模块的详细设计本库存信息管理系统是本着用户操作界面友好、清晰、易学易用的原则进行设计的。2.3.1身份验证模块的设计在进入系统主界面之前,会出现一个身份验证对话框,要验证用户的身份。库存信息管理系统用户名:密码:重置登陆图2-3用户登录模块界面设计该模块的流程图如图2-4所示:是否登 录是否为合法用户?否管理员后台判断登录信息进入系统开 始结 束图2-4用户登录模块流程图此外,对一个完整的系统而言,用户是应该可以修改自己的密码的,因此系统中应该具有修改密码的功能,提高数据的安全性,用户可以在进入系统主界面后可以修改自己的密码。当用户输入完成之后,按“确定”按钮来关闭对话框,系统会自动检查用户两次输入的密码是否一致,如果不一致,会出现出错提示并建议用户重新输入。请输入新密码请确认新密码确认取消图2-5修改密码界面设计2.3.2系统主界面的实现 系统主菜单分为六个大栏目,每个栏目下面根据不同的功能,也添加了各自的子栏目来完善界面。 库存管理出库管理统计报表账务管理入库管理系统设置图2-6主界面(admin)设计2.3.3入库管理模块的实现 入库管理模块包括产品入库、入库查询、退回产品、退回记录、供应商五个子模块。(1) 产品入库选择产品经办人备注供应商入库时间确定添加重新填写图2-7