计算机系毕业论文_终稿_第1页
计算机系毕业论文_终稿_第2页
计算机系毕业论文_终稿_第3页
计算机系毕业论文_终稿_第4页
计算机系毕业论文_终稿_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、企业进销存管理系统摘 要:进销存管理系统是针对中小型企业的管理特点,融合了众多先进管理意识开发而成的通用商业进销存一体化计算机管理软件,满足用户进货管理、销售管理、库存管理、基本资料管理、综合查询等各项工作。系统具有稳定性高、安全、易扩展、结构合理、界面友好、操作方便、实用而科学、性能价格比高等特点。强大的查询、统计功能,将大量的、动态的数据和信息直观化,真正实现对物流、信息流的轻松管理。系统开发的目标是实现企业进销存管理的系统化,规范化和自动化,该系统具有完成产销连接,产品库存管理,客户管理,发货管理,库存管理,订单管理等多个功能,满足企业高效管理的需求。进销存管理系统是一个好用,易用,实用

2、,快上手的好软件,是针对中小型企业的进货销售仓储等业务制作的精致进销存管理软件,功能强大。关键词:数据库,MyEclipse,进销存管理Management System ofThe Enterprise ManagementYulong Wu(Department of Computer Science and Technology, ChaoHu College, ChaoHu AnHui, 238000)Abstract:According to the management characteristic in medium or small-sized company, stockin

3、g-selling-storing management system is generally-used integrating management software in commerce combined with a variety of advanced management experience. It meets the users demand of every work, such as the management of stocking, selling, inventory, basic information and comprehensive inquiry. T

4、he system is qualified with the traits as follows: highly stable, safe, easy to enlarge, rational structure, friend interface, operate easily, practical and scientific, function well and low price. The function of omnipotent inquiry, statistic and taxis can make large and dynamic data and informatio

5、n intuitionist, and realize the simple management of goods, information and capitals. The goal of the system is to make stocking-selling and storing management systematic, standard and automatic. The system is equipped with the function of combining manufacturing and selling, inventory management, c

6、lient management, consignment management, manufacturing management, inventory management and order management. It can meet the demand of high-effective administration of company. Stocking-selling-storing management system is an practical, easy to operate and use software; a delicate management softw

7、are for purchase, sales and inventory goods for a company. Keywords: Database; My eclipse; The management system前 言随着全球经济信息化的进程和WTO的成功实现,企业面临着前所未有的机遇和挑战,在如此激变的社会形势和激烈的市场竞争下,愈来愈多的企业管理者意识到效率管理和科学管理的重要性,以及增强市场竞争力的迫切性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。在进货、库存、销售环节中

8、,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。而采用计算机管理则可以大大提高日常工作的效率,不仅将原来由手工操作的进货、出货及销售这一整套流程用计算机进行全程管理,而且消除了手工操作中可能存在的不确定因素,达到进销存管理流程清晰,从而能够比较彻底地贯彻经营者的管理模式。企业进销存管理系统是以软件工程方法为指导,结合实践,对系统进行调研、需求分析、软件设计、数据库设计、界面设计、编码测试等设计工作来完成企业进销存管理系统的系统原型。企业进销存管理系统的开发设计主要依据软件工程的软件开发原则,结合着所学过的面向对象的可视化语言来完成,在结合

9、前人的工作经验的基础上自己来开发系统。此系统采用面向对象的程序设计语言Java做前台开发软件和MySQL这款强大的数据库专业软件做后台数据库的设计,整个系统用简洁明快的界面展现出来,使操作简单可行,用户使用方便、简洁。本系统使用的是窗体模式开发的桌面应用程序。它使用一个主窗体包含多个子窗体,子窗体只能在主窗体规定的范围内移动。这些子窗体由导航面板上的按钮调用,这些按钮需要添加事件监听器,在单击该按钮时,由事件监听器创建并初始化相应的窗体,然后显示该子窗体。如果每个按钮都使用自己的监听类,那么就需要很多监听器类,这样代码的工作量大。为了提高程序开发效率,使用java的反射功能为使用一个事件监听器

