中小型企业便捷管理系统Word文档下载推荐.docx

上传人:b****6 文档编号:18137457 上传时间:2022-12-13 格式:DOCX 页数:23 大小:183.49KB
下载 相关 举报
中小型企业便捷管理系统Word文档下载推荐.docx_第1页
第1页 / 共23页
中小型企业便捷管理系统Word文档下载推荐.docx_第2页
第2页 / 共23页
中小型企业便捷管理系统Word文档下载推荐.docx_第3页
第3页 / 共23页
中小型企业便捷管理系统Word文档下载推荐.docx_第4页
第4页 / 共23页
中小型企业便捷管理系统Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

中小型企业便捷管理系统Word文档下载推荐.docx

《中小型企业便捷管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《中小型企业便捷管理系统Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

中小型企业便捷管理系统Word文档下载推荐.docx

它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。

在结构上,MyEclipse的特征可以被分为7类:

●JavaEE模型

●WEB开发工具

●EJB开发工具

●应用程序服务器的连接器

●JavaEE项目部署服务

●数据库服务

●MyEclipse整合帮助

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。

MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。

MyEclipse6.0以后版本安装时不需安装Eclipse。

1.2.2、MySQL简介

MySQL被广泛地应用在Internet上的中小型网站中。

由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[4]。

与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。

对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

1.2.3系统开发环境

●操作系统:

WindowsXP(SP2)

●Java开发包:

JDK1.6

●数据库:

MySQL5.5

●分辨率:

最佳效果为1440*960像素

第2章、系统分析

2.1、需求分析

需求分析是一项重要的工作,也是最困难的工作[2]。

通过调查组织机构情况和系统必须实现的功能,经过仔细的思考和设计,现制定如下的需求分析:

●系统操作简单,界面友好

●进货、退货管理

●基础信息管理(包括客户、商品和供应商的信息管理和修改删除操作)

●销售、退货管理

●库存管理(包括库存盘点和价格调整)

●查询统计分析(客户、商品、供应商、销售、入库、销售排行查询)

●系统管理

●可以批量填写进货单和销售单

2.2、系统开发的可行性分析

系统分析人员需要5天时间确认需求分析文档,去除其中可能出现的问题,例如用户可能临时有事,占用6天时间确认需求分析。

那么程序开发人员需要在1个月零15天的时间内进行系统设计、程序编码、系统测试、程序调试和最终文档编写等工作。

其间包括休息时间。

时间上可行。

在技术方面由于java的易操作性,以及系统设计人员对软件工程的理解,系统编码方面不会出现太大的问题。

技术上可行。

由于系统是由个人独立编写,所以也就不存在资金方面的困扰,经济效益上可行。

综上所述,项目在时间、技术和资金方面都是可行的。

因此认为该项目可以按时保质量开发。

2.3、系统功能分析

根据需求分析的描述以及与用户的沟通,现制定系统功能实现模块如下:

1)进货管理:

包括进货、进货后退货两个子模块。

2)基础信息管理:

包括商品信息管理、客户信息管理和供应商信息管理三大模块。

其中每个模块下又分为几个小模块来实现增删改查操作。

3)销售管理:

包括销售订单、销售后退货处理模块。

4)库存管理:

包括库存盘点和库存价格调整两个模块,可以很方便地将系统与实

物之间的数量和价格一一对应上,使信息更准确。

5)查询统计:

提供了强大的查询和搜索功能,其中包括客户查询、商品查询、供应商查询、销售查询、退货查询、入库查询、销售排行等子模块,查询功能强大。

6)系统管理:

包括操作员管理、密码更改、退出系统等子项。

2.4、业务逻辑编码

由于涉及到多张数据库表格,固对表格编码作一统一规划,方便程序编写。

其中数据库对象命名以字母db开头,数据表对象命名以字母tb开头。

●供应商编号:

作为供应商信息表的主键。

以字符串gys为前缀后面跟4位数字作为编号的后缀。

这四位数字从1001开始。

(gys1001)。

●客户编号:

作为客户信息表的主键。

以字符串kh为前缀后面跟4位数字作为编号的后缀。

这四位数字从1001开始(kh1001)。

●商品编号:

作为商品信息表的主键。

以字符串sp为前缀后面跟4位数字作为编号的后缀。

这四位数字从1001开始(sp1001)。

●销售单编号:

作为销售单信息表的主键。

以字母xs为前缀后面跟3位数字作后缀。

