今天为大家分享一个java语言编写的超市管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。运行程序可以在编辑器中运行 run as applicaiton,或者jar ***.jar运行

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档

主要功能

小型商店进销存管理系统主要的功能有以下几点

1 系统登陆:通过输入密码,登陆到系统中来

2 修改密码:对用户的密码进行修改,修改后密码保存到数据库

3 库存查询:查询商品在库存在的信息

4 商品进货:进货信息包含类型、商品名称、数量等信息

5 进货查询:查询历史上的进货信息。进货信息包括:商品类型、商品名称、数量、进货日期

6 商品销售:销售商品中的信息。销售信息包括:商品类型,商品名称,商品数量,单价,总价、销售日期等信息

7 库存缺货补货提醒:当用户登陆进系统后,商品库存小于指定的库存信息的时候,会弹出提醒。

实现效果

1 界面登陆




JAVA进销存管理代码 进销存开源软件 java_数据库


2 主界面


JAVA进销存管理代码 进销存开源软件 java_数据库_02


3 缺货提醒


JAVA进销存管理代码 进销存开源软件 java_java_03


4 超市进货


JAVA进销存管理代码 进销存开源软件 java_JAVA进销存管理代码_04


5 进货记录查询


JAVA进销存管理代码 进销存开源软件 java_JAVA进销存管理代码_05


6 新货上架


JAVA进销存管理代码 进销存开源软件 java_数据库_06


7 物品销售


JAVA进销存管理代码 进销存开源软件 java_数据库_07


8 修改密码


JAVA进销存管理代码 进销存开源软件 java_JAVA进销存管理代码_08


核心代码

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class MainFrame extends JFrame{
    private static final long serialVersionUID = -8808883923263763897L;
    
    private ClientContext clientContext;
    
    public MainFrame(){
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        init();
    }
    
    public void init(){
        this.setTitle("小型商店进销存管理系统");
        this.setSize(550, 400);
        this.setContentPane(createContentPane());
        int windowWidth = this.getWidth(); //获得窗口宽
        int windowHeight = this.getHeight(); //获得窗口高
        Toolkit kit = Toolkit.getDefaultToolkit(); //定义工具包
        Dimension screenSize = kit.getScreenSize(); //获取屏幕的尺寸
        int screenWidth = screenSize.width; //获取屏幕的宽
        int screenHeight = screenSize.height; //获取屏幕的高
        this.setLocation(screenWidth / 2 - windowWidth / 2, screenHeight / 2 - windowHeight / 2);//设置窗口居中显示
        this.setResizable(false);
    }

    private Container createContentPane() {
        JPanel panel = new JPanel(new BorderLayout());
        panel.add(createFunctionPanel(), BorderLayout.CENTER);
        return panel;
    }

    private Component createFunctionPanel() {
        Image image=new ImageIcon(MainFrame.class.getResource("icon/bg.png")).getImage(); 
        JPanel panel = new BackgroundPanel(image);
        Font font16=new Font("微软雅黑", 1, 16);
        
        JButton sale=new JButton("销  售",new ImageIcon(MainFrame.class.getResource("icon/sell.png")));
        sale.setHorizontalTextPosition(SwingConstants.CENTER);
        sale.setVerticalTextPosition(SwingConstants.BOTTOM);
        sale.setBorderPainted(false);
        sale.setFocusPainted(false);
        sale.setContentAreaFilled(false);
        sale.setFocusable(true);
        sale.setMargin(new Insets(180, 10, 0, 30));
        sale.setFont(font16);
        sale.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showSellFrame();
            }
        });
        panel.add(sale);
        
        JButton purchases=new JButton("进  货",new ImageIcon(MainFrame.class.getResource("icon/inventory.png")));
        purchases.setHorizontalTextPosition(SwingConstants.CENTER);
        purchases.setVerticalTextPosition(SwingConstants.BOTTOM);
        purchases.setBorderPainted(false);
        purchases.setFocusPainted(false);
        purchases.setContentAreaFilled(false);
        purchases.setFocusable(true);
        purchases.setMargin(new Insets(180, 10, 0, 30));
        purchases.setFont(font16);
        purchases.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showOrHidePurchaseFrame(true);
            }
        });
        panel.add(purchases);
        
        JButton stock=new JButton("库  存",new ImageIcon(MainFrame.class.getResource("icon/storage.png")));
        stock.setHorizontalTextPosition(SwingConstants.CENTER);
        stock.setVerticalTextPosition(SwingConstants.BOTTOM);
        stock.setBorderPainted(false);
        stock.setFocusPainted(false);
        stock.setContentAreaFilled(false);
        stock.setFocusable(true);
        stock.setMargin(new Insets(180, 10, 0, 30));
        stock.setFont(font16);
        stock.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showOrHideStorageFrame(true);
            }
        });
        panel.add(stock);
        
        JButton sellHistoryBtn=new JButton("销售记录",new ImageIcon(MainFrame.class.getResource("icon/summary.png")));
        sellHistoryBtn.setHorizontalTextPosition(SwingConstants.CENTER);
        sellHistoryBtn.setVerticalTextPosition(SwingConstants.BOTTOM);
        sellHistoryBtn.setBorderPainted(false);
        sellHistoryBtn.setFocusPainted(false);
        sellHistoryBtn.setContentAreaFilled(false);
        sellHistoryBtn.setFocusable(true);
        sellHistoryBtn.setMargin(new Insets(180, 10, 0, 10));
        sellHistoryBtn.setFont(font16);
        sellHistoryBtn.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showSellHistoryFrame();
            }
        });
        panel.add(sellHistoryBtn);
        
        JButton setting=new JButton("修改密码",new ImageIcon(MainFrame.class.getResource("icon/setting.png")));
        setting.setHorizontalTextPosition(SwingConstants.CENTER);
        setting.setVerticalTextPosition(SwingConstants.BOTTOM);
        setting.setBorderPainted(false);
        setting.setFocusPainted(false);
        setting.setContentAreaFilled(false);
        setting.setFocusable(true);
        setting.setMargin(new Insets(180, 10, 0, 10));
        setting.setFont(font16);
        setting.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showModifyPwdFrame(true);
            }
        });
        panel.add(setting);
        
        return panel;
    }

    public static void main(String[] args) {
        MainFrame mf = new MainFrame();
        mf.init();
        mf.setVisible(true);
    }

    public ClientContext getClientContext() {
        return clientContext;
    }

    public void setClientContext(ClientContext clientContext) {
        this.clientContext = clientContext;
    }

}

项目总结

开发一套系统,最重要的是细心,并不是一定要做到面面俱到,在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。