10、类而实现所有的事件监听提供了可能。企业进销存管理系统是一个复杂而庞大的管理信息系统。由于时间仓促,在设计中还存在不足之处,有些功能还不是很完善。在分析设计中还有些地方没有考虑周全,请大家指出错误提出您宝贵的意见。目 录第1章、绪论1.1、系统的开发背景1.2、系统开发简介、系统开发工具简介、MySQL简介系统开发环境第2章、系统分析2.1、需求分析2.2、系统开发的可行性分析2.3、系统功能分析2.4、业务逻辑编码第3章、系统总体设计3.1、系统流程图3.2、系统总体结构图3.3、数据库的设计、数据库分析、进销存管理系统E-R图第4章、系统详细设计4.1、主窗体设计4.2、数据表设计4.3、文

11、件夹组织结构4.4、系统主要类编写和设计、实体类的编写、数据访问对象类的编写、内部窗口类的编写、实用类的编写4.5、单元测试第5章、用户手册5.1、系统启动、登录与退出、系统启动与登录、系统退出5.2、进货管理、进货单管理、进货退货管理5.3、销售管理、销售单管理、销售退货5.4、库存管理、库存盘点、价格调整界面5.5、基础信息管理、客户信息管理、商品信息管理、供应商信息管理5.6、查询统计管理、客户查询、商品查询、供应商查询、销售查询、入库查询5.7、系统管理、操作员管理、更改密码、退出系统总结与展望致谢参考文献第1章、绪 论实现企业信息化管理是现代社会中小企业稳步发展的必要条件,它可以提供

12、企业的管理水平和工作效率,最大限度地减少手工操作带来的失误。进销存管理系统正是一个信息化管理软件,可以实现企业的进货、销售、库存管理等各项业务的信息化管理。1.1、系统的开发背景加入WTO以后,随着国内经济的高速发展,中小型企业的商品流通越来越多,其所经营的商品种类繁多,难以管理,而进销存管理系统逐渐成为企业经营和管理中的核心环节,也是企业取得效益的关键。为了完善管理制度,增强企业的竞争力,很多公司都决定开发进销存管理系统,以实现商品管理的信息化。1.2、系统开发简介企业进销存管理系统的前台开发软件选择的是MyEclipse6.5,该软件是面向对象的开发工具,代码的可重用性好、软件易于维护。进

13、销存管理系统后台的数据库采用的是MySQL数据库,MySQL简单易于掌握,该软件适用于中大型的数据库操作,企业进销存所使用的数据库属于中型的数据库,故采用该数据库。1.2.1、系统开发工具简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascrip

14、t, SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类: l JavaEE模型 l WEB开发工具 l EJB开发工具 l 应用程序服务器的连接器 l JavaEE项目部署服务 l 数据库服务l MyEclipse整合帮助 对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。 简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEcli

15、pse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。1.2.2、MySQL简介MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库4。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经

16、绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 1.2.3系统开发环境l 操作系统:Windows XP(SP2)l Java 开发包:JDK 1.6l 数据库:MySQL 5.5l 分辨率:最佳效果为1440*960像素第2章、系统分析2.1、需求分析需求分析是一项重要的工作,也是最困难的工作2。通过调查组织机构情况和系统必须实现的功能,经过仔细的思考和设计,现制定如下的需求分析:l 系统操作简单,界面友好l 进货、退货管理l 基础信息管理(包括客户、商品和供应商的信息管理和修改删除操作)l 销售、退货管理l 库存管理(包括库存盘点和价格调整)l 查询统计分析(客

17、户、商品、供应商、销售、入库、销售排行查询)l 系统管理l 可以批量填写进货单和销售单2.2、系统开发的可行性分析系统分析人员需要5天时间确认需求分析文档,去除其中可能出现的问题,例如用户可能临时有事,占用6天时间确认需求分析。那么程序开发人员需要在1个月零15天的时间内进行系统设计、程序编码、系统测试、程序调试和最终文档编写等工作。其间包括休息时间。时间上可行。在技术方面由于java的易操作性,以及系统设计人员对软件工程的理解,系统编码方面不会出现太大的问题。技术上可行。由于系统是由个人独立编写,所以也就不存在资金方面的困扰,经济效益上可行。综上所述,项目在时间、技术和资金方面都是可行的。因

