中小型企业便捷管理系统Word文档下载推荐.docx
- 文档编号:18137457
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:23
- 大小:183.49KB
中小型企业便捷管理系统Word文档下载推荐.docx
《中小型企业便捷管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《中小型企业便捷管理系统Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
它是功能丰富的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);
//将内部窗体显示出来
//添加内部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中小型企业 便捷 管理 系统