今天为大家分享一个java语言的超市进销存管理系统,目前系统已经完成了初步功能,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发,下载。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。
主要功能
开发背景
超市的日常管理工作往往是很复杂,很繁琐的,再加上管理的货物种类繁多,因此超市管理必须实现计算机化。超市进销存管理系统是用计算机对超市货物的库存和货物的进出进行管理的一种计算机应用技术,在计算机还未普及之前超市的库存管理都是由工作人员手工书写的方式来操作的,那样很容易出现差错而造成不必要的损失。现在一般的超市都采用计算机进行智能化管理,用计算机作为管理工具可以帮助管理员进行更有效、更快捷的超市库存管理工作。超市进销存管理系统是典型的管理信息系统,其开发主要包括后台数据库的建立和维护以及前端应用系统的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用系统功能完备、易使用等特点
功能要点
小型商店进销存管理系统主要的功能有以下几点
1 系统登陆:通过输入密码,登陆到系统中来
2 修改密码:对用户的密码进行修改,修改后密码保存到数据库
3 库存查询:查询商品在库存在的信息
4 商品进货:进货信息包含类型、商品名称、数量等信息
5 进货查询:查询历史上的进货信息。进货信息包括:商品类型、商品名称、数量、进货日期
6 商品销售和退货:销售商品中的信息。销售信息包括:商品类型,商品名称,商品数量,单价,总价、销售日期等信息
7 库存缺货补货提醒:当用户登陆进系统后,商品库存小于指定的库存信息的时候,会弹出提醒。
8 客户管理:对客户的日常维护操作,包括增加,删除,修改
9 供应商管理:对供应商的日常维护操作,包括增加,删除,修改
运行效果
核心代码
package com.njue.mis.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
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.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import com.njue.mis.common.CommonFactory;
import com.njue.mis.handler.OperatorServicesHandler;
public class LoginFrame extends JFrame implements ActionListener
{
JTextField username;
JPasswordField password;
JButton submit;
JButton cancel;
public LoginFrame()
{
super("小超市进销存管理系统");
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setBounds(screenSize.width / 3, screenSize.height / 3, 330, 230);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
submit = new JButton("确定");
submit.addActionListener(this);
cancel = new JButton("取消");
cancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
loginLayout();
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String usernameString = username.getText();
String passwordString = String.valueOf(password.getPassword());
if (usernameString.trim().length() == 0)
{
JOptionPane.showMessageDialog(null, "用户名不能为空!","警告",JOptionPane.WARNING_MESSAGE);
}
else
if (passwordString.trim().length() == 0)
{
JOptionPane.showMessageDialog(null, "密码不能为空!","警告",JOptionPane.WARNING_MESSAGE);
}
else
{
OperatorServicesHandler operator = CommonFactory
.getOperatorServices();
boolean isPass = operator.loginCheck(usernameString,
passwordString);
if (isPass)
{
MainFrame.username=usernameString;
MainFrame.power=operator.getPower(usernameString);
MainFrame.getMainFrame().setVisible(true);
this.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null, "登陆失败,用户名或密码错误!","警告",JOptionPane.WARNING_MESSAGE);
}
}
}
/**
* 窗体布局
*/
private void loginLayout()
{
JLabel name;
JLabel passwordLabel;
JPanel panel_center, panel_south;
JLabel label;
name = new JLabel("用户名: ", JLabel.RIGHT);
name.setForeground(new Color(0, 128, 255));
passwordLabel = new JLabel("密码: ", JLabel.RIGHT);
passwordLabel.setForeground(new Color(0, 128, 255));
username = new JTextField();
username.setColumns(10);
password = new JPasswordField();
password.setColumns(10);
password.setEchoChar('*');
panel_center = new JPanel();
panel_center.setLayout(new GridLayout(3, 1));
panel_south = new JPanel();
this.setLayout(new BorderLayout());
this.setContentPane(new JPanel()
{
public void paintComponent(Graphics g)
{
setDoubleBuffered(true);
g.drawImage(new ImageIcon(LoginFrame.class.getResource("images/login.jpg"))
.getImage(), 0, 0, null);
}
});
for (int i = 0; i < 13; i++)
{
label = new JLabel();
label.setPreferredSize(new Dimension(600, 1));
this.getContentPane().add(label, BorderLayout.NORTH);
}
panel_center.add(name);
panel_center.add(username);
panel_center.add(passwordLabel);
panel_center.add(password);
label = new JLabel();
label.setPreferredSize(new Dimension(70, 1));
panel_south.add(label);
panel_south.add(submit);
panel_south.add(cancel);
panel_center.setOpaque(false);
panel_south.setOpaque(false);
this.getContentPane().add(panel_center, BorderLayout.EAST);
this.getContentPane().add(panel_south, BorderLayout.SOUTH);
}
}