18、此认为该项目可以按时保质量开发。2.3、系统功能分析根据需求分析的描述以及与用户的沟通,现制定系统功能实现模块如下:1) 进货管理:包括进货、进货后退货两个子模块。2) 基础信息管理:包括商品信息管理、客户信息管理和供应商信息管理三大模块。 其中每个模块下又分为几个小模块来实现增删改查操作。3) 销售管理:包括销售订单、销售后退货处理模块。4) 库存管理:包括库存盘点和库存价格调整两个模块,可以很方便地将系统与实 物之间的数量和价格一一对应上,使信息更准确。5) 查询统计:提供了强大的查询和搜索功能,其中包括客户查询、商品查询、供应商查询、销售查询、退货查询、入库查询、销售排行等子模块,查询功

19、能强大。6) 系统管理:包括操作员管理、密码更改、退出系统等子项。2.4、业务逻辑编码由于涉及到多张数据库表格,固对表格编码作一统一规划,方便程序编写。其中数据库对象命名以字母db开头,数据表对象命名以字母tb开头。l 供应商编号:作为供应商信息表的主键。以字符串gys为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始。(gys1001)。l 客户编号:作为客户信息表的主键。以字符串kh为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始(kh1001)。l 商品编号:作为商品信息表的主键。以字符串sp为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始(sp1001

20、)。l 销售单编号:作为销售单信息表的主键。以字母xs为前缀后面跟3位数字作后缀。(xs1001)。l 入库编号:作为进货信息表的主键。以字母rk为前缀后面跟3为数字作后缀。(rk1001)。l 库存编号:作为库存信息表的主键。以字母kc为前缀后面跟4位数字作为编号的后缀。这四位数字从1001开始。(kc1001)。l 用户表编号:作为管理用户信息表的主键。以user作为前缀后跟两位数字作为后缀。这两位数字从01开始。(user01)。第3章、系统总体设计3.1、系统流程图进销存管理系统的系统流程如图3.1所示:操作员库存管理查询统计销售管理进货管理基础信息管理系统管理管理员图3. 1: 系统

21、流程图3.2、系统总体结构图本系统包括:基础信息管理、进货管理、销售管理、库存管理、查询统计、系统管理等6大部分。系统结构图如下图2所示:企业进销存管理系统进货管理基础信息管理销售管理库存管理查询统计系统管理进货单客户信息管理进货退货商品信息管理供应商信息管理客户修改与删除商品信息添加商品修改与删除供应商修改与删除供应商信息添加销售单销售退货库存盘点价格调整客户查询商品查询供应商查询销售查询销售退货查询入库查询入库退货查询销售排行操作员管理更改密码退出系统客户信息添加图3. 2: 进销存系统结构图 3.3、数据库的设计3.3.1、数据库分析本系统是一个桌面应用程序,MySQL服务器安全,免费。

22、选用MySQL服务器完全满足中小企业的要求。 硬件平台:n CPU Celeron 1.6GHzn 内存:1Gn 硬盘空间:80G 软件平台:n 操作系统:Windows XPn3.3.2、进销存管理系统E-R图E-R图是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法。构成ER图的基本要素是实体、属性和关系。实体是指客观存在并可相互区分的事特;属性指指实体所具有的每一个特性5。客户联系人编号名称地址固话手机传真Email邮编账号开户行图3. 3:客户实体E-R图供应商联系人编号名称地址固话手机传真Email邮编账号开户行图3. 4:供应商实体E-R图商品类别编号名称产地单

