1、通过实际调查,要求企业进销存管理系统具有以下功能。界面设计美观大方,方便、快捷、操作灵活。实现强大的进销存管理,包括基本信息、进货、销售和库存管理。能够在不同的操作系统下运行,不局限于特定的平台。提供数据库备份与恢复功能。提供库存盘点功能。提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。二.分析与设计:(1)功能模块划分:本进销存管理系统划分为六个模块,分别为系统登陆模块,系统主窗体设计模块,进货单模块,销售单模块,库存盘点模块和数据库备份与恢复模块,(2)数据库结构描述:企业进销存管理系统需要使用数据库存储和管理进销存过程中的所有信息,本企业进销存管理系统使用Acces
2、s数据库系统作为后台数据库,数据库名称为db_database28。其中包含了14张数据表两个视图。以下是系统主要涉及的六个数据库表:1供应商信息表:主要用于存储供应商详细信息,其结构如下表所示:User表:Handle表:Product表:Stuff表:Yield表:空表等待插入数据。三.系统详细设计文档:1.系统流程图:(1)系统功能结构图:(2)系统业务流程图:(3)系统中的主要类及功能:1.Item公共类:Item公共类是对数据表最常用的ID和name属性的封装,属于swing列表,表格,下拉列表框等组件的赋值。该类重写了toString()方法,在该方法中只输出name属性。但是在获
3、取组件的内容时,获取的是Item类的对象,从该对象中可以获取ID的属性,然后通过该属性到数据库中获取唯一的数据。2.数据模型公共类:数据模型公共类对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中各个模块甚至各个组件使用,数据模型是对数据表所有字段的封装,它是纯粹的模型类,他也要重写toString()方法,另外还要重写hashCode()方法和equal()方法。它主要用于存贮数据,并通过相应的getXXX()方法和setXXX()实现不同属性的访问原则。3.Dao公共类:Dao类实现了数据库的驱动,连接,关闭和多个操作数据库的方法,Dao类不需要创建对象,可以直接调用类中
4、的所有数据库操作方法。Dao类自定义的主要方法有getKhlnfo(Itemitem)方法,主要是获取客户信息,方法的返回值是tKhlnfo的对象,及客户信息的数据模型。getGyslnfo(Itemitem)方法,主要是获取供应商信息,返回值是Gyslnfo类的对象,及供应商数据表的模型对象。getSplnfo(Itemitem)方法,主要用于获取商品信息,返回值是Splnfo类的对象,及商品数据表的数据模型。getLogin(Stringname,Stringpassword)方法主要适用于判断登录用户的用户名与密码是否正确,返回值是boolean类型。insertSelllnfo(TbS
5、ellMainsellMain)方法,主要是添加销售信息到数据库中。restoreOrBackup(Stringsql)方法,此方法是设置数据库的模式为单用户连接模式,这样可以避免数据库恢复或备份时失败。checkLogin(StringuserStr,StringpassStr)方法,用于判断登录用户与密码是否正确。(2)各个模块实现方法描述:1.系统登录模块实现该模块的主要代码如下packagesrc;importjava.awt.AlphaComposite;importjava.awt.GradientPaint;importjava.awt.Graphics;importjava.a
6、wt.Graphics2D;importjava.awt.GridBagConstraints;importjava.awt.GridBagLayout;importjava.awt.Image;importjava.awt.RenderingHints;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjavax.swing
7、.JComponent;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importjavax.swing.UIManager;publicclassAddUser privatestaticfinalStringlogoon=添加用户; privatestaticfinalStringhelpt=添加 privatestaticfinalStringlogooff=退出 privatestaticfinalStringuser=用户: privatestaticfinalStringpassword=密码: privatestat
8、icfinalStringenterpwd=再次输入密码: privatejavax.swing.JTextFielduserText=null; privatejavax.swing.JPasswordFielduserpwd=null; privatejavax.swing.JPasswordFieldenterpassword=null; privatejavax.swing.JPaneljp=newjavax.swing.JPanel() finalstaticlongserialVersionUID=2309585L; publicvoidpaintComponent(Graphic
9、sg) super.paintComponent(g); if(!isOpaque()return; Graphics2Dg2d=(Graphics2D)g; /intrule=AlphaComposite.SRC_OVER; AlphaCompositeopaque=AlphaComposite.SrcOver; /AlphaCompositeblend=AlphaComposite.getInstance(rule,0.6f); /AlphaCompositeset=AlphaComposite.Src; intwidth=getWidth(); intheight=getHeight()
10、; GradientPaintgradientPaint=newGradientPaint(0,0,java.awt.Color.green,width/2,height/2,java.awt.Color.yellow,false); g2d.setComposite(opaque); g2d.setPaint(gradientPaint); g2d.fillRect(0,0,width,height); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF); ; pri
11、vatejavax.swing.JButtonadd=newjavax.swing.JButton(helpt); privatejavax.swing.JButtoncancle=newjavax.swing.JButton(logooff); privateJFramelogo_Frame=newJFrame(logoon); publicAddUser() /TODO自动生成构造函数存根 try UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName(); catch(Exceptionexe)Sys
12、tem.err.print(exe.getMessage(); JFrame.setDefaultLookAndFeelDecorated(true); Toolkittools=logo_Frame.getToolkit(); Imagelogo=tools.getImage(res/logo.jpg); logo_Frame=newJFrame(logoon); logo_Frame.setIconImage(logo); jp.setLayout(newGridBagLayout(); javax.swing.ImageIconpic=newjavax.swing.ImageIcon(r
13、es/logo1.jpg javax.swing.JLabelpicture=newjavax.swing.JLabel(pic); setupComponent(picture,0,0,GridBagConstraints.ABOVE_BASELINE_LEADING,1,true); javax.swing.JLabelusers=newjavax.swing.JLabel(user); setupComponent(users,0,1,1,1,false); javax.swing.JLabelpas=newjavax.swing.JLabel(password); setupCompo
14、nent(pas,0,2,1,1,false); javax.swing.JLabelenpas=newjavax.swing.JLabel(enterpwd); setupComponent(enpas,0,3,1,1,false); userText=newjavax.swing.JTextField(12); userText.requestFocus(); userText.addKeyListener(newKeyListener() publicvoidkeyTyped(KeyEvente) publicvoidkeyReleased(KeyEvente) publicvoidkeyPressed(KeyEvente) if(e.getKeyChar()=KeyEvent.VK_ENTER)&(userText.getText().trim()!=) userpwd.requestFocus(); ); setupC
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1