题目:设计一个Java程序,实现一个简单的图书管理系统。

题目:设计一个Java程序,实现一个简单的图书管理系统。要求如下:

  1. 创建一个Book类,包含图书的标题、作者和ISBN编号。
  2. Book类中,提供一个构造方法来初始化图书对象,并设置和获取图书的属性。
  3. 创建一个Library类,用于存储和管理Book对象。Library类应包含一个ArrayList来存储图书,并提供方法来添加、删除、查找和显示所有图书。
  4. Library类还应该有一个方法来计算图书馆中图书的总数量。
  5. 在主类中,创建一个Library对象,并添加一些图书。然后演示如何添加、删除、查找图书以及计算图书总数量。
  6. 扩展功能:为Library类添加一个方法,根据书名或作者搜索图书,并返回匹配的图书列表。

示例代码及解释:

import java.util.ArrayList;

// Book类定义
class Book {
    private String title; // 图书标题
    private String author; // 作者
    private String isbn; // ISBN编号

    // Book类的构造方法
    public Book(String title, String author, String isbn) {
        this.title = title;
        this.author = author;
        this.isbn = isbn;
    }

    // 设置和获取图书标题的方法
    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return this.title;
    }

    // 设置和获取作者的方法
    public void setAuthor(String author) {
        this.author = author;
    }

    public String getAuthor() {
        return this.author;
    }

    // 设置和获取ISBN编号的方法
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getIsbn() {
        return this.isbn;
    }
}

// Library类定义
class Library {
    private ArrayList<Book> books; // 存储图书的ArrayList

    // Library类的构造方法
    public Library() {
        this.books = new ArrayList<>();
    }

    // 添加图书的方法
    public void addBook(Book book) {
        this.books.add(book);
    }

    // 删除图书的方法
    public void removeBook(Book book) {
        this.books.remove(book);
    }

    // 查找图书的方法
    public Book findBookByTitle(String title) {
        for (Book book : this.books) {
            if (book.getTitle().equalsIgnoreCase(title)) {
                return book;
            }
        }
        return null;
    }

    // 显示所有图书的方法
    public void displayAllBooks() {
        for (Book book : this.books) {
            System.out.println("Title: " + book.getTitle() + ", Author: " + book.getAuthor() + ", ISBN: " + book.getIsbn());
        }
    }

    // 计算图书总数量的方法
    public int countTotalBooks() {
        return this.books.size();
    }

    // 根据书名或作者搜索图书的方法
    public ArrayList<Book> searchBooks(String keyword) {
        ArrayList<Book> matchingBooks = new ArrayList<>();
        for (Book book : this.books) {
            if (book.getTitle().contains(keyword) || book.getAuthor().contains(keyword)) {
                matchingBooks.add(book);
            }
        }
        return matchingBooks;
    }
}

// 主类
public class Main {
    public static void main(String[] args) {
        // 创建Library对象
        Library library = new Library();

        // 添加图书
        Book book1 = new Book("The Catcher in the Rye", "J.D. Salinger", "9780316769488");
        Book book2 = new Book("To Kill a Mockingbird", "Harper Lee", "9780060935467");
        library.addBook(book1);
        library.addBook(book2);

        // 查找图书
        Book foundBook = library.findBookByTitle("To Kill a Mockingbird");
        if (foundBook != null) {
            System.out.println("Found book: " + foundBook.getTitle());
        } else {
            System.out.println("Book not found");
        }

        // 删除图书
        library.removeBook(book1);

        // 显示所有图书
        System.out.println("Displaying all books:");
        library.displayAllBooks();

        // 计算图书总数量
        System.out.println("Total number of books: " + library.countTotalBooks());

        // 根据书名或作者搜索图书
        ArrayList<Book> matchingBooks = library.searchBooks("Lee");
        System.out.println("Matching books:");
        for (Book book : matchingBooks) {
            System.out.println("Title: " + book.getTitle() + ", Author: " + book.getAuthor() + ", ISBN: " + book.getIsbn());
        }
    }
}

解释:

  1. 我们首先定义了一个Book类,它有三个私有属性:title(标题),author(作者)和isbn(ISBN编号)。这个类提供了构造方法以及设置和获取这些属性的方法。
  2. 然后我们定义了一个Library类,它有一个ArrayList<Book>类型的私有属性books,用于存储图书。这个类提供了添加、删除、查找、显示所有图书、计算图书总数量以及根据书名或作者搜索图书的方法。
  3. Main类的main方法中,我们创建了一个Library对象,并添加了两本图书。然后我们演示了如何添加、删除、查找图书,显示所有图书,计算图书总数量以及根据书名或作者搜索图书。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值