(xs1001)。

●入库编号:

作为进货信息表的主键。

以字母rk为前缀后面跟3为数字作后缀。

(rk1001)。

●库存编号:

作为库存信息表的主键。

以字母kc为前缀后面跟4位数字作为编号的后缀。

(kc1001)。

●用户表编号:

作为管理用户信息表的主键。

以user作为前缀后跟两位数字作为后缀。

这两位数字从01开始。

(user01)

第3章、系统总体设计

3.1、系统流程图

进销存管理系统的系统流程如图3.1所示:

3.2、系统总体结构图

本系统包括:

基础信息管理、进货管理、销售管理、库存管理、查询统计、系统管理等6大部分。

系统结构图如下图2所示:

图3.2:

进销存系统结构图

3.3、数据库的设计

3.3.1、数据库分析

本系统是一个桌面应用程序,MySQL服务器安全,免费。

选用MySQL服务器完全满足中小企业的要求。

硬件平台:

⏹CPUCeleron1.6GHz

⏹内存:

1G

⏹硬盘空间:

80G

软件平台:

⏹操作系统:

WindowsXP

⏹数据库:

MySQL5.0.67

3.3.2、进销存管理系统E-R图

E-R图是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法。

构成ER图的基本要素是实体、属性和关系。

实体是指客观存在并可相互区分的事特;

属性指指实体所具有的每一个特性[5]。

图3.3:

客户实体E-R图

图3.4:

供应商实体E-R图

图3.5:

商品实体E-R图

图3.6:

库存实体E-R图

图3.7:

进货单实体E-R图

图3.8:

销售单实体E-R图

图3.9:

用户表实体E-R图

第4章、系统详细设计

4.1、主窗体设计

主窗体界面也就是系统的欢迎界面。

应用程序的主窗口必须设计层次清晰的系统菜单和工具栏,其中系统菜单包含系统中所有功能的菜单项,而工具栏主要提供常用功能的快捷访问按钮。

企业进销存管理系统采用导航面板综合了系统菜单和工具栏的优点,而且导航面板的界面更加美观,操作更快捷。

图4.1程序主窗体界面效果

主窗体设计的主要思路是先创建一个JFrame对象,在此容器下创建一个JDesktopPane对象,导航面板即JTabbedPane对象就是安放在此对象上的。

由于导航面板的简洁和方便性,所有的按钮都是放在一个个选项卡上面的。

每个按钮都对应相应的点击事件,如果每个按钮都添加各自的事件监听器的话,那么将有很多事件监听器类。

但是从实际的按钮监听器所实现的业务逻辑中不难发现,它们所完成的工作基本相同,都是创建并初始化子窗体,然后显示它们。

如果能够使用同一个事件监听器类就可以实现代码重用,同时也节省了代码量,提高程序开发速度。

所以我使用了java的反射机制,它可以很好地解决这个问题。

在java.lang.reflect包中有Constructor类,可以通过Class类的getConstructor()方法获取Constructor类的实例对象,然后调用该对象的newInstance()方法创建类的实例对象。

关键代码如下:

//采用java中的反射机制处理内部窗口。

这样可以大大简化代码量

