某企业进销存管理系统的设计与实现_第1页
某企业进销存管理系统的设计与实现_第2页
某企业进销存管理系统的设计与实现_第3页
某企业进销存管理系统的设计与实现_第4页
某企业进销存管理系统的设计与实现_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

铜陵学院毕业设计学 号 _ _ _ 2012届毕业设计 课 题 长江企业进销存管理系统的设计与实现 学生姓名 系 别 数学与计算机科学系 专业班级 2008级信息管理与信息系统 指导教师 2012 年 6 月摘 要 本进销存管理系统是针对中小型企业的管理特点,融合了众多先进管理理念开发而成的长江企业进销存一体化计算机管理软件,满足用户进货管理、销售管理、库存管理、基本资料管理、综合查询等各项工作。系统具有稳定性高、安全、易扩展、结构合理、界面友好、操作方便、实用而科学等特点。强大的查询、统计功能,将大量的、动态的数据和信息直观化,真正实现对物流、信息流的轻松管理。系统开发的目标是实现企业进销存管理的系统化、规范化和自动化,该系统具有完成产销连接,产品库存管理,客户管理,发货管理,库存管理,订单管理等多个功能,满足企业高效管理的需求。进销存管理系统是针对中小型企业的进货、销售、仓储等业务制作的管理软件,功能强大。 关键词:数据库,MyEclipse,进销存管理 Abstract This Invoicing management system for small and medium enterprise management features, combined with a variety of advanced management idea and development of the Yangtze River enterprises Invoicing computer management software integration, satisfies the user purchase management, sales management, inventory management, basic data management, comprehensive inquiry and other work. The system has high stability, safety, easy to expand, reasonable structure, friendly interface, convenient operation, practical and scientific characteristics. Powerful query, statistical functions, will be large, dynamic data and information visualization, and truly realize the logistics, information flow easily manage. The target of the system development is to realize the enterprise Invoicing management system, standardization and automation, the system has a complete production and marketing connection, inventory management, customer management, shipping management, inventory management, order management and other functions, to meet the needs of enterprise performance management. Invoicing management system for small and medium enterprises purchase, sales, warehousing and other business production management software, a powerful.Keywords: Database, My eclipse ,Invoicing management铜陵学院毕业设计前 言随着全球经济信息化的进程和我国成功进入WTO组织,企业面临着前所未有的机遇和挑战,在如此激变的社会形势和激烈的市场竞争下,愈来愈多的企业管理者意识到效率管理和科学管理的重要性,以及增强市场竞争力的迫切性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用计算机管理进货、库存、销售等诸多环节也已成为趋势及必然。在进货、库存、销售环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。而采用计算机管理则可以大大提高日常工作的效率,不仅将原来由手工操作的进货、出货及销售这一整套流程用计算机进行全程管理,而且消除了手工操作中可能存在的不确定因素,达到进销存管理流程清晰的目的,从而能够比较彻底地贯彻经营者的管理模式。企业进销存管理系统是以软件工程方法为指导,结合实践,对系统进行调研、需求分析、软件设计、数据库设计、界面设计、编码测试等工作来完成企业进销存管理系统的原型。企业进销存管理系统的开发设计主要依据软件工程的软件开发原则,结合所学过的面向对象的可视化语言来完成,在前人工作经验的基础上自己来开发系统。此系统采用面向对象的程序设计语言Java做前台开发软件和MySQL这款强大的数据库专业软件做后台数据库的设计,整个系统用简洁明快的界面展现出来,使操作简单可行,用户使用方便、简洁。本系统是使用窗体模式开发的桌面应用程序。它使用一个主窗体包含多个子窗体,子窗体只能在主窗体规定的范围内移动。这些子窗体由导航面板上的按钮调用,这些按钮需要添加事件监听器,在单击该按钮时,由事件监听器创建并初始化相应的窗体,然后显示该子窗体。如果每个按钮都使用自己的监听类,那么就需要很多监听器类,这样代码的工作量大。为了提高程序开发效率,使用Java的反射功能为实现所有的事件监听提供了可能。目录 第1章 绪 论11.1系统的开发背景11.2系统开发简介11.2.1系统开发工具简介11.2.2 MySQL简介21.2.3系统开发环境2第2章 系统分析32.1需求分析32.2系统开发的可行性分析32.3系统功能分析32.4业务逻辑编码3第3章 系统总体设计53.1系统流程图53.2系统总体结构图53.3数据库的设计63.3.1数据库分析63.3.2进销存管理系统E-R图7第4章 系统详细设计104.1主窗体设计104.2数据表设计164.3文件夹组织结构184.4系统主要类编写和设计194.4.1实体类的编写194.4.2数据访问对象类的编写194.4.3内部窗口类的编写194.4.4实用类的编写204.5单元测试20第5章 用户手册235.1系统启动、登录与退出235.1.1系统启动与登录235.1.2系统退出255.2库存管理255.2.1库存盘点265.2.2价格调整界面275.3基础信息管理275.4查询统计管理295.4.1客户查询305.4.2商品查询305.4.3供应商查询315.4.4入库查询315.5系统管理325.5.1操作员管理325.5.2更改密码335.5.3退出系统33总结与展望34致 谢35参考文献36 插图清单图3-1 系统流程图5图3-2进销存系统结构图.6图3-3客户实体E-R图7图3-4供应商实体E-R图7图3-5商品实体E-R图8图3-6库存实体E-R图8图3-7进货单实体E-R图8图3-8销售单实体E-R图9图3-9用户实体E-R图9图4-1程序主窗体界面效果10图4-2系统的文件夹组织结构19图5-1登录界面23图5-2主界面24图5-3库存管理25图5-4库存盘点管理界面26图5-5价格调整界面27图5-6添加和修改库存商品信息界面28图5-7供应商信息界面27图5-8查询统计30图5-9客户查询30图5-10商品查询.31图5-11供应商查询.31图5-12入库查询.32图5-13创建新角色.32图5-14创建用户.32图5-15添加操作员界面和修改删除操作员界面.33图5-16更改密码界面.33表格清单表1客户信息表(customer).16表2商品信息表(ware)16表3供应商信息表(provider).17表4库存信息表(storage)17表5销售信息表(saleform).17表6进货信息表(stock)18表7操作员信息表(user).18 第1章 绪 论 实现企业信息化管理是现代社会中小企业稳步发展的必要条件,它可以提供企业的管理水平和工作效率,最大限度地减少手工操作带来的失误。进销存管理系统可以实现企业的进货、销售、库存管理等各项业务的信息化管理。1.1系统的开发背景 加入WTO以后,随着国内经济的高速发展,中小型企业的商品流通越来越多,其所经营的商品种类繁多,难以管理,而进销存管理系统逐渐成为企业经营和管理中的核心环节,也是企业取得效益的关键。为了完善管理制度,增强企业的竞争力,很多公司都决定开发进销存管理系统,以实现商品管理的信息化。1.2系统开发简介企业进销存管理系统的前台开发软件选择的是MyEclipse6.5,该软件是面向对象的开发工具,代码的可重用性好、软件易于维护。后台的数据库采用的是MySQL数据库,MySQL简单易于掌握,适用于中大型的数据库操作,企业进销存所使用的数据库属于中型的数据库,故采用该数据库。1.2.1系统开发工具简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大地提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完全支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在结构上,MyEclipse的特征可分为7类: l JavaEE模型 l WEB开发工具 l EJB开发工具 l 应用程序服务器的连接器 l JavaEE项目部署服务 l 数据库服务 l MyEclipse整合帮助 对于以上每一种功能,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。 简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。1.2.2 MySQL简介 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 1.2.3系统开发环境l 操作系统:Windows XP(SP2)l Java 开发包:JDK 1.6l 数据库:MySQL 5.5l 分辨率:最佳效果为1440*960像素第2章 系统分析 2.1需求分析需求分析是一项重要的工作,也是最困难的工作。通过调查组织机构情况和系统必须实现的功能,经过仔细的思考和设计,现制定如下的需求分析:l 系统操作简单,界面友好l 进货、退货管理l 基础信息管理(包括客户、商品和供应商的信息管理和修改删除操作)l 销售、退货管理l 库存管理(包括库存盘点和价格调整)l 查询统计分析(客户、商品、供应商、销售、入库、销售排行查询)l 系统管理l 可以批量填写进货单和销售单2.2系统开发的可行性分析系统分析人员需要5、6天时间确认需求分析文档。程序开发人员需要在45天的时间内进行系统设计、程序编码、系统测试、程序调试和最终文档编写等工作,时间上可行。在技术方面,由于Java的易操作性,以及系统设计人员对软件工程的理解,系统编码方面不会出现太大的问题,技术上可行。由于系统是由个人独立编写,所以也就不存在资金方面的困扰,经济上可行。综上所述,项目在时间、技术和资金方面都是可行的。因此认为该项目可以按时保质开发。2.3系统功能分析根据需求分析的描述以及与用户的沟通,现制定系统功能模块如下:1) 进货管理:包括进货、退货两个子模块。2) 基础信息管理:包括商品信息管理、客户信息管理和供应商信息管理三大模块。 其中每个模块下又分为几个小模块来实现增删改查操作。3) 销售管理:包括销售订单、销售后退货处理模块。4) 库存管理:包括库存盘点和库存价格调整两个模块,可以很方便地将系统与实 物之间的数量和价格一一对应上,使信息更准确。5) 查询统计:提供了强大的查询和搜索功能,其中包括客户查询、商品查询、供应 商查询、销售查询、退货查询、入库查询、销售排行等子模块,查询功能强大。6) 系统管理:包括操作员管理、密码更改、退出系统等子项。2.4业务逻辑编码 由于涉及到多张数据库表格,故对表格编码作统一规划,方便程序编写。其中数据库对象命名以字母db开头,数据表对象命名以字母tb开头。l 供应商编号:作为供应商信息表的主键。以字符串gys为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始(gys1001)。l 客户编号:作为客户信息表的主键。以字符串kh为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始(kh1001)。l 商品编号:作为商品信息表的主键。以字符串sp为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始(sp1001)。l 销售单编号:作为销售单信息表的主键。以字母xs为前缀后面跟4位数字作后缀。这四位数字从1001开始(xs1001)。 l 入库编号:作为进货信息表的主键。以字母rk为前缀后面跟4为数字作后缀 (rk1001)。l 库存编号:作为库存信息表的主键。以字母kc为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始(kc1001)。l 用户表编号:作为管理用户信息表的主键。以user作为前缀后跟两位数字作为后缀。这两位数字从01开始(user01)。日考勤信息、月考勤统计表、加班管理、请假管理和休假管理。该功能一般和考勤机配套使用,员工的上下班时间自动记录并转入系统中,当然在系统中也提供人工录入的功能,这样即便没有使用考勤机也可以使用该功能。第3章 系统总体设计3.1系统流程图进销存管理系统流程如图3-1所示操作员。库存管理查询统计销售管理进货管理基础信息管理 系统管理管理员图3-1系统流程3.2系统总体结构图本系统包括:基础信息管理、进货管理、销售管理、库存管理、查询统计、系统管理等6大部分。系统结构图如图3-2所示。企业进销存管理系统进货管理基础信息管理销售管理库存管理查询统计系统管理进货单客户信息管理进货退货商品信息管理供应商信息管理客户修改与删除商品信息添加商品修改与删除供应商修改与删除供应商信息添加销售单销售退货库存盘点价格调整客户查询商品查询供应商查询销售查询销售退货查询入库查询入库退货查询销售排行操作员管理更改密码退出系统客户信息添加图3-2进销存系统结构图3.3数据库的设计3.3.1数据库分析本系统是一个桌面应用程序,MySQL服务器安全,免费。选用MySQL服务器完全满足要求。 硬件平台:l CPU Celeron 1.6GHzl 内存:1Gl 硬盘空间:80G 软件平台:l 操作系统:Windows XPl 数据库:MySQL 5.0.673.3.2进销存管理系统E-R图E-R图是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法。构成E-R图的基本要素是实体、属性和关系。实体是指客观存在并可相互区分的事特;属性指实体所具有的每一个特性。客户联系人编号名称地址固话手机传真Email邮编账号开户行图3-3客户实体E-R图供应商联系人编号名称地址固话手机传真Email邮编账号开户行图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是主窗体的运行结果:图4-1程序主窗体界面效果主窗体设计的主要思路是先创建一个JFrame对象,在此容器下创建一个JDesktopPane对象,导航面板即JTabbedPane对象就是安放在此对象上的。由于导航面板的简洁和方便性,所有的按钮都是放在一个个选项卡上面的。每个按钮都对应相应的点击事件,如果每个按钮都添加各自的事件监听器的话,那么将有很多事件监听器类。但是从实际的按钮监听器所实现的业务逻辑中不难发现,它们所完成的工作基本相同,都是创建并初始化子窗体,然后显示它们。使用同一个事件监听器类实现代码重用,节省了代码量,提高程序开发速度。所以我使用了Java的反射机制,它可以很好地解决这个问题。在Java.lang.reflect包中有Constructor类,可以通过Class类的getConstructor()方法获取Constructor类的实例对象,然后调用该对象的newInstance()方法创建类的实例对象。关键代码如下:/采用Java中的反射机制处理内部窗口。这样可以大大简化代码量private final JInternalFrame getInternalFrame(String framename)JInternalFrame internalFrame=null;/生成唯一的内部窗体对象(通过判断HashMap中是否已经有了内部窗体对象)if(!ifs.containsKey(framename) try Class tempClass=Class.forName(ernalFrame.+framename);Constructor constructor=tempClass.getConstructor();internalFrame=(JInternalFrame)constructor.newInstance();ifs.put(framename, internalFrame); catch (Exception e) e.printStackTrace();elseinternalFrame=ifs.get(framename);return internalFrame;/多个内部窗体对象8private Map ifs = new HashMap(); public WelcomeFrame() frame=new JFrame(企业进销存系统);updateBackImage();/添加、更新背景图片desktopPane=new JDesktopPane();desktopPane.add(backLabel,new Integer(Integer.MIN_VALUE);frame.getContentPane().add(Center,desktopPane);/在窗体中添加JDesktopPane对象JTabbedPane navigatorPane=createNavigatorPane();/创建导航面板frame.getContentPane().add(North,navigatorPane);.frame.setVisible(true);private void updateBackImage() /添加、更新背景图片if(backLabel!=null)nt imageWidth=frame.getWidth();int imageHeight=frame.getHeight()-110;backLabel.setSize(imageWidth,imageHeight);backLabel.setText(+ );private JTabbedPane createNavigatorPane()JTabbedPane navigatorPane=new JTabbedPane();navigatorPane.setBorder(new BevelBorder(BevelBorder.RAISED);navigatorPane.setBackground(new Color(211, 230, 192);navigatorPane.setFocusable(false);JPanel stockManagePanel=new JPanel();/进货管理stockManagePanel.setBackground(new Color(215, 223, 194);stockManagePanel.setLayout(new BoxLayout(stockManagePanel,BoxLayout.X_AXIS);stockManagePanel.add(createButton(进货单,Jinhuodan);stockManagePanel.add(createButton(退货,Tuihuo);JPanel saleManagePanel=new JPanel();/销售管理 .JPanel storageManagePanel=new JPanel();/库存管理.JPanel baseInfoManagePanel=new JPanel();/基础信息管理 . JPanel searchStatisticManagePanel=new JPanel();/查询统计.JPanel systemManagePanel=new JPanel();/系统管理/将以上各个面板添加到导航面板中navigatorPane.addTab( 进货管理 ,null,stockManagePanel,进货管理);navigatorPane.addTab( 销售管理 ,null,saleManagePanel,销售管理);navigatorPane.addTab( 库存管理 ,null,storageManagePanel,库存管理);navigatorPane.addTab( 基础信息管理 ,null,baseInfoManagePanel,基础信息管理);avigatorPane.addTab( 查询统计 ,null,searchStatisticManagePanel,查询统计);navigatorPane.addTab( 系统管理 ,null,systemManagePanel,系统管理);return navigatorPane;private JButton createButton(String cname,String fname)String picUrl=res/ActionIcon/+cname+.png;/原始图片String picUrl_roll=res/ActionIcon/+cname+_roll.png;/鼠标经过时显示的图片String picUrl_down=res/ActionIcon/+cname+_down.png;/鼠标按下时显示的图片Icon icon=new ImageIcon(picUrl);Icon icon_roll=new ImageIcon(picUrl_roll);Icon icon_down=new ImageIcon(picUrl_down);Action action=new openFrameAction(cname,fname,icon);/点击按钮响应的事件JButton button=new JButton(action);/设置按钮外观样式,美化界面button.setMargin(new Insets(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!=null)button.setPressedIcon(icon_down);return button;/编写内部类,它继承AbstractAction对象,实现Action接口protected class openFrameAction extends AbstractActionprivate static final long serialVersionUID = 1L;String framename=;/构造方法,接受传递过来的参数public openFrameAction(String cname,String framename,Icon icon)this.framename=framename;this.putValue(Action.NAME, cname);/设置点击按钮的动作名this.putValue(Action.SHORT_DESCRIPTION,cname);/设置按钮上的Tooltip文字this.putValue(Action.SMALL_ICON, icon);/设置按钮图标/点击按钮响应的事件。(即生成相应的内部窗体然后显示出来)public void actionPerformed(ActionEvent e)JInternalFrame internalFrame= getInternalFrame(framename);/调用getInternalFrame()方法生产内部窗体if(internalFrame.getDesktopPane()=null)desktopPane.add(internalFrame);/将内部窗体添加为JDesktopPane实例的内部窗体internalFrame.setVisible(true);/将内部窗体显示出来/添加内部窗体侦听器,当点击关闭按钮时需要从HashMap对象中清除此内部窗体对象internalFrame.addInternalFrameListener(new InternalFrameAdapter()public void internalFrameClosed(InternalFrameEvent e)ifs.remove(framename););/当打开内部窗体时,默认为选中此内部窗体try internalFrame.setSelected(true); catch (PropertyVetoException e1) e1.printStackTrace();.反射机制部分,详见主窗体解说部分。/当改变窗体大小时更新背景图片,使之占用整个窗体private class ResizeFrameListener extends ComponentAdapterpublic void componentResized(ComponentEvent e)updateBackImage();/* 程序入口 */public static void main(String args) tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)e.printStackTrace();new Login(); /创建登录界面4.2数据表设计根据在数据库需求阶段的分析,设计数据库表格如下:表1客户信息表(customer)表2商品信息表(ware)表3供应商信息表(provider)表4库存信息表(storage)表5销售信息表(saleform)表6进货信息表(stock)表7操作员信息表(user)4.3文件夹组织结构在进行系统开发之前需要规划好文件夹组织结构,也就是说,建立多个文件夹,对各个功能模块进行划分,实现统一管理。这样做的好处在于:易于开发、管理和维护。本系统的文件夹组织结构如4-2图所示。系统分析文件系统所需文件(图片等)JDK包及数据库连接包等引用类单元测试类系统主界面数据库操作类(数据库访问类)所有内部窗口实现类模型层中实体模型数据封装类及数据合法性检查类等实用类类图4-2系统的文件夹组织结构4.4系统主要类编写和设计4.4.1实体类的编写所有的实体类都属于模型最底层用来数据收集的,在com.wyl.model包下有7个实体类分别对应数据库中的7张表格,它们用set和get方法设置或获取数据,将实体对象封装起来在各个模块之间传递数据。这样程序封装性非常好,而且更紧凑。为Dao和视图层的调用带来了很多方便。4.4.2数据访问对象类的编写所有后台数据库的访问工作都交给了com.wyl.Dao包下面的MySQL_Dao_Impl类来实现。这样不但封装性好,而且可以为不同的数据库单独编写对应的类,而不需要修改程序的其他部分,这样程序非常容易扩展,独立性很高。此系统采用的是MySQL数据库来支持的,如果换成了SQL Server或者Oracle数据库后,只要另外编写相应的操作类来实现视图层的功能就可以了。4.4.3内部窗口类的编写 从主界面中可以根据各模块对应的按钮来进行系统操作,点击这些按钮会弹出对应的内部窗口,这些内部窗口都对应相应的别名,这样在使用Java的反射机制时可以根据这些别名来创建对应的事件监听器。这些内部窗口有进货单、退订单、价格调整、销售查询、库存盘点、更改密码等窗口。各个类分别管理对应的子模块,这样系统程序代码的编写过程就非常清晰了。各个模块划分后程序编写互不干扰又井井有条,给后期测试和完善带来了很大的方便。4.4.4实用类的编写系统中共使用了两个实用类InputKeyListener类和Item类,前者的作用是监视数值型文本框中输入的数字是否是数值型的,如果不是则输入不进去。Item类则封装了id属性和name属性,这个类主要用于封装和传递参数信息,这是典型的命令模式的实现。在Dao中会经常使用该类作为方法参数,另外在各个窗体界面中也经常使用该类作组件数据,其中toString()方法返回其name属性值。类的内容却很简单,只包含set和get方法。以下代码是InputKeyListener类的具体实现:package com.wyl.util;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;/用于检查文本域中输入的是否为纯数字/如果不是纯数字的话,则输入不进去public class InputKeyListener extends KeyAdapterpublic void keyTyped(KeyEvent e) String key = - + (char) 8;if (key.indexOf(e.getKeyChar() 0) e.consume();注:使用正则表达式将数值型数据的特征提取了出来,用于匹配数值型数据。4.5单元测试JUnit是一个单元测试框架,专门用于测试Java开发的程序,同类产品还包括Nunit(.Net),CPPUnit(C+),都属于JUnit中的成员。目前JUnit的最新版本是JUnit 4.0,在Eclipse开发工具中已经集成了JUnit的多个版本。在系统的价格和数量输入调整界面中,如果输入非数值型的字符程序将会抛出NumberFormatException异常,所以要对输入的单价和数量进行数字格式验证,利用按键监听器,监听文本框中的每一次按键,当按键是数字时继续接收输入;反之,当按键不是数字或小数点时就取消本次按键的输入。这样就能够有效地屏蔽非数字格式的输入,它比之前的数字格式验证更有效。 这些都可以在Junit中编写单元测试类来完成以上操作。以下是测试数据库连接的一个单元测试类,代码如下:package com

温馨提示

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

评论

0/150

提交评论