23、位数量包装批准文号规格简介供应商单价图3. 5:商品实体E-R图库存类别编号商品名产地单位数量包装规格供应商单价图3. 6:库存实体E-R图进货单类别编号商品名产地单位数量包装批准文号规格简介供应商负责人进货日期单价图3. 7:进货单实体E-R图销售单商品名编号单位数量销售日期负责人售价图3. 8:销售单实体E-R图用户真实姓名编号用户名密码图3. 9:用户表实体E-R图第4章、系统详细设计4.1、主窗体设计主窗体界面也就是系统的欢迎界面。应用程序的主窗口必须设计层次清晰的系统菜单和工具栏,其中系统菜单包含系统中所有功能的菜单项,而工具栏主要提供常用功能的快捷访问按钮。企业进销存管理系统采用导

24、航面板综合了系统菜单和工具栏的优点,而且导航面板的界面更加美观,操作更快捷。下图3是主窗体的运行结果图:图4.1 程序主窗体界面效果主窗体设计的主要思路是先创建一个JFrame对象,在此容器下创建一个JDesktopPane对象,导航面板即JTabbedPane对象就是安放在此对象上的。由于导航面板的简洁和方便性,所有的按钮都是放在一个个选项卡上面的。每个按钮都对应相应的点击事件,如果每个按钮都添加各自的事件监听器的话,那么将有很多事件监听器类。但是从实际的按钮监听器所实现的业务逻辑中不难发现,它们所完成的工作基本相同,都是创建并初始化子窗体,然后显示它们。如果能够使用同一个事件监听器类就可以

25、实现代码重用,同时也节省了代码量,提高程序开发速度。所以我使用了java的反射机制,它可以很好地解决这个问题。在java.lang.reflect包中有Constructor类,可以通过Class类的getConstructor()方法获取Constructor类的实例对象,然后调用该对象的newInstance()方法创建类的实例对象。关键代码如下:/采用java中的反射机制处理内部窗口。这样可以大大简化代码量private final JInternalFrame getInternalFrame(String framename)JInternalFrame internalFrame=

26、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

27、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.getCon

28、tentPane().add(Center,desktopPane);/在窗体中添加JDesktopPane对象JTabbedPane navigatorPane=createNavigatorPane();/创建导航面板frame.getContentPane().add(North,navigatorPane);.frame.setVisible(true);private void updateBackImage() /添加、更新背景图片9if(backLabel!=null)int imageWidth=frame.getWidth();int imageHeight=frame.ge

29、tHeight()-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.setFocusab

30、le(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

31、=new JPanel();/销售管理 .JPanel storageManagePanel=new JPanel();/库存管理.JPanel baseInfoManagePanel=new JPanel();/基础信息管理 . JPanel searchStatisticManagePanel=new JPanel();/查询统计.JPanel systemManagePanel=new JPanel();/系统管理/将以上各个面板添加到导航面板中navigatorPane.addTab( 进货管理 ,null,stockManagePanel,进货管理);navigatorPane.ad

32、dTab( 销售管理 ,null,saleManagePanel,销售管理);navigatorPane.addTab( 库存管理 ,null,storageManagePanel,库存管理);navigatorPane.addTab( 基础信息管理 ,null,baseInfoManagePanel,基础信息管理);navigatorPane.addTab( 查询统计 ,null,searchStatisticManagePanel,查询统计);navigatorPane.addTab( 系统管理 ,null,systemManagePanel,系统管理);return navigatorP

33、ane;private JButton createButton(String cname,String fname)String picUrl=res/ActionIcon/+cname+.png;/原始图片String picUrl_roll=res/ActionIcon/+cname+_roll.png;/鼠标经过时显示的图片10String picUrl_down=res/ActionIcon/+cname+_down.png;/鼠标按下时显示的图片Icon icon=new ImageIcon(picUrl);Icon icon_roll=new ImageIcon(picUrl_r

34、oll);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);/设置按钮获取焦点后,是否

