1、仓库管理系统毕业设计(论文)完整程序设计源代码请联系本人,参见豆丁备注和信息。摘 要随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现管理企业势在必行。而仓库管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本文通过分析浏览器/服务器结构的特点并结合企业仓储管理的实际情况,提出了基于B/S结构中小型企业仓库管理系统的基本设计思想,简要介绍了系统各功能模块及数据库的设计,着重讨论了用 ASP.NET技术和SQL Server
2、2005开发企业仓库管理系统时的数据库访问技术和动态网页制作技术,并给出了部分实现代码。通过该系统,使学生可以方便地在企业内部网上进行仓储管理。该B/S结构的系统在Windows XP系统和VS.NET平台下开发完成,使用C作为ASP.NET的开发语言,SQL Server 2005作为后台数据库,该数据库系统在安全性、准确性、运行速度方面均有绝对的优势,并且能够对容量较大的数据库进行处理,效率高。系统有较高的安全性和较好的性能。其中连接数据库的字符串可以随时在Web.Config里修改,增加了灵活性和安全性。代码尽量减少数据库连接的打开时间等手段来提高性能。本文中除了有对程序的系统分析、总体
3、设计、数据库设计、功能实现等主体部分外,在这之前还介绍了与企业仓库管理系统相关的信息、VS.NET与SQL的无缝链接技术等。关键词 仓库管理;信息管理系统;B/S结构;数据库管理3232 论文第5章 总结AbstractWith rapid advancement of computer technology and widely applied in corporation management, it is imperative to utilize it to realize Enterprise administration. Warehouse Management System i
4、s one of typical Management Information System, whose exploitations mainly include establishment and maintenance of backstage database as well as front application programmer. For the former, it is required to set up united, complete and high-secured database, while, for the latter, complete functio
5、ns of application programmer and simple operation. This thesis points out basic theory of Warehouse Management System based on explorer and server/organization in small-to-medium-sized enterprises, analyzing characteristics of B/S and relating to realities of situation of Warehouse Management System
6、. It introduces design of every functional group and database briefly and focuses on discussion concerning to exploit database access technology and dynamic web design needed for Warehouse Management System in light of ASP. NET technology and SQL Server 2005. It also presents parts of implementation
7、 codes, helping students to operate Warehouse Management in corporation local site. This B/S system was exploited on the platform of Windows XP and VS. NET, using C# as ASP. NET exploitation language, SQL Server 2005 as backstage database, which possesses advantages in security, precision, speed, et
8、c. and can deal with databases with high capacity efficiently. The character connecting databases can be altered anytime, which raises flexibility and security, codes reducing the time to open database connection.In this dissertation, besides system analysis, overall design, database design, functio
9、nal realities, etc, information related to Warehouse Management System, seamless connection technology of VS. NET and SQL are also introduced.Key wordsWarehouse Management Management Information System B/S StructureDatabase Management 目 录第1章绪 论311.1背景及发展现状311.2系统的构建31第2章系统开发环境的介绍及选择322.1 java322.4 B
10、/S结构3425 开发及运行环境34第3章 需求分析35第4章系统总体设计364.1数据库总体设计364.2表关系图384.3表结构394.3.1管理员表(Admin)394.3.2房间表(Room)394.3.3房间类型表(RoomType)394.3.4预定表(Ding)404.3.4会员表(Client)404.3.3会员级别表(ClientType)40第5章详细设计415.1登录模块设计416.2统计模块436.3会员卡办理446.4 房间预定456.5 退房管理466.6修改密码48第7章 总结49致 谢29参考文献30第1章绪 论课题背景兵马未出,粮草先行。古代行兵打仗,最先要考
11、虑的就是物资的准备和管理,否则要取得胜利是非常困难的一件事。商场如战场,商家不仅要掌握大量的物资,同时这些物资还要尽可能满足顾客的需要,这样才能在激烈的市场竞争中获取胜利。然而管理物资却是最烦琐的事情,无论数量还是种类,都是数以万计,用人手工来做,不仅是难于完成,而且可以说是不可能的。在计算机普及的今天,用电脑管理物资是必然的趋势。以超级市场为例,走进超级市场,琳琅满目,各式各样的商品应有尽有,顾客大都满载而归,买到称心如意的商品。而在顾客得到极大方便的同时,商家在管理这些商品上却花费了大量的心血。首先,超级市场商品种类繁多,数量庞大,经营者必须时刻了解自己商品的库存和各种商品的供求,如果盲目
12、购进顾客不需要的商品或没有购进畅销的商品,对经营者来说都是极大的损失。其次,由于市场瞬间万变,很多商品价格可能变动较大,经营者可能要不时改变商品价格,否则太高则可能无人问津,太低则无利可图。再次,在商品社会的环境下,竞争激烈,为了保证在竞争中处于有利地位,经营者必须时刻了解市场的需要。当然,作为实际的经营者,要了解的东西远比这几点多,但无论怎样,物资的管理是一切工作中的重点,如何管理物资是成败的关键。对小经营者来说,也许可以是一本账本,再加算盘或计算器即可。但对于大公司而言,根本不可能单纯依靠账本,那样不仅费人费力,而且当出现差错时,难于查改。所以必须借助电脑,把所有数据输入数据库,然后用系统
13、对这些数据进行管理,通过统计和分析得到各种有用的信息。通过对这些情况的仔细调查,作者开发了下面的中小型企业仓库管理系统。课题目的和意义随着计算机行业的不断发展,企业管理的应用也在不断随着其发展速度进行着更新。而现今对于一个网络应用非常广泛的社会,企业管理对计算机管理企业要求更加紧密,更加完善,特别是针对物资管理方面,企业的需求更为广泛,谨慎,所以一个好的仓库管理系统对于企业来说是由为重要的。系统开发的总体任务是实现企业物资管理的系统化、规范化和自动化,从而达到提高企业管理效率的目的。作为计算机应用的一部分,使用计算机对仓库信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可
14、靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高仓库管理的效率。开发设计思想仓库管理系统在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。传统简单、静态的仓库管理已无法保证企业各种资源的高效利用。如今的仓库作业和库存控制作业已十分复杂化多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大损失。仓库库存管理的特点是信息处理量比较大。所管理的物资设备、原材料及零部件种类繁多,而且由于入库单、出库单、需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同
15、,因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门规格不统等问题。主要工作和论文结构作者首先对系统进行了需求分析和总体设计。在前一步的工作基础之上,又对各个模块细分为若干个子模块,并分别进行了编码实现。最后将系统各个模块整合,测试系统各部分整合后的功能,稳定性等。第2章系统开发环境的介绍及选择2.1 javaJava已用动态的交互应用软件使Web栩栩如生。它使开发人员具有编写一次到处运行TM”的巨大能力。而且,进货助其JavaAPI及其编程语言上的Java虚拟机,它已产生一种分布信息的崭新模式。这种模式叫做Java企业计算,正在帮助各企业以
16、各种不同的方法取得竞争优势。网管和控制已大大简化。软件分配基本上是免费的,而且立即可实现。电子贸易已获得。占有成本大幅度降低。信息和应用软件到处可存取。Java建立在简单的前提基础上,即所有微处理器都应讲同一种语言所有内部采用芯片的产品都应能一起工作,无缝而方便地共享信息。它已经改变企业和个人同Internet大交道的方式。现在,它正在对消费类产品产生明显的影响,而且从总体上更加深刻地影响企业计算。进货助Java,您可自由自在地使用您已拥有的硬件和软件。这是因为Java是独立于平台的。它还可使您超越企业计算,使应用软件在便携式计算机、信息亭、电视、蜂窝电话和其他大量设备上运行。全世界的公司都已
17、发现Java数不胜数的用途。所有用途可从其无可比拟的能力,即提高可靠性、安全性和简化各种不同计算产品和环境的能力中受益非浅,而且节省的时间和费用十分可观。Java无处不在。它已拥有几百万个用户,其发展速度要快于在它以前的其他任何一种计算机产品。它可位于任何地方,而且能到处运行。Java正在迅速被用做传播信息的事实上标准,这是因为它既可给企业,也可给最终用户带来似乎数不清的好处。Java的特点: 1、Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、
18、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。 3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程
19、的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代
20、本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。 8、Java语言是解
21、释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释r器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。 9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。 10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable
22、) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。 11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,
23、Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。 Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。r2.4 B/S结构B/S (Browser / Server)结构,即 “浏览器/服务器 ” 结构。这种结构是随
24、着Internet技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务在服务器端实现。B/S结构:主要利用不断成熟的WWW服务器技术,结合多种Script(VBScript ,JavaScript)语言和Active X技术,用通过浏览器实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统技术。C/S传统的结构虽然采用了开放模式,但这只是系统开发一级的开放性。在特定的应用中无论是Client还是Server端都需要特定的软件,没能提供真正的开放环境。B/S 结构则不同,是以TC
25、P/IP协议为基础的企业内的WWW服务器,可以接受安装有Web 浏览器程序的Internet 终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成。这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。软件系统的改进和升级越来越频繁,B/S 架构的产品明显体现其方便性,无论用户的规模有多大,有多少分支结构都不会增加任何维护升级的工作量,所有的操作只要针对于服务器进行。如果是异地,只需要把服务器连接上网即可以进行维护和升级,这对人力、时间、费用的节省是相当惊人的。25 开发及运行环境系统开发平台:MyEclipse 6.0.1数据库:
26、SQL Server 2005运行平台:Windows XP/Windows 2000/Windows 2003分辨率:最佳效果1024768像素第3章 需求分析第4章系统总体设计4.1数据库总体设计数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是
27、通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYSTEM)软件来实现数据的存储、管理与使用。数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYST
28、EM)软件来实现数据的存储、管理与使用。数据库是一个共享的、集成的计算机结构,它包括最终用户数据和元数据。一个好的数据库并不是随意产生的,其内容结构必须经过精心设计。设计优良的数据库会使数据管理变得容易,并产生有价值的信息;而设计糟糕的数据库则会成为冗余数据的滋生地。冗余数据经常会造成难以跟踪的错误。关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则被称为规范化形式,即范式。在数据库设计过程中,对数据库进行检查和修改并使它符合范式的过程叫做规范化。规范化是给实体分配属性的过程。它能够减少数据冗余,有助于进一步消除由于冗余引
29、起的数据异常。规范化不能够消除数据冗余;相反,它通过生成有控制的冗余来连接数据库表。规范化通过一系列称为范式的阶段来完成。第一范式:设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项(成为原子)的集合,则称这个关系模式属于第一范式。第一范式要求每一个数据项都不能拆分成两个或两个以上的数据项。第二范式(2NF):若关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的候选键,则R称为第二范式。如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主关键字段的数指都依赖于该数据表的主键字段,那么该数据表满足第二范式。第三范式(3NF):如果关系模式R是1NF,而且它的任何一个
30、非主属性都不传递地依赖于任何候选键,则R称为第三范式。如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范式。数据表规范化的程度越高,数据冗余就越少,同时造成人为错误的可能性就越少;同时,规范化的程度越高,在查询检索时需要做的关联等工作就越多,数据库在操作过程中需要访问的数据表以及之间的关联也就越多。因此,在数据库设计的规范化过程中,要根据数据库需求的实际情况,选择一个折中的规范化程度。4.2表关系图表关系图:图31 表关系图4.3表结构对于信息管理系统,数据基本上都是使用数据库进行管理。数据库设计是对保存管理系统数据的数据库结
31、构进行设计,对整个系统的开发具有非常重要的作用。管理员表英文名中文名类型是否主键id编号int是Name登陆名varchar(50)Pass密码varchar(50)出库表:英文名中文名类型是否主键id编号int是Name领用人nvarchar(50)Thing_ID物品intThing外键Num数量intWorker_ID经手人intWorker外键Intime出库时间datetimeWareHouse_ID仓库编号intWareHouse外键入库表:英文名中文名类型是否主键id编号int是Factory_ID供应商intFactory外键Thing_ID物品编号intThing外键Num数
32、量intWorker_ID经手人intWorker外键Intime入库时间 datetimeWareHouse_ID仓库编号intWareHouse外键物品类型表:英文名中文名类型是否主键id编号int是Type类型Varchar(50)厂商表:英文名中文名类型是否主键id编号int是Name姓名Varchar(50)Tel电话Nvarchar(50)Address地址Nvarchar(50)People负责人int员工表:英文名中文名类型是否主键id编号int是Name姓名Varchar(50)Age年龄intsex性别nvarcharTel电话Nvarchar(50)Address地址Nv
33、archar(50)mail邮箱nvarchar库存表:英文名中文名类型是否主键ID编号int是WearHouse_ID仓库编号intWearHouse_ID外键Thing_ID物品骗号intThing外键Num数量int物品表:英文名中文名类型是否主键id编号int是Name物品名称Varchar(50)ThingType_ID物品类型intThingType外键DanWei单位Varchar(50)Factory生产商nvarchar仓库表:英文名中文名类型是否主键id编号int是Name姓名NvarcharTel电话Nvarcharaddress仓库地址nvarchar本章小结总体设计阶
34、段,在需求分析的基础之上规划出了系统的功能模块,以及在此分析基础上设计出的具体的、可以满足本系统全部需求的数据库。由于数据库在设计中有非常重要的作用,所以在开发过程中,在考虑数据库上的时间较多。第5章详细设计5.1登录模块设计登录对话框(如图41),输入用户名和密码,若正确则打开主窗体,否则提示密码错误,请重新输入。输入用户信息求请送发用户名是否为空密码是否为空用户是否存在密码是否错误登陆成功Truefalsefalsefalse登录窗体代码如下:request.setCharacterEncoding(UTF-8);String loginname=request.getParameter(
35、name);String PWD= request.getParameter(pwd);Admin a=new AdminServer().Login(loginname);if(a=null)out.print(alert(没有该用户);location.replace(./login.jsp););else if(!a.getPass().equals(PWD)out.print(alert(您输入的密码有误);location.replace(./login.jsp););elsesession.setAttribute(admin,a);out.print(location.repla
36、ce(./zhiwei.jsp););6.2物品模块输入物品的详细信息,然后点击提交关键功能代码如下:request.setCharacterEncoding(UTF-8);String id= request.getParameter(id);String name=request.getParameter(name);String danwei=request.getParameter(danwei);String factory=request.getParameter(factory);String ttype=request.getParameter(ttype);String pa
37、ram=request.getParameter(param);Thing b=new Thing();if(param=null)b.setName(name);b.setDanWei(danwei);b.setFactory(factory);int count=0;if(param=null&id.equals(null)int newid = new ThingServer().Add(b,Integer.parseInt(ttype);List ws=new WareHouseServer().GetAll(,0,100);for(int i=0;iws.size();i+)coun
38、t = new StockServer().Add(ws.get(i).getId(),newid);else if(param=null)b.setId(Integer.parseInt(id);count = new ThingServer().Edit(b,Integer.parseInt(ttype);elsecount=new ThingServer().Del(Integer.parseInt(id);if(count=0)out.print(alert(操作失败);location.replace(./addthing.jsp););elseout.print(alert(操作成
39、功);location.replace(./thing.jsp););6.3进货输入进货的信息,进货的仓库,然后点击提交,提交之后并没有入库,而且放进了进货单,最后需要确认之后才可以入主加,主要实现功能代码如下:List js=new ArrayList();if(session.getAttribute(jin)!=null)js=(List)session.getAttribute(jin);int fid=Integer.parseInt(request.getParameter(factory);int tid=Integer.parseInt(request.getParameter
40、(thing);int wid=Integer.parseInt(request.getParameter(worker);int whid=Integer.parseInt(request.getParameter(whouse);int num=Integer.parseInt(request.getParameter(num);Jin j=new Jin();j.setFactory(new FactoryServer().GetByID(fid);j.setThing(new ThingServer().GetByID(tid);j.setWorker(new WorkerServer
41、().GetByID(wid);j.setWhouse(new WareHouseServer().GetByID(whid);j.setNum(num);js.add(j);session.setAttribute(jin,js);out.print(location.replace(./addjin.jsp););6.4 出库记录可以查看所有出库记录,并且可以按条件进行查询,上面可以按物品,按经手人,按仓库,按时间段进行查询,关键代码为:String starttime=request.getParameter(starttime);String endtime=request.getPa
42、rameter(endtime);String thing=request.getParameter(thing);String worker=request.getParameter(worker);String whouse=request.getParameter(whouse);String key=;if(!thing.equals(0)key+=String.format( Thing_ID=%s and,thing);if(!worker.equals(0)key+=String.format( Worker_ID=%s and,worker);if(!whouse.equals
43、(0)key+=String.format( WareHouse_ID=%s and,whouse);if(starttime.length()0&endtime.length()0)key+=String.format( (intime between %s and %s) and,starttime,endtime);else if(starttime.length()0&endtime.length()=0)key+=String.format( datediff(day,%s,intime)0 and,starttime);else if(starttime.length()=0&endtime.length()0)key+=String.format( datediff(day,%s,intime)0)key=key.substring(0,key.length()-3);session.setAttribute(key,key);out.print(location.replace(./chu.jsp););6.5库存的查询及预警系统会根据仓库进行读取仓库信息,并且数量低于10个的以红字显示,关键代码为:编号物品名称物品单位生产厂商库存数量所在仓库$ s.thing.id /