privatefinalJInternalFramegetInternalFrame(Stringframename){

JInternalFrameinternalFrame=null;

//生成唯一的内部窗体对象(通过判断HashMap中是否已经有了内部窗体对象)

if(!

ifs.containsKey(framename)){

try{

ClasstempClass=Class.forName("

com.wyl.internalFrame."

+framename);

Constructorconstructor=tempClass.getConstructor();

internalFrame=(JInternalFrame)constructor.newInstance();

ifs.put(framename,internalFrame);

}catch(Exceptione){

e.printStackTrace();

}

}

else{

internalFrame=ifs.get(framename);

returninternalFrame;

}

//多个内部窗体对象[8]

privateMap<

String,JInternalFrame>

ifs=newHashMap<

();

publicWelcomeFrame(){

frame=newJFrame("

企业进销存系统"

);

updateBackImage();

//添加、更新背景图片

desktopPane=newJDesktopPane();

desktopPane.add(backLabel,newInteger(Integer.MIN_VALUE));

frame.getContentPane().add("

Center"

desktopPane);

//在窗体中添加JDesktopPane对象

JTabbedPanenavigatorPane=createNavigatorPane();

//创建导航面板

North"

navigatorPane);

..........

frame.setVisible(true);

privatevoidupdateBackImage(){//添加、更新背景图片[9]

if(backLabel!

=null){

intimageWidth=frame.getWidth();

intimageHeight=frame.getHeight()-110;

backLabel.setSize(imageWidth,imageHeight);

backLabel.setText("

<

html>

body>

imgwidth='

"

+imageWidth+"

'

height='

+

imageHeight+"

src='

+this.getClass().getResource("

welcome.jpg"

)+"

>

"

/img>

/body>

/html>

);

}

privateJTabbedPanecreateNavigatorPane(){

JTabbedPanenavigatorPane=newJTabbedPane();

navigatorPane.setBorder(newBevelBorder(BevelBorder.RAISED));

navigatorPane.setBackground(newColor(211,230,192));

navigatorPane.setFocusable(false);

JPanelstockManagePanel=newJPanel();

//进货管理

stockManagePanel.setBackground(newColor(215,223,194));

stockManagePanel.setLayout(newBoxLayout(stockManagePanel,BoxLayout.X_AXIS));

stockManagePanel.add(createButton("

进货单"

"

Jinhuodan"

));

退货"

Tuihuo"

JPanelsaleManagePanel=newJPanel();

//销售管理

...........

JPanelstorageManagePanel=newJPanel();

//库存管理

JPanelbaseInfoManagePanel=newJPanel();

//基础信息管理

...........

JPanelsearchStatisticManagePanel=newJPanel();

//查询统计

JPanelsystemManagePanel=newJPanel();

//系统管理

//将以上各个面板添加到导航面板中

navigatorPane.addTab("

进货管理"

null,stockManagePanel,"

进货管理"

销售管理"

null,saleManagePanel,"

销售管理"

库存管理"

null,storageManagePanel,"

库存管理"

基础信息管理"

null,baseInfoManagePanel,"

基础信息管理"

查询统计"

null,searchStatisticManagePanel,"

查询统计"

系统管理"

null,systemManagePanel,"

系统管理"

returnnavigatorPane;

privateJButtoncreateButton(Stringcname,Stringfname){

StringpicUrl="

res/ActionIcon/"

+cname+"

.png"

;

//原始图片

StringpicUrl_roll="

_roll.png"

//鼠标经过时显示的图片[10]

StringpicUrl_down="

_down.png"

//鼠标按下时显示的图片

Iconicon=newImageIcon(picUrl);

Iconicon_roll=newImageIcon(picUrl_roll);

Iconicon_down=newImageIcon(picUrl_down);

Actionaction=newopenFrameAction(cname,fname,icon);

//点击按钮响应的事件

JButtonbutton=newJButton(action);

//设置按钮外观样式,美化界面

button.setMargin(newInsets(0,0,0,0));

//设置按钮边框和标签之间的空白(top,left,bottom,right)全为空白

button.setText("

button.setFocusPainted(false);

//设置按钮获取焦点后,是否显示焦点样式。

此处取消,更美观

button.setBorderPainted(false);

//设置是否绘制边框,此处取消,更美观

button.setContentAreaFilled(false);

//希望绘制图标按钮就将此属性设置为false

//设置鼠标经过,按下时按钮样式

if(icon_roll!

=null)

button.setRolloverIcon(icon_roll);

if(icon_down!

button.setPressedIcon(icon_down);

returnbutton;

//编写内部类,它继承AbstractAction对象,实现Action接口[11]

protectedclassopenFrameActionextendsAbstractAction{

privatestaticfinallongserialVersionUID=1L;

Stringframename="

//构造方法,接受传递过来的参数

publicopenFrameAction(Stringcname,Stringframename,Iconicon){

this.framename=framename;

this.putValue(Action.NAME,cname);

//设置点击按钮的动作名

this.putValue(Action.SHORT_DESCRIPTION,cname);

//设置按钮上的Tooltip文字

this.putValue(Action.SMALL_ICON,icon);

//设置按钮图标

//点击按钮响应的事件。

(即生成相应的内部窗体然后显示出来)[12]

publicvoidactionPerformed(ActionEvente){

JInternalFrameinternalFrame=getInternalFrame(framename);

//调用getInternalFrame()方法生产内部窗体

if(internalFrame.getDesktopPane()==null){

desktopPane.add(internalFrame);

//将内部窗体添加为JDesktopPane实例的内部窗体

internalFrame.setVisible(true);

//将内部窗体显示出来

//添加内部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1