超市进销存管理系统论文_第1页
超市进销存管理系统论文_第2页
超市进销存管理系统论文_第3页
超市进销存管理系统论文_第4页
超市进销存管理系统论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要III目录1绪论 11.1研究背景 11.2研究意义 11.3可行性研究 22开发软件(技术)简介 32.1Java语言简介 32.2J2SE技术介绍 32.3工厂模式介绍 32.4JDBC简介 32.5开发环境及环境配置 42.5.1系统环境及Java环境配置 42.5.2C/S简介 42.5.3MyEclipse简介 52.5.4数据库开发工具选择及配置 52.5.5对性能的一般规定 62.5.6其他专门要求 62.5.7对安全性的要求 62.5.8运行环境规定 63系统分析 83.1系统整体功能分析 83.2系统开发的特点 83.3系统需求分析 94数据库设计 114.1数据库的引入 114.2数据库概念设计E-R图 124.2.1实体与属性及实体之间的联系 124.2.2数据库的部分E-R图 124.3数据库的逻辑设计 134.4数据库的完整性和安全性 154.4.1数据库的完整性 154.4.2数据库的安全性 165详细设计 175.1设计思想 175.2设计语言 185.3数据库的连接 195.4系统设计 215.4.1销售管理功能模块 225.4.2采购管理功能模块 245.4.3仓库盘点功能模块 265.4.4利润分析功能模块 285.4.5登陆模块 285.4.6员工管理功能模块 315.4.7辅助模块 316总结 32综上所述,此系统能够完成预定功能,具有一定的安全性和健壮性,符合预期目标。 32参考文献 33致谢 34绪论PAGE21绪论1.1研究背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。我国的超市在20世纪90年代初期形成,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着经济的快速发展,超市的经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地需要引入新的管理技术。超市形态具有种种优点,但在目前状况下,它仍存在零售业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。超市日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。超市进销存管理系统依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速对商品的进、销、存等状况和各种反馈信息进行分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。1.2研究意义随着超市商品的大量增加,其管理难度越来越大。在计算机技术飞速发展的今天,将计算机这一信息处理器应用到超市的日常管理已是势在必然。于是,超市进销存管理系统便应运而生。这也为超市管理带来前所未有的改变,同时为企业带来意想不到的经济效益和社会效益。这主要体现在以下几个方面:极大的提高了超市工作人员的工作效率,避免了以往入出存流程繁琐、杂乱和周期长等弊端。超市进销存管理实现了操作自动化和信息电子化,全面提高了超市的管理水平。基于超市进销存管理的全面自动化,可以大大减少入库管理、出库管理及库存管理中的漏洞,可以节约大量管理开支,增加企业的收入。1.3可行性研究管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是次要的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的事务都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。超市的管理基础工作和各项管理制度比较健全,执行严格,原始数据采集完整,保存良好。本系统开发仅需要计算机一台,系统本身对硬件和软件的要求都不高且系统兼容性很强,平台的移植性也很好。在外部条件上有同学的帮助,并且方便上网查找资料,同时还有老师的热心指导等,这也增加了我完成该系统的可能性。如今,各种进销存系统的开发已经相当成熟,出现了几大主流的开发语言和工具,都可以非常有效的支持开发这样一个系统。同时作为本系统,也有许多成功的进销存管理系统的经验可以借鉴,另外现在超市的经营者大多具备电脑基本操作知识,对于必要的专业操作经短期培训即可。所以从技术的角度来说,也是可行的。本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简洁明了,不需要对数据库进行深入的了解。综合以上方面的研究,无论是从经济上或者技术上还是操作上开发本系统都是可行的。开发软件(技术)简介PAGE10需求分析PAGE42开发软件(技术)简介2.1Java语言简介Java语言是美国Sun公司于1995年推出的一种简单的、面向对象的、分布式的、可解释的、键壮的、安全的、结构的、中立的、可移植的、性能很优异的多线程的、动态的语言。其前身为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术。经过Sun公司的工程师的不懈努力以及全世界无数的编程爱好者的使用,Java终于发展成为今天这样一个集桌面(J2SE)、网络(J2EE)、移动平台(J2ME)应用为一体的功能强大的编程语言。目前Java由于其平台无关及分布式特性,最重要的应用是在网络应用上。2.2J2SE技术介绍JavaSE是Java平台标准版的简称(JavaPlatform,StandardEdition)(alsoknownasJava2Platform),用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。JavaSE包括用于开发JavaWeb服务的类库,同时,JavaSE为JavaEE提供了基础。JavaSE(JavaPlatform,StandardEdition,Java标准版)就是基于JDK和JRE的。2.3工厂模式介绍Java工厂模式主要分为三类:简单工厂模式、工厂方法模式和抽象工厂模式。这三种模式逐步抽象,并且更具一般性。工厂模式有三个参与者:抽象产品(Product)、工厂(Creator)和具体产品(ConcreteProduct)。工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如Aa=newA(),工厂模式也是用来创建实例对象的,可能多做一些工作,但会给你的系统带来更大的可扩展性和尽量少的修改量,同时也减少了层之间的耦合性。2.4JDBC简介JDBC(JavaDatabaseConnectivity)提供连接各种关系数据库的统一接口,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。MIS管理员们都喜欢Java和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的更好方法。2.5开发环境及环境配置2.5.1系统环境及Java环境配置开发及测试的系统环境,我选择了MicrosoftWindowsXP。要开发C/S架构项目,首先必须要求有Java环境,我选择了jdk1.6.0_12。IDE工具则选择了Eclipse。各种软件和工具安装完成后,必须相应的配置WindowsXP的系统环境变量。2.5.2C/S简介C/S(Client/Server)即客户机/服务器,在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。这里客户和服务器都是指通信中所涉及的两个应用进程(软件)。使用计算机的人是计算机的“客户”(client),把运行服务器程序的机器称为server。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。C/S架构软件的优势与劣势如下:应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷轻。数据的存储管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用登陆后台数据库有一定的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限限制,编号不可以重复等必须有客户才能建立起来这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。2.5.3MyEclipse简介MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。2.5.4数据库开发工具选择及配置Oracle数据库系统最早于1979年推出。1984年完成OraclePC版。1997年发布Oracle8,1999年推出Oracle8i。2001年,Oracle公司在Oracle8i数据库的基础上推出了新一代基于Internet电子商务构架的网络数据库解决方案Oracle9i。Oracle9i中的“i”是什么意思呢?Oracle将自己置身于Internet计算模型,这里的i其实可以简单理解成支持Internet。Oracle9i数据库服务器在群集技术、高可用性、商业智能、安全性、系统管理等方面都实现了新的突破,成为较完整的Internet数据库之一。Oracle9i应用服务器是OracleInternet平台的一个重要组成部分,它同数据库服务器和开发工具套件结合在一起,为创建、提交和管理Internet应用提供了所需要的一切。Oracle9i开发工具套件紧密地同数据库服务器和应用服务器集成为一体,提供了一套完整的集成开发工具,使开发人员能够轻易、快速地创建Internet应用程序。主要包含三大类的软件:数据库服务器、应用服务器和开发工具套件。数据库服务器(Oracle9i)包括企业版、标准版本和个人版本。企业版主要用于构建安全的、可靠的、大容量的互联网应用和数据仓库,面向企业级的应用;标准版本提供了能够通过Web浏览器进行管理的高性能数据服务,面向部门级应用;个人版是Oracle9i全功能的单用户版本,面向开发技术人员。Oracle9i应用服务器包括企业版和标准版。企业版主要用于构建互联网应用,可以用无线功能的组件进行功能扩充,面向企业应用;标准版,建立面向部门级的Web应用。开发工具套件主要包括一些开发的辅助工具。比如:JDeveloper、ReportDeveloper和Sql*Plus等工具。2.5.5对性能的一般规定硬件服务器:硬件要求有一台可以满足日常工作的PC。2.5.6其他专门要求超市进销存管理系统对数据库操作不是很频繁,可以使用SQLServer2005、MYSQL、Oracle10g等做数据库服务器均可以满足用户的访问操作需求。2.5.7对安全性的要求在配置服务器时会保障软、硬服务器的的相对安全性。超市进销存管理系统的使用者分为两种权限的级别(管理员和普通用户),在登陆系统时要验证用户的权限,根据不同的权限所能执行的操作是不同的,这样保证了后台数据的安全性。2.5.8运行环境规定设备及分布处理器和内存:CPUP4以上/512M内存以上硬盘:80G硬盘以上支撑软件操作系统版本:Windows2000/WindowsXP/Windows2k/WindowsNT/Linux/Unix数据库管理系统:服务器使用Oracle10g/SQLServer2005/SQLServer2008/MySql系统分析3系统分析在系统的开发前,首先要进行相应的系统分析,从中获得解决方案。本章就是先对系统的整体需求进行分析,然后在此基础上来划分系统的组成模块,完成系统的整体架构的设计。3.1系统整体功能分析本系统根据其具体功能,设计其功能模块如图3-1所示。登陆界面登陆界面主界面商品浏览售出销售管理采购管理仓库管理员工管理利润分析管理销售查询采购记录查询种类厂商管理盘点信息查询查看仓库盘点查看分析记录商品分析员工显示修改员工添加图3-1系统功能模块图整个前台模块是本系统最重要的模块,它提供了超市管理平台的日常管理操作,可以满足普通用户和管理员对商品库存信息查询等的需求,而删除、修改信息则只有管理员权限操作,普通用户也不能进行用户管理操作。3.2系统开发的特点本系统开发的目标是一个界面清晰、易理解、易使用的,能够满足用户对超市的日常管理工作。在以往系统开发经验的基础上,结合其他进销存管理系统的特点,对本系统应具有的功能特点总结如下:管理员可以对商品进行增删查改和对数据进行更新。具有很强的兼容性,可以在任何操作系统的电脑上使用。采用最新的编程技术,利用Java编程,使系统框架更完整,更容易更新。3.3系统需求分析需求分析是对系统将要实现的功能的大致描述,能够把设计系统的基本思路都列出来,它在系统开发中起着重要的作用。下面分别介绍。销售管理功能模块此功能模块的主要功能是对商品销售信息进行管理。管理员可以借此更快的了解和掌握商品的销售信息。库存管理功能模块此功能模块可以帮助管理员进行商品库存的查看。管理员可以根据商品信息显示的颜色轻易的判断商品库存情况。管理员还可以通过输入商品的编号进行有目的的查看商品库存信息。员工管理功能模块此功能模块主要是对可以使用此系统的用户进行管理,不同类别的用户权限不同。管理员可以查看、修改和删除具体某个员工的详细信息,而普通用户不可以进行此功能操作。商品进货管理功能模块此功能模块作用是:管理员可以进行商品进货信息进行查看、修改和删除,还可以对新增加的商品进行入库操作。商品管理功能模块此功能模块是对商品信息进行管理的,管理员可以通过输入商品编号或商品名称进行查询商品信息,还可以通过选择商品类别进行商品信息的查询,另外还可以对商品信息进行增加、删除和修改操作。报表导出功能模块此功能模块是方便超市管理人员对超市营业情况进行数据分析,可以把商品信息表、进货信息表和销售信息表进行导出,在Excel表格中更利于分析数据。登陆功能模块用户使用本系统要进行身份验证,验证成功后方可进入,系统登陆模块图如图3-2所示。登录界面登录界面用户密码是否正确是否进入主界面取消登录开始结束图3-2管理员后台系统登陆流程图数据库设计PAGE33概要设计PAGE84数据库设计4.1数据库的引入数据库技术从60年代中期至今只有不到40年的历史,但其发展速度之快是其它技术所不及的。它已由第一代的层次型、网状型数据库,第二代的关系型数据库发展到今天以面向对象为主要模型的数据库,即第三代数据库。数据库技术和网络通信技术、面向对象编程技术、并行计算机技术、人工智能技术相互融合、相互渗透,促进了数据库技术的广泛应用。数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段,使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强。数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。一个真正的、完整的系统是离不开数据库的,因为少量的数据,如角色类型等完全可以存储在文本文件中,但实际应用中,需要保存的数据远不止这一点点,而且这些数据之间往往还有关联,利用数据库来管理这些数据,可以很方便的查询和更新。可以说一个优秀的系统是离不开一个设计最优的数据库的。我们现在可以使用的数据库有很多种,如:Fox数据库(.dbf)、Access数据库(.mdb)、DB2、Informix、Oracle和SQLServer等等,在本次设计中,选择了Oracle10g作为后台数据库工具,因为它功能远比Access强大,又比SQLServer2005、DB2数据库占资源少,并提供了许多标准的关系数据库管理功能的支持。4.2数据库概念设计E-R图4.2.1实体与属性及实体之间的联系E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。模型中的实体相当于实体集、一个表,而不是单个实体或表中的一行。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。属性是实体的性质。用椭圆框表示,与实体之间用一条线相连表的主码是关键属性。不同的实体集通过外键建立它们之间的联系。4.2.2数据库的部分E-R图商品的实体图如下图4-1所示。商品编号商品编号商品名称商品数量商品单价商品类别进货日期商品建议零售价商品规格计量单位图4-1商品实体图用户的实体图如下图4-2所示。用户编号用户编号用户名称用户密码角色编号用户QQ用户业绩备注用户图4-2用户实体图销售单与用户之间的E-R图如下图4-3所示。销售单编号销售单编号商品名称商品数量商品编号商品类别商品单位销售日期销售单管理用户密码用户名称用户编号角色编号用户用户QQ用户业绩备注图4-3销售单与用户E-R图进货单的实体图如下图4-4所示进货单进货单进货单编号商品名称商品编号商品数量进货日期商品单价进货人图4-4进货单实体图4.3数据库的逻辑设计根据上面的数据库概念设计,把相应的E-R图转化成与数据模型相符合的逻辑结构。本系统是以Oracl10g为后台数据库,在Oracl10g上建立名为SuperMarket的数据库。其中包括以下表:T_CHECK,T_FIRM,T_FIRMGOODS,T_GOODS,T_KIND,T_MONEY,T_PURCHASE,T_RESERVE,T_SELL,T_USER。下面将具体介绍数据库中各个表的结构。用户表如表4-1所示。表4-1用户表(t_Users)字段名称英文名字数据类型字段长度是否为空备注用户编号usersNoVarchar20否主键用户名称usersNameVarchar50否用户密码usersPwdchar否角色编号rolesNoint4否用户业绩usersGrademoney否用户QQusersQQvarchar50是备注remarkVarchar100是进货表如表4-2所示。表4-2进货表(t_GoodsIn)字段名称英文名字数据类型字段长度是否为空备注进货单编号goodsInNoVarchar20否主键商品编号goodsNoVarchar20否商品名称goodNamevarchar50否商品数量goodsCountInt否商品单价goodPriceMoney否进货日期goodsInDateDatetime否进货人名称stockUserNamevarchar20否销售表如表4-3所示。表4-3销售表(t_Sale)字段名称英文名字数据类型字段长度是否为空备注销售单编号salesNoVarchar20否主键商品编号goodsNoVarchar20否商品名称goodsNameVarchar50否商品类别goodsSortVarchar30否商品数量goodsCountInt否商品单价goodPriceMoney否用户编号usersNovarchar20否外键销售日期saleDateDatetime否类别表如表4-4所示。表4-3类别表(t_Sort)字段名称英文名字数据类型字段长度是否为空备注类别编号sortNoVarchar20否主键类别名称sortNameVarchar50否角色表如表4-5所示。表4-5角色表(t_Roles)字段名称英文名字数据类型字段长度是否为空备注角色编号rolesNoint4否主键角色名称rolesNameVarchar50否角色描述rolesDescribeVarchar50是商品信息表如表4-6所示。表4-6商品表(t_Goods)字段名称英文名字数据类型字段长度是否为空备注商品编号goodsNoVarchar10否主键商品类别goodsSortVarchar20否商品名称goodsNameVarchar50否建议零售价retailPricemoney否计量单位unitchar否商品规格goodsStandardVarchar50是商品单价goodPriceMoney否商品数量goodsCountInt否进货日期goodsInDateDatetime否4.4数据库的完整性和安全性4.4.1数据库的完整性数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。本系统中通过定义表与表之间的外键联系有助于实现完整性规则,另外通过主键约束也实现了其完整性规则。4.4.2数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。本系统采用鉴定用户的方法实现数据库的安全,在登录数据库时,系统让用户表示自己的身份,通过输入用户名和密码,系统进行核实,鉴别此用户员是否为合法用户,若是,系统进一步核实用户身份,通常要求用户选择角色,系统通过角色来鉴别用户身份,并且要选择正确的角色才允许用户登陆。参考文献参考文献PAGE355详细设计5.1设计思想常见的设计思想有两种:结构化和面向对象化,本系统采用的是面向对象的设计思想,下面简单介绍一下两者的不同以及面向对象程序设计的优点。传统的结构化开发过程包括软件目标的功能分解,以及使用正确的参数和返回值来创建函数。首先分析需求,确定功能,然后以函数的形式进行建模。在一个Java应用系统中很可能有上千个函数,这些函数能够不受限制的互相调用,因此在访问某个变量时,很难保证它不是正在被其他的函数访问或者修改。。只使用Java代码而不使用任何Bean或自定义标记,在系统应用的规模比较小时还不会出现太多的问题,但是在应用的规模增大时就肯定会出现问题。这些代码也许能够满足功能上的需要,却不能达到非功能性的要求。在结构化开发方法面临问题的时候,使用面向对象的方法进行分析、设计和开发就可以解决一部分问题。面向对象的分析和设计方法源于现实生活中的模块化的思想。对象是提供一组相关功能的实体,对象之间互相作用从而完成一定的任务。开发方法包括对目标的模块化,以及用类的形式对数据和函数进行封装。面向对象方法主要有以下四个特征:抽象性抽象是对象建模参数的选择,这是进行分析后得到的结果。这意味着是由分析人员来选择一定的参数,以表示对象,这是对象模型化的第一步。封装性由于某些原因,类中的数据和方法不需要对其他的对象公开,我们可以将其隐藏在类的内部,这是对象模块化过程中很重要的一步。这个步骤将确保对象的行为以简单的接口出现,而复杂的执行过程都被隐藏了。比如,JavaBean就可以为Java开发人员提供一个简单的接口。继承性在一个现存对象的基础上创建一个新的对象,这个过程称为继承。这样我们可以不必重写所有的代码,只需在新对象中编写需要更新的代码就可以了。例如:IDAO里写的是接口,在DAO里要把IDAO里的方法全部重写,如果需要新的方法还可以增加。模块化为了减少独立工作小组之间的依赖性,软件系统中必须使用模块。比如,我们可以定义一个DAOFactory来处理应用程序的状态,这样做的优点是可以独立地对模块进行维护,这样就减少了代码之间的依赖性。5.2设计语言针对超市超市进销存管理系统这个项目,在综合考虑了此项目的总体特点并对当前流行软件的实用性进行比较之后,我主要采用Java作为程序设计的开发语言。使用Java作为开发语言的主要原因在于利用Java技术可以建立健壮的、高性能的、安全的、跨平台的先进软件系统。Java技术在程序开发时的突出特点有以下几个:Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。基于这些优点,从实际考虑,决定用Java作为开发语言来开发整个系统。5.3数据库的连接在做数据库连接时,我使用的数据库是Oracle10g,数据库连接使用的是JDBC驱动,其中数据库名为:superMarket,用户名:changbao,密码为:changbao,端口为:1521,通过使用外部属性文件context.xml存储数据库连接需要的参数,这样方便以后对数据库的更换操作。代码实现如下:name="jdbc/oracle"auth="Container"type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:orcl"username="scott"password="orcl"maxIdle="5"maxWait="5000"maxActive="10"与数据库连接的部分代码如下:packagecom.supermarket.util;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjava.util.Properties;publicclassDBHelper{ privatestaticStringdriverName=null; privatestaticStringdriverUrl=null; privatestaticStringdriverUser=null; privatestaticStringdriverPswd=null; privatestaticConnectioncon=null; static{ Propertiesp=newProperties(); try{ p.load(newFileReader("DB.properties")); driverName=p.getProperty("driverName"); driverUrl=p.getProperty("driverUrl"); driverUser=p.getProperty("driverUser"); driverPswd=p.getProperty("driverPswd"); Class.forName(driverName); con=DriverManager.getConnection(driverUrl,driverUser,driverPswd); }catch(FileNotFoundExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }catch(ClassNotFoundExceptione){ e.printStackTrace(); }catch(SQLExceptione){ e.printStackTrace(); } } //获得数据库连接 publicstaticConnectiongetConnection(){ if(con!=null) returncon; returnnull; } //获得创建语句对象 publicstaticPreparedStatementgetPs(Connectioncon,Stringsql){ PreparedStatementps=null; try{ ps=con.prepareStatement(sql); }catch(SQLExceptione){ e.printStackTrace(); } returnps; } //关闭连接,释放资源 publicvoidclose(){ try{ con.close(); }catch(SQLExceptione){ e.printStackTrace(); } }}5.4系统设计前台客户使用的主页面一共由五个子页面构成:商品管理(GoodsUi)、进货管理(GoodsInMainFrame)、销售管理(SaleUi)、库存管理(StockUi)、员工管理(UsersUi),另外还有四个辅助功能模块,分别是:返回主页面、报表导出、用户切换和帮助。前台主页面如图5-1所示。图5-1主界面图5.4.1销售管理功能模块销售管理功能模块的作用是对新进的商品浏览|售出|退货、销售查询、商品的标价。其运行界面如图5-2所示图5-2商品管理主界面图点击“添加商品信息”按钮即可弹出界面如图5-3所示。图5-3添加商品信息界面图更改商品信息界面如图5-4所示。图5-4更改商品信息界面图实现商品管理功能的Java部分代码如下所示:privateJButtongetJButton_add(){ if(jButton_add==null){ jButton_add=newJButton(); jButton_add.setBounds(newRectangle(157,542,112,29)); jButton_add.setText("添加商品信息"); jButton_add.addActionListener(newjava.awt.event.ActionListener(){ publicvoidactionPerformed(java.awt.event.ActionEvente){ newAddGoods(null,true).setVisible(true); } }); } returnjButton_add; }privateJButtongetJButton_update(){ if(jButton_update==null){ jButton_update=newJButton(); jButton_update.setBounds(newRectangle(460,542,112,29)); jButton_update.setText("更改商品信息"); jButton_update.addActionListener(newjava.awt.event.ActionListener(){ publicvoidactionPerformed(java.awt.event.ActionEvente){ rowNum=jTable.getSelectedRow(); if(rowNum==-1){ JOptionPane.showMessageDialog(null,"请选择一行!"); return; }else{ UpdateGoodsug=newUpdateGoods(); ug.setVisible(true); ug.jTextField_goodsNo.setText(jTable.getValueAt(rowNum,0).toString());ug.jComboBox_goodsSort.setSelectedItem(jTable.getValueAt(rowNum,1));ug.jTextField_goodsName.setText(jTable.getValueAt(rowNum,2).toString());ug.jTextField_retailPrice.setText(jTable.getValueAt(rowNum,3).toString());ug.jTextField_unit.setText((String)jTable.getValueAt(rowNum,4));ug.jTextField_goodsStandard.setText((String)jTable.getValueAt(rowNum,5));ug.jTextField_goodPrice.setText((String)jTable.getValueAt(rowNum,6));ug.jTextField_goodsCount.setText((String)jTable.getValueAt(rowNum,7));ug.jTextField_InDate.setText((String)jTable.getValueAt(rowNum,8));ug.jTextField_shelfLife.setText((String)jTable.getValueAt(rowNum,9));ug.jTextArea_remark.setText((String)jTable.getValueAt(rowNum,10)); } } }); } returnjButton_update; }5.4.2采购管理功能模块采购管理功能模块的作用是管理员可以对商品浏览|采购、采购记录查询、添加新产品、种类管理、厂商管理。其运行界面如图5-6所示。图5-6采购管理商品浏览|采购图图5-7采购管理采购记录查询图图5-8采购管理添加新产品图图5-9采购管理种类管理图图5-10采购管理厂商管理图实现其功能的Java部分代码见附录A。5.4.3仓库盘点功能模块库存管理主要是对查看仓库|盘点、盘点信息查询。其主界面如图5-7所示。图5-11库存管理仓库|盘点图图5-12库存管理盘点信息图实现其功能的Java部分代码如下所示:staticJTablegetJTable()throwsException{ if(jTable==null){ model=MyTable.getTable(sql); jTable=newJTable(model); jTable.setDefaultRenderer(Object.class,newDefaultTableCellRenderer(){ publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){ Colorcolor=null; Strings=table.getValueAt(row,7).toString(); inti=Integer.parseInt(s); if(i<=20){ color=Color.pink; }elseif(i>=100){ color=Color.yellow; } Componentcomp=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column); comp.setBackground(color); returncomp; } }); } returnjTable; }5.4.4利润分析功能模块利润分析管理模块主要是查看分析的记录、分析产品其运行界面如图5-8所示。图5-13利润分析分图图5-14分析产品图5.4.5登陆模块后台管理员登陆管理系统需要进行身份验证。具体流程图如图5-9所示。开始开始进入登陆界面填写身份验证信息结束进入主界面图5-9用户身份验证程序流程图登陆界面如图5-15所示。图5-15登陆界面图部分登陆实现代码如下:publicbooleancheckUser(Useruu){ if("".equals(uu.getUsersName())||uu==null){ JOptionPane.showMessageDialog(null,"请输入用户名!"); returnfalse; } if("".equals(uu.getUsersPwd())||uu==null){ JOptionPane.showMessageDialog(null,"请输入密码!"); returnfalse; } try{ Useruser=IDaoFactory.getUserIDao().queryByname(uu.getUsersName()); if(user!=null){ if(Login.u.getRolesNo()==user.getRolesNo()){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论