IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> JAVA项目-基于swing实现的图书库存管理系统 -> 正文阅读

[游戏开发]JAVA项目-基于swing实现的图书库存管理系统

要求

图书库存管理系统;
1、新增图书;
2、删除图书;;
3、按照书名查询图书;
4、按照书号查询图书;
5、库存不足,提示用户及时补货

源码链接
运行截图
在这里插入图片描述请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
核心代码
Book类:存放图书基本属性

public class Book {
    //书名
    private String name;
    //书号
    private String bookNo;
    //出版社
    private String press;
    //单价
    private double price;
    //库存
    private int num;
    //作者
    private String work;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBookNo() {
        return bookNo;
    }

    public void setBookNo(String bookNo) {
        this.bookNo = bookNo;
    }

    public String getPress() {
        return press;
    }

    public void setPress(String press) {
        this.press = press;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getWork() {
        return work;
    }

    public void setWork(String work) {
        this.work = work;
    }

    public Book() {
    }

    public Book(String name, String bookNo, String press, double price, int num, String work) {
        this.name = name;
        this.bookNo = bookNo;
        this.press = press;
        this.price = price;
        this.num = num;
        this.work = work;
    }
}

BookFrm:图书窗体

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class BookFrm extends JFrame implements ActionListener {
    private JMenu jMenu1;
    private JMenuBar jMenuBar;
    private JMenuItem jMenuItem1,jMenuItem2,jMenuItem3,jMenuItem4,jMenuItem5;

    public BookFrm(){
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        init();
    }

    public void init(){
        jMenuBar = new JMenuBar();
        jMenu1 = new JMenu();
        jMenuItem1 = new JMenuItem();
        jMenuItem2 = new JMenuItem();
        jMenuItem3 = new JMenuItem();
        jMenuItem4 = new JMenuItem();
        jMenuItem5 = new JMenuItem();

        setTitle("图书信息系统主界面");
        setBounds(100,100,1000,800);

        jMenu1.setText("书店库存");
        jMenuItem1.setText("图书录入");
        jMenu1.add(jMenuItem1);

        jMenuItem2.setText("删除图书");
        jMenu1.add(jMenuItem2);

        jMenuItem3.setText("图书库存");
        jMenu1.add(jMenuItem3);


        jMenuBar.add(jMenu1);
        jMenuItem1.addActionListener(this);
        jMenuItem2.addActionListener(this);
        jMenuItem3.addActionListener(this);
        jMenuItem4.addActionListener(this);
        jMenuItem5.addActionListener(this);

        setJMenuBar(jMenuBar);


    }
    @Override
    public void actionPerformed(ActionEvent e) {


        //监听事件
        if ("图书录入".equals(e.getActionCommand())){
            BookAddFrm bookAddFrm = new BookAddFrm();
            bookAddFrm.setVisible(true);
        }
        if ("删除图书".equals(e.getActionCommand())){
            BookDelFrm bookDelFrm = new BookDelFrm();
            bookDelFrm.setVisible(true);
        }
        if ("图书库存".equals(e.getActionCommand())){
            BookSelFrm bookSelFrm = new BookSelFrm();
            bookSelFrm.setVisible(true);
        }

    }


}

BookAddFrm:新增图书

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Statement;
import javax.swing.*;


/**
 * 管理员添加书籍的类
 *
 */
public class BookAddFrm extends JFrame {
    private JPanel panBtn = new JPanel();
    private JPanel panLab = new JPanel();
    private JLabel jLabel1 = new JLabel("名称:");
    private JLabel jLabel2 = new JLabel("书号:");
    private JLabel jLabel3 = new JLabel("出版社:");
    private JLabel jLabel4 = new JLabel("单价:");
    private JLabel jLabel5 = new JLabel("库存:");
    private JLabel jLabel6 = new JLabel("作者:");
    private JTextField jTextField1 = new JTextField();
    private JTextField jTextField2 = new JTextField();
    private JTextField jTextField3 = new JTextField();
    private JTextField jTextField4 = new JTextField();
    private JTextField jTextField5 = new JTextField();
    private JTextField jTextField6 = new JTextField();
    private JButton jButton1 = new JButton("添加");
    private JButton jButton2 = new JButton("重置");
    private JLabel jLabel = new JLabel();
    BookList bookList = new BookList();
    public BookAddFrm() {
        setTitle("添加书籍");
        setBounds(200,200,400,370);
        setResizable(false); // 不可改变窗口大小

        setLayout(null);
        // 设置单击窗口的【关闭】按钮时将发生相应的动作
        setDefaultCloseOperation(HIDE_ON_CLOSE);

        jLabel.setFont(new Font("宋体", 0, 24));
        jLabel.setHorizontalAlignment(JLabel.CENTER);
        jLabel.setForeground(new Color(255, 51, 51));
        jLabel.setText("添  加  图  书");


        jLabel1.setBounds(90,30,60,30);
        jLabel2.setBounds(90,65,60,30);
        jLabel3.setBounds(90,100,60,30);
        jLabel4.setBounds(90,135,60,30);
        jLabel5.setBounds(90,170,60,30);
        jLabel6.setBounds(90,205,60,30);

        jTextField1.setBounds(150,30,150,30);
        jTextField2.setBounds(150,65,150,30);
        jTextField3.setBounds(150,100,150,30);
        jTextField4.setBounds(150,135,150,30);
        jTextField5.setBounds(150,170,150,30);
        jTextField6.setBounds(150,205,150,30);

        jButton1.setBounds(100,250,80,30);
        jButton2.setBounds(190,250,80,30);

        add(jLabel1);
        add(jLabel2);
        add(jLabel3);
        add(jLabel4);
        add(jLabel5);
        add(jLabel6);

        add(jTextField1);
        add(jTextField2);
        add(jTextField3);
        add(jTextField4);
        add(jTextField5);
        add(jTextField6);

        add(jButton1);
        add(jButton2);

        jButton1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                String name = jTextField1.getText().trim();
                String no = jTextField2.getText().trim();
                String press = jTextField3.getText().trim();
                double price = Double.valueOf(jTextField4.getText().trim());
                int num = Integer.valueOf(jTextField5.getText().trim());
                String work = jTextField6.getText().trim();
                if (name.length()==0){
                    JOptionPane.showMessageDialog(null, "书名不能为空!");
                }
                if (no.length()==0){
                    JOptionPane.showMessageDialog(null, "书号不能为空!");
                }
                if (press.length()==0){
                    JOptionPane.showMessageDialog(null, "出版社不能为空!");
                }
                if (jTextField4.getText().trim().length() == 0){
                    JOptionPane.showMessageDialog(null, "价格不能为空!");
                }
                if (jTextField5.getText().trim().length()==0){
                    JOptionPane.showMessageDialog(null, "数量不能为空!");
                }
                if (work.length()==0){
                    JOptionPane.showMessageDialog(null, "作者不能为空!");
                }
                //计算折扣
                price = discount(price,num);
                //图书类
                Book book = new Book(name,no,press,price,num,work);
                bookList.add(book);
                JOptionPane.showMessageDialog(null, "添加图书成功!");
                //隐藏窗口
                dispose();
            }
        });
        jButton2.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                jTextField1.setText("");
                jTextField2.setText("");
                jTextField3.setText("");
                jTextField4.setText("");
                jTextField5.setText("");
                jTextField6.setText("");
            }
        });

    }

    //新增图书时,折扣方法
    //进货数量>50,9.5折
    //进货数量>100,9.2折
    //进货数量>500,8.5折
    public double discount(double price,int num){
        double p = price;
        if (num>50){
            p = price*0.95;
        }
        if (num>100){
            p = price*0.92;
        }
        if (num>500){
            p = price*0.92;
        }
        return p;
    }

}

