Java 实现简单图书管理系统

java简单实现图书管理系统

要求:简单实现图书的添加、借阅、归还和查看操作
    图书具有 书名、编号、价格、数量 属性

Book图书类

有参构造、无参构造,get、set方法,重写三个方法 hashCode()、equals()、toString()、

package Books;

import java.util.Objects;

/**
 * @author: Mae.W
 */
public class Book {
    private int num;
    private String bookName;
    private int bookNumber;
    private double price;

    public Book(String bookName, int bookNumber, double price, int num) {
        this.bookName = bookName;
        this.bookNumber = bookNumber;
        this.price = price;
        this.num = num;
    }

    public Book() {
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public int getBookNumber() {
        return bookNumber;
    }

    public void setBookNumber(int bookNumber) {
        this.bookNumber = bookNumber;
    }

    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;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Book book = (Book) o;
        return num == book.num && bookNumber == book.bookNumber && Double.compare(book.price, price) == 0 && Objects.equals(bookName, book.bookName);
    }

    @Override
    public int hashCode() {
        return Objects.hash(num, bookName, bookNumber, price);
    }

    @Override
    public String toString() {
        return "Book{" +
                "num=" + num +
                ", bookName='" + bookName + '\'' +
                ", bookNumber=" + bookNumber +
                ", price=" + price +
                '}';
    }
}

BookList类

用来创建一个ArrayList集合,存储数据类型为Book图书类

import java.util.ArrayList;
import java.util.List;

/**
 * @author: Mae.W
 */
public class BookList {
    static public List<Book> books = new ArrayList<>();

    public BookList() {
    }

}

Operation接口
接口中有一个work方法,方便以后各个类实现Operation接口,重写work方法

package Operations.Operation;

/**
 * @author: Mae.W
 */
public interface Operation {
    public void work();
}

AddBook 添加图书类
实现Operation接口,重写work方法 实现图书添加

package Operations.Add;

import Books.Book;
import Books.BookList;
import Operations.Operation.Operation;

import java.util.Scanner;

/**
 * @author: Mae.W
 */
public class AddBook implements Operation {
    @Override
/*    @Test*/
    public void work() {
        Scanner sc = new Scanner(System.in);
        Book book = new Book();
        System.out.println("请输入添加您要添加的书名:");
        String bookName = sc.next();
        book.setBookName(bookName);
        System.out.println("请输入添加您要添加的书的编号:");
        int bookNumber = sc.nextInt();
        book.setBookNumber(bookNumber);
        System.out.println("请输入添加您要添加的书的价格:");
        double price = sc.nextDouble();
        book.setPrice(price);
        System.out.println("请输入添加您要添加的书的数量:");
        int num = sc.nextInt();
        book.setNum(num);
        BookList.books.add(book);
        System.out.println("添加成功!");
        System.out.println("序号:"+BookList.books.size()+"\t"+BookList.books.get(BookList.books.size() - 1));
    }
}

BorrowBook 图书借阅类
实现Operation接口,重写work方法,实现图书借阅

package Operations.Borrow;

import Books.BookList;
import Operations.Operation.Operation;

import java.util.Scanner;

/**
 * @author: Mae.W
 */
public class BorrowBook implements Operation {
    @Override
    public void work() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您要借阅的图书名称:");
        String name = scanner.next();
        boolean isBook = false;
        for (Books.Book book : BookList.books) {
            if (name.equals(book.getBookName())) {
                if (book.getNum() > 0) {
                    book.setNum(book.getNum() - 1);
                    System.out.println("《" + book.getBookName() + "》 借阅成功!\n\t当前库存:"+book.getNum());
                } else {
                    System.out.println("当前图书已被全部借阅");
                }
                isBook = true;
                break;
            }
        }
        if (!isBook) {
            System.out.println("未找到此图书!");
        }
    }
}

图书归还

package Operations.Return;

import Books.BookList;
import Operations.Operation.Operation;

import java.util.Scanner;

/**
 * @author: Mae.W
 */
public class ReturnBook implements Operation {
    @Override
    public void work() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您要归还的图书名称:");
        String name = scanner.next();
        boolean isBook = false;
        for (Books.Book book : BookList.books) {
            if (name.equals(book.getBookName())) {
                book.setNum(book.getNum() + 1);
                System.out.println("《" + book.getBookName() + "》 归还成功!\n\t当前库存:"+book.getNum());
                isBook = true;
                break;
            }
        }
        if (!isBook) {
            System.out.println("未找到此图书!");
        }
    }
}

查看指定图书

package Display;

import Books.BookList;
import Operations.Operation.Operation;

import java.util.Scanner;

/**
 * @author: Mae.W
 */
public class DisplayBook implements Operation {
    @Override
    public void work() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您要查看的图书名称:");
        String name = scanner.next();
        boolean isBook = false;
        for (Books.Book book : BookList.books) {
            if (name.equals(book.getBookName())) {
                System.out.println("《" + book.getBookName() + "》"+":\n\t编号:"+book.getBookNumber()
                        +"\n\t价格:"+book.getPrice()+"\n\t库存:"+book.getNum());
                isBook = true;
                break;
            }
        }
        if (!isBook) {
            System.out.println("未找到此图书!");
        }
    }

查看所有图书

}
package Display;

import Books.BookList;
import Operations.Operation.Operation;

/**
 * @author: Mae.W
 */
public class DisplayAllBooks implements Operation {
    @Override
    public void work() {
        boolean isBook = false;
        int i=1;
        for (Books.Book book : BookList.books) {
            System.out.println(i+"、《" + book.getBookName() + "》" + ":\n\t编号:" + book.getBookNumber()
                    + "\n\t价格:" + book.getPrice() + "\n\t库存:" + book.getNum());
         isBook=true;
         i++;
        }
        if(!isBook){
            System.out.println("当前没有图书!");
        }
    }
}
package Operations.MainOPeration;
/**
 * @author: Mae.W
 */
public class Menu {
    public void menu() {
        System.out.println("---------------------图书管理系统------------------");
        System.out.println("---------------------1、添加图书-------------------");
        System.out.println("---------------------2、借阅图书-------------------");
        System.out.println("---------------------3、归还图书-------------------");
        System.out.println("-----------------4、显示指定图书信息-----------------");
        System.out.println("-----------------5、显示所有图书信息-----------------");
        System.out.println("-----------------------0、退出---------------------");
    }
}

主方法

package Operations.MainOPeration;

import Display.DisplayAllBooks;
import Display.DisplayBook;
import Operations.Add.AddBook;
import Operations.Borrow.BorrowBook;
import Operations.Return.ReturnBook;

import java.util.Scanner;

/**
 * @author: Mae.W
 */
public class Operation {
    public static void main(String[] args) {
        while (true) {
            new Menu().menu();
            int opr = new Scanner(System.in).nextInt();
            if (opr == 1) {
                new AddBook().work();
            }
            if(opr==2){
                new BorrowBook().work();
            }
            if (opr==3){
                new ReturnBook().work();
            }
            if (opr==4){
                new DisplayBook().work();
            }
            if (opr==5){
                new DisplayAllBooks().work();
            }
            if(opr==0){
                break;
            }
        }
    }
}

在这里插入图片描述

在这里插入图片描述

总结

简单实现一下,主要为了复习java的基础知识。
局限性:这个小项目中的java的一些知识没涵盖到,而且没能够和数据库相连接。
下一步主要是学习JDBC方面知识,与数据库相关联,进一步地改进代码。

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mae_strive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值