35、显示焦点样式。此处取消,更美观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接口11protec

36、ted 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

37、,cname);/设置按钮上的Tooltip文字this.putValue(Action.SMALL_ICON, icon);/设置按钮图标/点击按钮响应的事件。(即生成相应的内部窗体然后显示出来)12public void actionPerformed(ActionEvent e)JInternalFrame internalFrame= getInternalFrame(framename);/调用getInternalFrame()方法生产内部窗体if(internalFrame.getDesktopPane()=null)desktopPane.add(internalFrame);

38、/将内部窗体添加为JDesktopPane实例的内部窗体internalFrame.setVisible(true);/将内部窗体显示出来/添加内部窗体侦听器,当点击关闭按钮时需要从HashMap对象中清除此内部窗体对象internalFrame.addInternalFrameListener(new InternalFrameAdapter()public void internalFrameClosed(InternalFrameEvent e)ifs.remove(framename););/当打开内部窗体时,默认为选中此内部窗体try internalFrame.setSelecte

39、d(true); catch (PropertyVetoException e1) e1.printStackTrace();.反射机制部分,详见主窗体解说部分。/当改变窗体大小时更新背景图片,使之占用整个窗体private class ResizeFrameListener extends ComponentAdapterpublic void componentResized(ComponentEvent e)updateBackImage();/* * 程序入口 */public static void main(String args) tryUIManager.setLookAndF