BookList:图书集合

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//存放图书类,并对图书类进行操作
public class BookList {
    public static List<Book> books;

    public void init(){
        this.books = new ArrayList<>();
        Book book1 = new Book("数据库", "1101","清华大学", 49.5, 50,"李大仁");
        Book book2 = new Book("java语言", "1102","南京大学", 84.5, 25,"李斯");
        Book book3 = new Book("c++语言", "1103","北京大学", 66.25, 90,"王蓓");
        Book book4 = new Book("需求分析", "1104","北京大学", 66.25, 99,"李明");
        Book book5 = new Book("需求分析2", "1105","北京大学", 66.25, 4,"李明");
        books.add(book1);
        books.add(book2);
        books.add(book3);
        books.add(book4);
        books.add(book5);
    }

    public BookList() {
    }

    //新增图书时,折扣方法
    //进货数量>50,9.5折
    //进货数量>100,9.2折
    //进货数量>500,8.5折
    public double discount(double price,int num){
        double p = price;
        if (num>50){
            p = price*0.95;
        }
        if (num>100){
            p = price*0.92;
        }
        if (num>500){
            p = price*0.92;
        }
        return p;
    }


    //添加图书
    public  void add(Book book) {
        boolean t = false;
        //先判断是否存在,如果存在,则修改库存
        for (Book b : books) {
            if (book.getBookNo().equals(b.getBookNo()) && book.getName().equals(b.getName())){
                t = true;
                double price = book.getPrice();
                int num = book.getNum()+b.getNum();
                b.setPrice(discount(price,num));
                b.setNum(book.getNum()+b.getNum());
                b.setPress(book.getPress());
            }
        }
        if (!t){
            books.add(book);
        }

    }

    //按编号查询图书
    public Book selByNo(String no) {
        Book book = null;
        for (Book s: books) {
            if (no.equals(s.getBookNo())){
                book = s;
            }
        }
        return book;
    }

    //反馈库存少于5的图书列表
    public List<Book> num() {
        List<Book> bookList = null;
        for (Book s: books) {
            if (s.getNum()<5){
                bookList.add(s);
            }
        }
        return bookList;
    }

    //按编号删除图书
    public void remove(String no) {
        for (Book s: books) {
            if (no.equals(s.getBookNo())){
                books.remove(s);
                break;
            }
        }
    }

    //按名字查询图书
    public Book selByName(String name) {
        Book book = null;
        for (Book s: books) {
            if (name.equals(s.getName())){
                book = s;
            }
        }
        return book;
    }

}

源码链接

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 16:02:57  更:2022-05-01 16:05:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 0:49:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码