Java简单图书管理系统

1. 介绍

图书管理系统是一种常见的管理系统,用于管理图书馆或书店的图书信息。本文将介绍一个简单的图书管理系统,用Java语言实现。该系统具有以下功能:

  • 添加图书:管理员可以添加新的图书信息,包括书名、作者、出版社等。
  • 删除图书:管理员可以删除已有的图书信息。
  • 查询图书:用户可以通过关键字查询图书信息,并显示匹配的结果。
  • 借阅图书:用户可以借阅某本图书,并更新图书的借阅状态。
  • 归还图书:用户可以归还已借阅的图书,并更新图书的借阅状态。

2. 系统设计

2.1 类设计

系统主要包含以下几个类:

  • Book类:表示图书,包含图书的基本信息,如书名、作者、出版社等。
  • Library类:表示图书馆,包含图书的集合,以及相关的操作方法,如添加图书、删除图书等。
  • User类:表示用户,包含用户的基本信息,以及借阅图书的方法。
  • Main类:系统的入口类,包含主要的功能方法和用户界面。

2.2 类之间的关系

系统的类之间存在以下关系:

  • Library类包含一个图书集合,可以调用图书的添加、删除等方法。
  • User类可以调用图书馆的查询、借阅、归还等方法。
  • Main类包含图书馆和用户对象,调用其相关方法实现图书管理系统的功能。

2.3 流程图

下图是图书管理系统的流程图:

st=>start: 开始
op1=>operation: 显示菜单
cond1=>condition: 选择菜单项
op2=>operation: 执行对应操作
op3=>operation: 返回菜单
e=>end: 结束

st->op1->cond1
cond1(yes)->op2->op3->op1
cond1(no)->e

3. 代码实现

3.1 Book类

public class Book {
    private String title;
    private String author;
    private String publisher;

    public Book(String title, String author, String publisher) {
        this.title = title;
        this.author = author;
        this.publisher = publisher;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public String getPublisher() {
        return publisher;
    }
}

3.2 Library类

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

public class Library {
    private List<Book> books;

    public Library() {
        this.books = new ArrayList<>();
    }

    public void addBook(Book book) {
        books.add(book);
    }

    public void removeBook(Book book) {
        books.remove(book);
    }

    public List<Book> search(String keyword) {
        List<Book> result = new ArrayList<>();
        for (Book book : books) {
            if (book.getTitle().contains(keyword) || 
                book.getAuthor().contains(keyword) || 
                book.getPublisher().contains(keyword)) {
                result.add(book);
            }
        }
        return result;
    }
}

3.3 User类

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

public class User {
    private String name;
    private List<Book> borrowedBooks;

    public User(String name) {
        this.name = name;
        this.borrowedBooks = new ArrayList<>();
    }

    public void borrowBook(Book book) {
        borrowedBooks.add(book);
    }

    public void returnBook(Book book) {
        borrowedBooks.remove(book);
    }
}

3.4 Main类

import java.util.List;
import java.util.Scanner;

public class Main {
    private static Library library;
    private static User user;

    public static void main(String[] args) {
        library = new Library();
        user = new User("John");

        while (true) {
            displayMenu();
            int choice = getUserChoice();
            executeChoice(choice);
        }
    }

    private static void displayMenu() {
        System.out.println("========= 图书管理系统 =========");
        System.out.println("1. 添加图书");
        System.out.println("2. 删除图书");
        System.out.println("3. 查询图书");
        System.out.println("4. 借阅图书");
        System.out.println("5. 归还图书");