40、eel(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、文件夹组织结构在进行系统开发之前需要规划好文件夹组织结构,也就是说,

41、建立多个文件夹,对各个功能模块进行划分,实现统一管理。这样做的好处在于:易于开发、管理和维护7。本系统的文件夹组织结构如下4图所示:系统分析文件系统所需文件(图片等)JDK包及数据库连接包等引用类单元测试类系统主界面数据库操作类(数据库访问类)所有内部窗口实现类模型层中实体模型数据封装类及数据合法性检查类等实用类类图4.2 系统的文件夹组织结构4.4、系统主要类编写和设计4.4.1、实体类的编写所有的实体类都属于模型层中最底层用来数据收集的,在com.wyl.model包下有7个实体类分别对应数据库中的7张表格,它们用set和get方法设置或获取数据,将实体对象封装起来在各个模块之间传递数据。

42、这样程序封装性非常好,而且更紧凑。为Dao和视图层的调用带来了很多方便。4.4.2、数据访问对象类的编写所有后台数据库的访问工作都交给了com.wyl.Dao包下面的MySQL_Dao_Impl类来实现了。这样不但封装性好,而且可以为不同的数据库单独编写对应的类,而不需要修改程序的其他部分,这样程序非常容易扩展,独立性很高。此系统采用的是MySQL数据库来支持的,如果换成了SQL Server或者Oracle数据库后,只要另外编写相应的操作类来实现视图层的功能就可以了。4.4.3、内部窗口类的编写从主界面中可以根据各模块对应的按钮来进行系统操作,点击这些按钮会弹出对应的内部窗口,这些内部窗口都

43、对应相应的别名,这样在使用java的反射机制时可以根据这些别名来创建对应的事件监听器6。这些内部窗口有进货单、退订单、价格调整、销售查询、库存盘点、更改密码等等窗口。各个类分别管理对应的子模块,这样系统程序代码的编写过程就非常清晰了。各个模块划分后编写互不干扰又井井有条,给后期测试和修订带来了很大的方便。4.4.4、实用类的编写系统中共使用了两个实用类InputKeyListener类和Item类,前者的作用是监数值型文本框中输入的数字是否是数值型的,如果不是的则输入不进去。Item类则封装了id属性和name属性,这个类主要用于封装和传递参数信息,这是典型的命令模式的实现。在Dao中会经常使

44、用该类作为方法参数,另外在各个窗体界面中也经常使用该类作组件数据,其中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(Key

45、Event e) String key = -0123456789 + (char) 8;if (key.indexOf(e.getKeyChar() 0) e.consume();注:使用了正则表达式的方法将数值型数据的特征提取了出来。用于匹配数值型数据。4.5、单元测试JUnit是一个单元测试框架,专门用于测试java开发的程序,同类产品还包括Nunit(.Net),CPPUnit(C+),都属于xUnit中的成员。目前JUnit的最新版本是JUnit 4.0,在Eclipse开发工具中已经集成了JUnit的多个版本。在系统的价格和数量输入调整界面中,如果输入的非数值型的字符程序将会抛出N

46、umberFormatException异常,所以要对输入的单价和数量进行数字格式验证,利用按键监听器,监听文本框中的每一次按键,当按键是数字时继续接收输入;反之,当按键不是数字或小数时就取消本次按键的输入。这样就能够有效地屏蔽非数字格式的输入,它比之前的数字格式验证更有效。这些都可以在Junit中编写单元测试类来完成以上试验操作。以下是测试数据库连接的一个单元测试类,代码如下:package com.wyl.unitTest;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;i

47、mport java.sql.Statement;import junit.framework.TestCase;/单元测试类public class UnitTest extends TestCase protected static String dbClassName = com.mysql.jdbc.Driver;protected static String dbUrl = jdbc:mysql:/localhost:3306/stock_sell_storage?useUnicode=true&characterEncoding=GB2312;protected static St

48、ring dbUser = root;protected static String dbPwd = root;protected static Connection conn=null;protected static Statement stmt=null;statictryClass.forName(dbClassName);conn=DriverManager.getConnection(dbUrl, dbUser, dbPwd);stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_R

49、EAD_ONLY);catch(Exception e)e.printStackTrace();public void testJDBC() throws Exceptionif(conn=null)System.out.println(XXXX);elseSystem.out.println(YYYYY);int i=0;ResultSet rs=conn.createStatement().executeQuery(select * from user);while(rs.next()i+;System.out.println(rs.getString(i);第5章、用户手册5.1、系统启

50、动、登录与退出5.1.1、系统启动与登录在MyEclipse中运行程序,成功运行后的界面如图5.1所示:图5.1: 登录界面在相应文本框内输入用户名和密码后,点击“确定”按钮或回车,如果用户名和密码不正确则提示用户名和密码输入不正确。否则进入系统主界面。如图5.2:图5.2: 主界面5.1.2、系统退出停止使用系统可以点击“系统管理”中的 “退出系统”按钮便可退出系统。5.2、进货管理在此模块中包含了进货管理的基本业务处理,具体包括进货单管理、进货退货管理、两个窗体。如下图5.3:图5.3: 进货管理模块图下面就该模块中的两大功能进行一一介绍:5.2.1、进货单管理点击“进货单”按钮,即可弹出

51、进货单管理界面,如图5.4:图5.4: 进货单管理界面在对应的文本框中输入相应的进货信息,在单价和数量文本框中添加了事件监听类,如果输入的不是数字的话是输入不进去的3。入货日期格式必须是“年-月-日”形式。如果选中“添加到商品列表”复选框的话则在数据库商品表中添加此次进货单内容。如果有文本框为空则提示图如下图5.5所示,如果日期格式错误则如下图5.6所示:图5.5 提示图5.6 提示进货成功则出现图11提示,如下:图5.7 成功提示5.2.2、进货退货管理进货退货管理的操作界面如下图5.8所示:图5.8: 进货退货管理的操作界面选中相应的条目,在下面的商品简介标签栏上可以看到此商品的简介。点击退货按钮后弹出如下图5.9所示的对话框:图5.9 温馨提示5.3、销售管理5.4.3、销售单管理销售管理的操作界面下有两个按钮,一个是销售单按钮,另一个是销售退货按钮。当点击销售单按钮时出现如下图5.10所示内部窗口:图5.10: 销售单管理的操作界面5.4.3、销售退货 当点击销售退货按钮时出现如下图5.11所示的内部窗口:图5.1

温馨提示

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

评论

0/150

提交评论