Java 图书管理系统

发布于:2025-03-27 ⋅ 阅读:(26) ⋅ 点赞:(0)

下面是一个基于控制台的简单图书管理系统实现,使用Java面向对象编程,包含基本的图书增删改查功能。

import java.util.ArrayList;
import java.util.Scanner;

class Book {
    private String id;
    private String title;
    private String author;
    private double price;
    private boolean isBorrowed;

    public Book(String id, String title, String author, double price) {
        this.id = id;
        this.title = title;
        this.author = author;
        this.price = price;
        this.isBorrowed = false;
    }

    // Getters and Setters
    public String getId() {
        return id;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public double getPrice() {
        return price;
    }

    public boolean isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean borrowed) {
        isBorrowed = borrowed;
    }

    @Override
    public String toString() {
        return "ID: " + id + 
               ", 书名: " + title + 
               ", 作者: " + author + 
               ", 价格: " + price + 
               ", 状态: " + (isBorrowed ? "已借出" : "可借阅");
    }
}

class Library {
    private ArrayList<Book> books = new ArrayList<>();

    // 添加图书
    public void addBook(Book book) {
        books.add(book);
        System.out.println("添加成功: " + book.getTitle());
    }

    // 删除图书
    public void removeBook(String id) {
        for (Book book : books) {
            if (book.getId().equals(id)) {
                books.remove(book);
                System.out.println("删除成功: " + book.getTitle());
                return;
            }
        }
        System.out.println("未找到ID为 " + id + " 的图书");
    }

    // 查找图书
    public void findBook(String keyword) {
        boolean found = false;
        for (Book book : books) {
            if (book.getId().contains(keyword) || 
                book.getTitle().contains(keyword) || 
                book.getAuthor().contains(keyword)) {
                System.out.println(book);
                found = true;
            }
        }
        if (!found) {
            System.out.println("未找到相关图书");
        }
    }

    // 借阅图书
    public void borrowBook(String id) {
        for (Book book : books) {
            if (book.getId().equals(id)) {
                if (book.isBorrowed()) {
                    System.out.println("该书已被借出");
                } else {
                    book.setBorrowed(true);
                    System.out.println("借阅成功: " + book.getTitle());
                }
                return;
            }
        }
        System.out.println("未找到ID为 " + id + " 的图书");
    }

    // 归还图书
    public void returnBook(String id) {
        for (Book book : books) {
            if (book.getId().equals(id)) {
                if (book.isBorrowed()) {
                    book.setBorrowed(false);
                    System.out.println("归还成功: " + book.getTitle());
                } else {
                    System.out.println("该书未被借出");
                }
                return;
            }
        }
        System.out.println("未找到ID为 " + id + " 的图书");
    }

    // 显示所有图书
    public void displayAllBooks() {
        if (books.isEmpty()) {
            System.out.println("图书馆暂无图书");
            return;
        }
        System.out.println("====== 图书列表 ======");
        for (Book book : books) {
            System.out.println(book);
        }
    }
}

public class LibraryManagementSystem {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Library library = new Library();
        
        // 初始化一些示例图书
        library.addBook(new Book("B001", "Java编程思想", "Bruce Eckel", 108.0));
        library.addBook(new Book("B002", "Effective Java", "Joshua Bloch", 78.0));
        library.addBook(new Book("B003", "深入理解Java虚拟机", "周志明", 99.0));

        while (true) {
            System.out.println("\n====== 图书管理系统 ======");
            System.out.println("1. 添加图书");
            System.out.println("2. 删除图书");
            System.out.println("3. 查找图书");
            System.out.println("4. 借阅图书");
            System.out.println("5. 归还图书");
            System.out.println("6. 显示所有图书");
            System.out.println("0. 退出系统");
            System.out.print("请选择操作: ");

            int choice = scanner.nextInt();
            scanner.nextLine(); // 消耗换行符

            switch (choice) {
                case 1:
                    System.out.print("输入图书ID: ");
                    String id = scanner.nextLine();
                    System.out.print("输入书名: ");
                    String title = scanner.nextLine();
                    System.out.print("输入作者: ");
                    String author = scanner.nextLine();
                    System.out.print("输入价格: ");
                    double price = scanner.nextDouble();
                    library.addBook(new Book(id, title, author, price));
                    break;
                case 2:
                    System.out.print("输入要删除的图书ID: ");
                    String delId = scanner.nextLine();
                    library.removeBook(delId);
                    break;
                case 3:
                    System.out.print("输入查找关键词(ID/书名/作者): ");
                    String keyword = scanner.nextLine();
                    library.findBook(keyword);
                    break;
                case 4:
                    System.out.print("输入要借阅的图书ID: ");
                    String borrowId = scanner.nextLine();
                    library.borrowBook(borrowId);
                    break;
                case 5:
                    System.out.print("输入要归还的图书ID: ");
                    String returnId = scanner.nextLine();
                    library.returnBook(returnId);
                    break;
                case 6:
                    library.displayAllBooks();
                    break;
                case 0:
                    System.out.println("感谢使用图书管理系统,再见!");
                    scanner.close();
                    System.exit(0);
                default:
                    System.out.println("无效选择,请重新输入");
            }
        }
    }
}

功能说明

1.图书类(Book):

包含图书ID、书名、作者、价格和借阅状态

2.提供基本的getter和setter方法

3.图书馆类(Library):

使用ArrayList管理图书集合

实现添加、删除、查找、借阅、归还和显示所有图书功能

4.主程序(LibraryManagementSystem):

5.提供控制台菜单界面

如何运行

1.将代码保存为LibraryManagementSystem.java

2.编译并运行:

javac LibraryManagementSystem.java
java LibraryManagementSystem

系统功能

1,添加图书

2.删除图书

3.查找图书(支持ID、书名、作者搜索)

4.借阅图书

5.归还图书

6.显示所有图书信息

7.退出系统

扩展建议

如果需要进一步完善该系统,可以考虑

1.使用文件或数据库持久化存储图书数据

2.添加用户登录和管理员权限功能

3.实现图书分类和更复杂的搜索功能

4.添加借阅期限和逾期处理功能

5.使用Swing或JavaFX实现图形界面