-1-库存管理系统信息管理系统实验班级:姓名:学号:日期:2011-11-24引言随着我国市场经济的蓬勃发展和人们对物质水平需求的增加,各行各业都处于一个飞速发展的时期,行业的快速发展必然导致各企业之间的竞争更加激烈,为了使自己的企业在竞争中能够站稳脚跟,不被激烈的竞争环境所压倒,必然要求企业加强对自身的管理,提高企业的经营效率。本库存管理系统的开发主要包括前端应用程序以及后台数据库的建立和维护两个方面。经过分析,本人选用VisualC#.NET来开发系统,利用其提供的各种面向对象的开发工具,来操纵数据库。一、系统分析系统需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和开发工具的选择。1.1、应用程序结构确定从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单机板应用程序结构、多层服务器应用程序结构、浏览器/服务器应用程序结构、客户机/服务器应用程序结构等5种类型。本库存管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上,这样更加节约成本,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机上,可以同时运行程序。1.2、确定系统开发环境由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境:★数据库:MicrosoftSQLServer2000;★前端开发工具:VisualC#.NET;★数据访问对象:ADO。二、可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否-2-现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。一般来说,可行性分析应从经济可行性、技术可行性、操作可行性等方面进行研究。本系统的可行性分析如下:2.1、经济可行性分析由于本库存管理系统所要求的硬件(计算机及相关硬件)和软件环境(VisualC#.NET+SQLServer2000),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少库存的工作强度,提高工作效率,而且方便了库存对信息的管理,延续了传统的管理模式,极大限度地方便了库存管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。2.2、技术可行性分析技术上的可行性分析要考虑现有技术条件能否顺利完成开发工作及将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。本系统采用VisualC#.NET作为系统前台应用程序开发工具,采用SQLServer2000工具建立数据库,并通过VisualC#.NET中的ADO控件使两者进行连接从而进行系统软件开发。VisualC#.NET不仅能帮助软件开发者提高软件开发的质量和效率,缩短开发周期,而且还具备强大的数据库管理功能,完全能够满足本系统的开发需求。此外,从开发人员的水平考虑,作为计算机科学与技术专业毕业的学生,大学四年所积累的专业知识使我们从一定程度上具备了开发一个小型系统的能力,而且学校现有的计算机设备也完全能够满足开发的需要。2.3、操作可行性分析传统的库存管理系统,一般有两种方式:一是手工管理,这种方式应用最传统的“笔纸操作系统”,将库存的货物信息、销售信息、厂商信息管理及单据管理等均以纯手工的形式进行,将信息以表格文件的表现形式记录在纸上,再进行统一保存。这种方式虽然在简单信息查询时会有一定的方便,但是存在着更多的不便:信息保存时间和条件很受限制、容易被损坏、信息查询不便、信息传达容易造成失误等。综上所述,本库存管理系统投资少、收益大,且其运行操作简单易学,具备了开发的可行性。三、系统的开发及功能描述3.1、开发方法的选择信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。本系统的开发采用了生命周期法。在系统设计时遵循系统调查研究、系统分析、系统设计和系统-3-实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。3.2、系统功能描述及系统安全性本库存管理系统是一套对货品入库、出库、库存进行全面管理的系统。在管理内容上,它的主要功能包括:进货管理:进行填写货品信息,货品采购入库,入库单据的填写和修改最低库存量。出货管理:进行货品出库,出货单据的填写和获取采购员信息。信息查询:货品信息查询,库存信息查询,入库、出库单据查询,日报表、月报表查询。统计报表:完整的日报表、月报表统计查询功能,每张单据每次业务金额都可以清楚地反映。系统管理:身份验证,修改本人密码,注册用户,修改删除用户。由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性,体现如下:(1)安全性:本系统中共分为三类不同的用户,分别具有不同的权限。(2)一致性:系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。四、系统逻辑模型数据流图是组织中信息运动的抽象,是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目,它表达了数据和处理的关系。图4.1库存管理系统顶层DFD系统总体结构设计4.1、系统功能分析业务输入业务结果查询结果查询要求注册用户修改要求修改结果系统管理员仓库管理员返回结果库存管理系统经理查询要求查询结果-4-系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。系统功能分析是在系统开发总体任务的基础上完成的。本库存管理系统需要完成的功能有:(1)库存管理的各种信息的输入,包括入库、出库、货品信息的输入等。(2)库存管理的各种信息的查询、修改和维护。(3)入库单、出库单的生成,日报表、月报表的生成。(4)在货品库存中加入所允许的最低库存字段,对所有库存物资实现监控和报警。4.2、系统功能模块图根据系统功能分析,画出系统功能模块图如下:图4-2系统总体功能模块图4.3、数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。4.3.1、数据库概念结构设计库存管理系统身份验证注册用户修改删除用户修改密码信息查询报表统计进货管理出货管理系统管理入库单填写填写货品信息修改最低库存出库单填写获取采购员信息日报表月报表库存查询货品查询报表查询-5-本系统将货品分类,每类货品都有一名采购员负责采购,每名采购员只负责采购一类货品,每类货品都放在一个仓库中,一个仓库中可以放不同种类的货品,每个客户可以订购不同的货品,每种货品可以卖给不同的客户。图4-3库存管理系统E-R图4.3.2、数据库逻辑结构设计根据系统功能需求与数据流程图,本数据库管理系统需要11个数据表,分别是操作员个人信息表、登录表、仓库信息表、货品信息表、库存信息表、入库单、出库单、采购员表、客户信息表、日报表、月报表。11个表的数据库逻辑结构如下:操作员个人信息表(UID,Uname,Sex,Tel);登录表(UID,PWD,Limit);仓库信息表(仓库名称,负责人,联系电话,联系地址,备注);货品信息表(货品编号,货品名称,货品类别,单位,规格型号,颜色);库存信息表(库别,货品编号,最低库存,数量,进货单价,出货单价);入库单(凭证编号,库别,货品编号,数量,进货单价,合计,入库时间,制单人,采购人编号);出库单(凭证编号,库别,货品编号,数量,出货单价,合计,出库时间,制单人,客户编号);采购员表(UID,Uname,采购的货品类别,Tel);客户信息表(客户编号,客户名称,联系人,联系电话,联系地址,备注);日报表(日期,货品编号,本日入库数量,本日入库金额,本日出库数量,本日出库金额,本日出库利润);月报表(月初日期,月末日期,货品编号,本月入库金额,本月出库金额,本月出库利润);4.3.3、设置引用完整性货品采购仓库客户存储订购采购员n1mnn1货品编号规格型号单位货品名称客户编号客户名称仓库名称负责人联系电话采购员编号货品类别品类别-6-为了防止用户不小心删除有用的数据,或者输入错误的数据,就需要设置引用完整性。例如本系统用到的数据库中,入库单中输入的货品编号必须现存在于货品信息表中。通过设置引用完整性对数据库进行约束,能够帮助程序员和用户确保使用的数据是合法的。4.3.4、数据库链接的实现为了充分展现对象编程的思想,系统中利用ADO.NET中的组件SqlConnection实现数据库和前台应用程序之间的连接,利用connection对象和command对象实现随时访问数据库的功能。ADO控件较灵活,它使用SQL表达式,通过SQL属性来和数据库文件相连并显示要显示的字段,可以方便地对一个或多个数据表中的记录进行访问。五、系统开发总结作为计算机科学与技术专业的学生,四年的学习过程让我们学到了很多知识,然而真正运用于实践的并不多,此次库存管理系统开发让我学习到很多知识,现总结如下:系统开发的过程中,我深刻体会到了以前上课老师经常提起的一个问题,那就是:一个系统开发的过程中编码不是最重要的,重要的是对系统进行分析以及建立恰当的系统模型。有了一个好的系统模型之后,我们再将其划分成几个模块,那样做起来就会容易得多。本系统中采用了生命周期法进行系统的开发,就体现了该模块化设计思想。在该库存管理系统设计中,从系统的实用性出发,我能够在开发该系统时站在用户的角度看问题,本着用户操作界面友好、清晰、易学易用的原则进行设计。如开发过程中我尽可能地设想记录为空,输入为空,输入出错等边界条件,然后在这些边界上,设置出错检测,使系统能自动捕获出错点,给出提示,允许用户重新进行操作,使系统能够安全的运行下去,而不是退出系统。文章的前面讲到了本系统数据库是使用SQLServer2000进行设置的,也讲到了它的优点,这里就不多说了,但是在本次设计中,我发现了VisualC#.NET的一种应用编程接口—ADO(ActiveXDataObjects)。它是一种面向对象的、与语言无关的应用编程接口,具有易于使用、高速度、低内存支出和占用磁盘较少,可以使用所有支持ODBC的数据库等优点;使用ADO可以实现动态数据库的链接,从而避免以往静态方式连接数据库的一些缺点。这些知识对我本次的系统开发有着很大的帮助。开发期间,我学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而精确、让用户能够尽量简单地进行操作。但是在检测过程中,还是出现了很多的不足之处,这些都是要在今后的工作中需要努力改进和完善的。在这次毕业设计中,我遇到了很多困难,这主要是由于我开发软件的经验不足,工具的应用也不够熟练,虽然VisualC#.NET用的语言是C#,但是由于以前基础不够扎实,对我来说可以算是一个全新的尝试,