今天为大家分享一个java语言编写的超市管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。运行程序可以在编辑器中运行 run as applicaiton,或者jar ***.jar运行
系统框架
利用JDK自带的SWING框架开发,不需要安装第三方JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档
主要功能
小型商店进销存管理系统主要的功能有以下几点
1 系统登陆:通过输入密码,登陆到系统中来
2 修改密码:对用户的密码进行修改,修改后密码保存到数据库
3 库存查询:查询商品在库存在的信息
4 商品进货:进货信息包含类型、商品名称、数量等信息
5 进货查询:查询历史上的进货信息。进货信息包括:商品类型、商品名称、数量、进货日期
6 商品销售:销售商品中的信息。销售信息包括:商品类型,商品名称,商品数量,单价,总价、销售日期等信息
7 库存缺货补货提醒:当用户登陆进系统后,商品库存小于指定的库存信息的时候,会弹出提醒。
实现效果
1 界面登陆
2 主界面
3 缺货提醒
4 超市进货
5 进货记录查询
6 新货上架
7 物品销售
8 修改密码
核心代码
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;
}
}
项目总结
开发一套系统,最重要的是细心,并不是一定要做到面面俱到,在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。