基于swing的私有企业进销存管理系统.docx
- 文档编号:8869223
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:72
- 大小:4.98MB
基于swing的私有企业进销存管理系统.docx
《基于swing的私有企业进销存管理系统.docx》由会员分享,可在线阅读,更多相关《基于swing的私有企业进销存管理系统.docx(72页珍藏版)》请在冰豆网上搜索。
基于swing的私有企业进销存管理系统
摘要
本文论述了私有企业进销存管理系统的开发背景、意义和目前的发展现状,介绍了一个大型企业进销存管理系统的分析、设计、实现过程。
本系统通过对供应商、客户、商品、进货、销售、退货等信息的管理,从而达到进货、销售、库存的全面信息管理。
文中详细论述了如何开发面向网络化、标准化、数字化的私有企业进销存管理系统,以及应用Swing组件、PowerDesigner建模工具和SQLServer2000数据库的技术。
本系统采用PowerDesigner建模并逆向生成数据库的E-R图,用Swing类库创建界面并生成相应的java代码,操作界面简洁大方,使用方便。
本系统共分为基础信息、进货管理、销售管理、库存管理、查询统计、系统管理等模块,主要包括客户、商品、供应商和操作员的增加、修改与删除,进货、销售商品的入库、销售、退货,以及库存的盘点和价格的调整等。
实现了企业进销存管理系统的智能化、自动化、高效化管理。
关键词:
进销存;Swing;私有企业;管理系统
Abstract
Thisarticlediscussesthedevelopmentbackground,significanceandcurrentdevelopmentstatusofprivateenterpriseinventorymanagementsystem,andintroducesanalysis,design,implementationprocessoflarge-scaleenterpriseinventorymanagementsystem.Thesystemachievesthepurchase,sales,inventory,comprehensiveinformationmanagementthroughsuppliers,customers,products,purchase,sales,returnsandotherinformationmanagement. Itdiscussesindetailhowtodevelopforthenetwork,standardization,digitalinventorymanagementsystemofprivateenterprise,andtheapplicationofSwingcomponents,PowerDesignermodelingtoolandSQLServer2000databasetechnology. ThesystemusesPowerDesignermodelinganddatabasereversegenerateERdiagram,createdwiththeSwingclasslibraryinterfaceandgeneratethecorrespondingjavacode,userinterfacesimpleandelegant,easytouse. Thesystemconsistsofbasicinformation,stockmanagement,salesmanagement,inventorymanagement,querystatistics,systemmanagementmodule,includingcustomers,products,suppliersandoperatorstoadd,modifyanddelete,purchase,saleofgoodsstorage ,sales,returns,andstockinventoryandpriceadjustment. Itachievesintelligentautomation,andefficientmanagementoftheenterpriseinventorymanagementsystem.
Keywords:
Invoicing;Swing;Privateenterprise;Managementsystem
目录
摘要I
AbstractII
第1章概述1
1.1课题来源1
1.2课题背景1
1.3国内外动态1
1.4目的及意义2
1.5项目开发的思想2
第2章方案论证4
2.1技术可行性4
2.2经济可行性4
2.3操作可行性5
2.4法律可行性5
2.5相关技术简介5
2.5.1Swing程序的MVC模式的使用5
2.5.2MircrosoftSQLServer数据库7
第3章需求分析9
3.1功能需求9
3.2系统数据流图9
3.3数据字典14
第4章过程论述16
4.1概要设计16
4.1.1设计原则16
4.1.2系统模块设计16
4.2系统流程图19
4.3数据库设计19
4.3.1数据库概念结构设计19
4.3.2进销存管理系统的E-R图19
4.3.3使用PowerDesigner建模21
4.3.4创建数据库25
4.3.5数据库逻辑结构设计26
4.4系统实现28
第5章软件测试与结果分析40
5.1单元测试40
5.1.1白盒测试40
5.1.2黑盒测试41
5.2集成测试与系统测试42
5.3功能测试43
5.3.1基础信息模块的测试43
5.3.2库存管理模块的测试45
5.4调试46
结论48
致谢49
参考文献50
附录51
第1章概述
1.1课题来源
随着国内经济的高速发展,中小型的商品流通企业越来越多,其所经营的商品种类繁多,难以管理,而进销存管理系统逐渐成为企业经营和管理中的核心环节,也是企业取得效益的关键。
为了增加单位效益,不少企业建立了分公司和代理制,通过分公司或代理把产品推向最终用户。
这些分公司或代理商大都分布在不同的地理位置,跨时空,跨时间的频繁业务信息交流是这些企业业务的活动的主要特点。
可以想象,传统的依靠管理人员人工传递信息和数据的管理方式就无法满足企业日益增长的业务需求了。
为了完善管理制度,增强企业的竞争力,及时分析和掌握商品的销售、进货及库存情况,以实现商品管理的信息化。
根据企业进销存过程中的工作特点,我开发了这个基于Swing框架的私有企业进销存管理系统。
1.2课题背景
有效的企业进销存管理系统,可以降低运营成本,进而提高商品的周转率,这样才能减少因风险造成的损失,从而使利润达到最高点。
一个企业的进货和库存管理,代表了这个企业的大部分资产总额。
如何将这些静态的资产以合理的方式销售,就是企业销售管理系统的目的。
一个能够持续发展的企业,并不是只要有高利润的商品就行了,有些商品可能进货后就无人问津,那么这些商品不仅占用了大量的资源,而且也积压了大量的资金。
要改善商品销售状况,就必须全面地了市场,而所需了解的市场信息可以通过销售管理信息系统的查询统计功能加以分析得到。
通过大量数据的统计和分析,可以为企业领导层做出相关的决策提供了正确的依据。
在企业进销存管理系统中,管理的主要内容就是基础信息管理、进货管理、销售管理、库存管理和系统管理,然后辅以查询统计功能。
完全用数据来描叙商品的入库、出库和储存状态,实时反映了商品在企业与客户之间流动的全过程。
可以想象,如果所有的工作都要通过人工管理来实现的话是非常繁琐而容易出错的,也不方便分析比较。
在这个竞争激烈的社会中,失去高效率就意味着难以生存。
本系统主要考虑了最为普遍的企业进销存管理需求,适用于大多数中、小型企业的企业进销存管理。
1.3国内外动态
企业进销存管理系统是企业管理信息系统中涉及数据存储量最大、数据处理次数最多和对数据准确性要求最高的系统,其数据文件或数据库结构的设计直接影响系统的处理效率和响应速度。
当前代表国内外进销存管理的最新趋势是以数据结构规范化理论为基础的企业管理信息系统设计模式。
当今在研究和开发企业管理信息系统时,大都把进销存管理信息系统作为突破口。
由于计算机硬件系统价格大幅度下降,以微型计算机为硬件基础的进销存管理信息系统日趋增多。
在开发进销存管理信息系统应用软件时,首先遇到的就是数据文件或数据库结构的设计问题,如果设计不当,就会直接影响系统的处理效率和响应速度,并给用户使用和维护带来不便。
进销存管理信息系统中涉及的数据存储和数据处理量很大,系统的运行效率与数据文件或数据库结构有直接联系。
尽管随着计算机内外存储能力的增加,节省空间已不是重要问题。
但数据文件或数据库结构的合理设计,对提高系统的响应速度非常重要。
1.4目的及意义
在市场经济中,进销存是企业运行的重要环节,针对私有企业进销存管理中存在的一系列问题,开发基于Swing框架的私有企业进销存管理系统,将会使得企业进销存管理的工作效率得到大幅度提升,工作也更加合理规范。
利用企业进销存管理系统,实现商品管理的信息化、网络化,可以说工作模式又发生了一次质变。
通过本次的设计是对大学所学知识的一次综合性运用,大学四年学过很多的专业知识,但是只有理论联系实际,才能对所学知识有更新的认识和体会。
也是对所学知识的一次深层次的总结。
培养自己的设计能力,增强自己的动手能力,关键的还是培养自己处理实际问题的能力。
通过实践完成本次项目,使自己的综合素质得到提高,从而使自己能够和社会顺利接轨。
1.5项目开发的思想
本系统是用JavaSwing框架来实现的企业进销存管理,首先介绍一下Swing技术。
Swing是一个设计优秀的Java包,Swing的设计是MVC的典范,Swing中事件监听、Model-View分离、Renderer/Editor机制、可插拔的LookAndFeel等机制,是一门很好的界面开发技术。
本人除了对Swing技术深入的了解之外,还对Photoshop、Dreamweaver、SERVLET技术的学习,对JDBC数据库访问技术、SQL语言原理、java语言核心技术掌握,进行了较深入的学习和应用,完成对基于Swing组件的企业进销存管理系统的需求分析、数据库模式分析、功能模块划分,由此设计了数据库结构和应用程序。
由本程序系统的运行使用中可以证明,本系统可实现减轻了管理人员的工作量,使得进销存都能在网上实时完成,缩短了工作人员的工作时间。
企业进销存管理系统更加科学化、规范化,充分提高了工作的质量与效率,同时也使系统管理变得简单与规范,为提高企业的售后管理质量打下了基础。
根据需求分析可知,本系统属于一个小型项目,所实现的功能相对来说比较简单,主要是对企业进销存管理基本操作。
因此,这里使用Swing+PowerDesigner+JDBC的开发模式进行开发,其中JDBC用于连接数据库并对数据库进行存储,Swing用于系统交互式用户界面的设计,PowerDesigner工具用于数据库的建模和逆向生成数据库E-R图。
Java有个多个图形用户界面的类库,Swing是其中之一。
它作为Java的类库,有跨平台的特性,由于它是基于MVC模式的,因为如果使用Swing来创建基本的java图形界面时,你不会注意到可视组件和它们的模型分离,Swing组件能够自动产生各种事件来响应用户行为,通过复写监听事件方法,我们可以监听事件源产生的事件,从而在程序中处理我们所需要的用户行为,并且编译后,界面非常美观,迎合了用户的视觉要求。
通过Swing类的事件机制和可插入感官特性,并且通过使用自定义模型,可以达到高适应性和满足用户的功能,同时避免了不必要的数据请求。
第2章方案论证
方案论证在软件开发过程中是至关重要的一个环节,它将直接决定软件开发的成败问题。
因此在软件开发之前一定要进行方案论证这一步,从多个可供选择的方案中选择出确实可行的最佳方案。
2.1技术可行性
企业进销存管理系统必须提供商品信息、供应商信息和客户信息的基础设置;提供强大的多条件搜索功能和商品的进货、销售和库存管理功能;可以分不同权限、不同用户对该系统进行操作。
另外,该系统还必须保证数据的安全性、完整性和准确性。
目前Internet应用已较为普遍,技术趋于成熟。
根据需求可以将系统设计为有后台数据库支持的、具有交互功能的管理系统。
本程序采用的是JavaSwing技术实现。
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言[1]。
而Swing是一个的轻量级的J2EE框架[2],它覆盖了从后台数据库的JDBC封装到前台Web框架的几乎所有方面[3]。
并且,Swing的各个模块耦合非比寻常松散,咱们既没成绩用它作为整个实际运用程序的框架,也没成绩仅仅应用它的某一个的模块。
Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
本系统采用了SQLServer2000做后台数据库开发[4],因为它有一套独立的安全策略,保证了数据的安全性;提供定时、自动地将数据库中的信息作备份的机制,可以避免因特殊原因导致数据丢失的情况的发生。
由于个人的专业技能不是很高、实战经验少、知识面不宽和开发时间短等方面情况的分析,该程序完成在技术上确实有一定的难度,但在老师的帮助、上网查资料、到图书馆查阅等方式下,我基本上攻克了技术关。
所以在技术上讲有很好的可行性
2.2经济可行性
这个项目没有一般项目开发的基建投资,也没有工作地点的费用,常用设备是开发人员自带的不用支付。
不需要购买新的硬件,安装系统及软件的费用很低。
而本系统所使用的软件MyEclipse,SQLServer2000,PowerDesigner[6]全为免费软件,所以编辑本系统不会花费很多。
系统投入使用后能够有效地提高进销存管理工作效率,简化管理者与产品销售之间的信息沟通方式,减轻了相关人员的劳动难度,具有一定的经济效益。
所以就经济来说有很好的可行性。
2.3操作可行性
该系统在开发过程中,本着简单易用的原则,尽可能地使用可视化开发工具MyEclipse(尽量少使用手工编码),以便在后期的运行维护中,避免因开发人员的变动带来太大的影响。
因此,该系统要求后期维护人员具有较强的数据库专业知识,能熟练地运用开发工具,对使用者只要求有一般的计算机使用知识即可。
2.4法律可行性
法律上,没有合同责任。
如果不投入市场根本不会有侵犯专利权、侵犯版权等问题。
不产生大的利益纠纷。
法律上可行。
市场上虽然有很多的软件,但是此次开发的软件有其独到之处,自身有很强的优势,有一定的市场需求。
从整体上看,此项目的开发具有可行性。
2.5相关技术简介
2.5.1Swing程序的MVC模式的使用
1.MVC设计模式
MVC(Model-View-Controller,模型-视图-控制器)模式是XeroxPARC在20世纪80年代为编程语言Smalltalk-80所设计的一种软件设计模式,至今已被广泛使用,并被推荐为Sun公司J2EE平台的设计模式,其为开发交互式应用系统提供了一个优秀的设计模式,受到越来越多开发者的欢迎。
MVC模式主要由3个部分组成:
模型、视图和控制器,其结构如图2-1所示:
模型表示业务逻辑和业务规则等,在MVC的三个部件中拥有最多的处理任务。
Swing的GUI类,监听Model对象数据改变,即时进行重绘界面的工作,能为多个视图提供数据。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
一个Swing应用程序的GUI由很多个Swing组件组成。
各个Swing组件本身是由MVC模式设计的,而我们的整个Swing应用程序的表现层也应该由MVC模式设计。
控制器能从视图中取值,然后将相应的值传给模型进行处理。
控制器接受用户的输入并调用模型和视图去完成用户的需求[7]。
整个Swing程序应该这样使用MVC模式:
JFrame或者其他顶层容器中,由各个Swing组件构成了View视图层。
用来展现数据,提供用户操作的图形界面。
一个或者一组业务对象是Model。
它们存放了Swing组件要显示的数据,它们是业务对象,因此,可以直接在业务层代码中使用,执行复杂的业务计算,它们不能直接在Swing组件中显示,而是需要根据业务对象,构造Form对象,也就是Swing组件的Model来展示数据。
为了让业务对象能够得到用户最新输入的数据,我们还需要将业务对象注册到Swing组件上。
一旦Swing组件的数据发生了改变,就通知业务对象。
业务对象根据Swing组件的Model,也就是Form对象的数据,修改业务对象的值。
业务对象和Swing组件之间,通过双向的事件监听机制,实现了双向的引用!
在Swing各个组件上注册响应事件的监听器(控制器),以响应用户的操作。
这些控制器,使用匿名内部类实现。
每一个Swing组件上的控制器,都不仅仅是该Swing组件的控制器,而是整个Swing程序的控制器。
因为,内部类可以操纵整个Swing程序的所有资源,因此,我们可以在控制器中,使用所有Swing组件的form,也可以使用所有业务对象,调用所有业务方法,实现任何需要的功能!
控制器,是业务功能的入口点,它连接了Swing程序的表现层和业务层,连接了Swing的Form(Swing组件的Model)和业务对象。
现在,我们的Swing程序结构清晰,功能区分合理,低耦合、高内聚,堪称是MVC模式的典范!
2.Swing类架构
Swing是一个用于开发Java应用程序用户界面的开发工具包[8]。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing和awt的区别如下:
第一,awt依赖对等架构,它用Java代码包装本地窗口部件,而Swing却根本不使用本地代码和本地窗口部件。
第二,awt把绘制屏幕交给本地窗口部件,而Swing自己的组件自己绘制自己。
第三,因为Swing不依赖本地窗口部件,它可以抛弃awt的最小公分母的方法并在每个平台下实现每个窗口部件,从而创建一个比awt更强大的开发工具包。
Swing在缺省情况下采用本地平台的显示外观,然而,它不仅仅限于此,而是还可以采用插件式的显示外观[12],因此Swing应用程序可以看起来像Windows应用程序的显示外观。
Swing组件超越了简单的窗口部件,它体现了正不断出现的设计模式以及一些最佳实践。
利用Swing,你不仅仅得到GUI窗口部件的句柄和它所包含的数据,而是定义了一个模型区保存数据,定义一个视图去显示数据,以及定义一个控制器去响应用户输入。
前面已经提及到,Swing组件的构建基本上是基于MVC模式的。
Swing的结构分成三类:
1.存储组件内部将被用来操作的数据。
如tableModel等等;2.存储控制组件操作模式的数据。
如JList等;3.存储组件本身性质的数据模式。
如JSlider等。
Swing类库中常用的package和组件有:
Javax.swing最常用的package,里面包含和各种Swing组件的类
Javax.swing.border包含于Swing组件外框有关的类
Javax.swing.colorchoser针对于Swing组件外框有关类
Javax.swing.event处理由Swing组件产生的事件,有别于AWT事件
Javax.swing.filechooser包含针对于Swing文件选择对话框JFileChooser所设计的类
Javax.swing.plaf,Javax.swing.plaf.basic,Javax.swing.plaf.metal,
Javax.swing.plaf.multi处理Swingx组件外观的相关类
Javax.swing.table针对Swing表格组件JTable所设计的类
Javax.swing.text,Javax.swing.text.html,Javax.swing.text.html.parser,
Javax.swing.text.rtf包含与Swing文字框有关的类
Javax.swing.tree包含与Swing树状无件JTree所设计的类
Javax.swing.undo包含与Swing文字组件Redo或Undo的功能
3.Swing的GUI模型
Swing的模型分为两种:
GUI状态模型和应用数据模型。
GUI状态模型是定义一个GUI控制器的可视状态的接口,比如button的按下或松开,list里面的items是否被选上。
GUI状态模型常常是与图形用户接口(GUI)的上下文有联系的。
通过组件的最顶层的方法可以操纵GUI控制器的状态,完全不需要直接与模型进行交互。
Swing的GUI状态模型用绿色高亮表示。
Swing中的事件MouseEvent、KeyEvent等处理计算机输入输出设备产生的中断事件,如鼠标和键盘同GUI系统的交互操作。
Swing中通过postEvent、repaint及invokeLater等方法,向系统事件队列添加事件来实现程序事件的触发。
2.5.2MircrosoftSQLServer数据库
MircrosoftSQLServer2000是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构,采用了一种称为Transact-SQL的SQL语言在客户机和服务器之间传递客户机的请求和服务器的处理结果。
MircrosoftSQLServer2000是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。
在MircrosoftSQLServer2000系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。
另外,用户数据都是非常重要的和保密的,这些数据存储在MircrosoftSQLServer2000系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。
XX的用户既不能执行相应的操作,也不能访问数据库中的相应数据。
MircrosoftSQLServer2000系统具有强大的网上功能,可以在Internet上发布数据库中的数据。
在MircrosoftSQLServer2000系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。
从历史的发展来看,MircrosoftSQLServer2000系统的产生就是为了开发在MircrosoftWindowsNT操作系统上运行的关系型数据库管理系统。
第3章需求分析
任何一个系统在开发之前,都必须进行需求分析。
向用户了解他们所面对的问题,确定待开发的系统“做什么”。
只有做好了需求分析,才能对系统进一步的开发。
避免做无用功。
3.1功能需求
需求分析就是描述系统所需要完成的任务。
分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。
本系统开发分为以下几个模块:
1.登录功能
2.基础
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 swing 私有 企业 进销存 管理 系统