JAVA基础——简易图书管理系统

目录

1 图书管理系统

1.1使用到的知识点

类和对象:定义了Book和Library两个类,其中Book类代表书籍,Library类代表图书馆。

构造方法:Book类有两个构造方法,一个是无参构造方法,另一个是带参数的构造方法,用于初始化书籍对象。

封装:通过私有属性和公共的getter和setter方法,实现了类的封装特性。

重写toString方法:在Book类中重写了toString方法,用于返回书籍的字符串表示形式。

集合:使用ArrayList来存储书籍对象。

1.2 实现的功能及演示

1.2.1 功能界面​编辑

1.2.2 添加书籍

1.2.3 书籍展示

1.2.4 借取书籍

1.2.5 查询书籍

1.3 实现过程

步骤1: 定义Book类,代表书籍对象

步骤2: 构造方法,用于创建Book对象

步骤3: Getter和Setter方法,用于访问和修改属性

步骤4: 重写toString方法,用于返回书籍的字符串表示

步骤5: 定义Library类,代表图书馆

步骤6: 实现添加书籍的方法(方法在Library类中)

步骤7: 实现借书的方法

步骤8: 实现展示所有书籍的方法

步骤9: 实现查找书籍的方法

步骤10: main方法,程序的入口点()

1.4 完整代码

1.4.1 Library类代码

1.4.2 Book类代码:


1 图书管理系统


1.1使用到的知识点

  1. 类和对象:定义了BookLibrary两个类,其中Book类代表书籍,Library类代表图书馆。
  2. 构造方法Book类有两个构造方法,一个是无参构造方法,另一个是带参数的构造方法,用于初始化书籍对象。
  3. 封装:通过私有属性和公共的getter和setter方法,实现了类的封装特性。
  4. 重写toString方法:在Book类中重写了toString方法,用于返回书籍的字符串表示形式。
  5. 集合:使用ArrayList来存储书籍对象。

1.2 实现的功能及演示

图书的添加,删除,查询操作


 

1.2.1 功能界面

1.2.2 添加书籍

1.2.3 书籍展示

1.2.4 借取书籍

1.2.5 查询书籍

1.3 实现过程


步骤1: 定义Book类,代表书籍对象

 public class Book{
// 属性定义
    public String BookName;//书籍名称
    public int ISBN;//书籍编号
    public String BookAuthor;//作者
    public int Number;//书籍数量
}

步骤2: 构造方法,用于创建Book对象

 public class Book{
// 属性定义
    public String BookName;//书籍名称
    public int ISBN;//书籍编号
    public String BookAuthor;//作者
    public int Number;//书籍数量
    
    //步骤2: 构造方法,用于创建Book对象
    public Book() {
    }
    public Book(String bookName, int ISBN, String bookAuthor, int number) {
        // 初始化属性
    }
}

步骤3: Getter和Setter方法,用于访问和修改属性

public class Book{
// 属性定义
    public String BookName;//书籍名称
    public int ISBN;//书籍编号
    public String BookAuthor;//作者
    public int Number;//书籍数量
    
    //步骤2: 构造方法,用于创建Book对象
    public Book() {
    }
    public Book(String bookName, int ISBN, String bookAuthor, int number) {
        // 初始化属性
    }
    
    //步骤3: Getter和Setter方法,用于访问和修改属性
    public String getBookName() {
        return BookName;
    }

    public int getISBN() {
        return ISBN;
    }

    public String getBookAuthor() {
        return BookAuthor;
    }

    public int getNumber() {
        return Number;
    }

    public void setBookName(String bookName) {
        BookName = bookName;
    }

    public void setISBN(int ISBN) {
        this.ISBN = ISBN;
    }

    public void setBookAuthor(String bookAuthor) {
        BookAuthor = bookAuthor;
    }

    public void setNumber(int number) {
        Number = number;
    }
}

步骤4: 重写toString方法,用于返回书籍的字符串表示

public class Book{
// 属性定义
    public String BookName;//书籍名称
    public int ISBN;//书籍编号
    public String BookAuthor;//作者
    public int Number;//书籍数量
    
    //步骤2: 构造方法,用于创建Book对象
    public Book() {
    }
    public Book(String bookName, int ISBN, String bookAuthor, int number) {
        // 初始化属性
    }
    
    //步骤3: Getter和Setter方法,用于访问和修改属性
    public String getBookName() {
        return BookName;
    }

    public int getISBN() {
        return ISBN;
    }

    public String getBookAuthor() {
        return BookAuthor;
    }

    public int getNumber() {
        return Number;
    }

    public void setBookName(String bookName) {
        BookName = bookName;
    }

    public void setISBN(int ISBN) {
        this.ISBN = ISBN;
    }

    public void setBookAuthor(String bookAuthor) {
        BookAuthor = bookAuthor;
    }

    public void setNumber(int number) {
        Number = number;
    }
    
    
    //步骤4: 重写toString方法,用于返回书籍的字符串表示
    @Override
    public String toString() {
        return "Book{" +
                "BookName='" + BookName + '\'' +
                ", ISBN=" + ISBN +
                ", BookAuthor='" + BookAuthor + '\'' +
                ", Number=" + Number +
                '}';
    }
}

步骤5: 定义Library类,代表图书馆

public class Library {
    // 使用ArrayList来存储书籍对象
    public List<Book> book;

    // 构造方法,初始化书籍列表
    public Library(){
        book = new ArrayList<>();
    }

}
步骤6: 实现添加书籍的方法(方法在Library类中)
public void addBook(Book newBook) {
        boolean exists = false;
        for (Book currentBook : book) {
            if (currentBook.getISBN() == newBook.getISBN()) {
                currentBook.setNumber(currentBook.getNumber() + newBook.getNumber());
                exists = true;
                break;
            }
        }
        if (!exists) {
            book.add(newBook);
        }
        System.out.println(exists ? "书籍数量更新成功" : "新书籍添加成功");
    }
步骤7: 实现借书的方法
public void borrow(int isbn) {
        for (int i = 0; i < book.size(); i++) {
            Book bookItem = book.get(i);
            if (bookItem.getISBN() == isbn) {
                if (bookItem.getNumber() > 1) {
                    bookItem.setNumber(bookItem.getNumber() - 1);
                    System.out.println("成功借取编号为" + isbn + "的书,剩余 " + bookItem.getNumber() + " 本");
                } else {
                    System.out.println("借书失败,库存不足");
                }
                return;
            }
        }
        System.out.println("书籍不存在");
    }
步骤8: 实现展示所有书籍的方法
public void displayBook() {
        boolean hasBooks = !book.isEmpty();
        for (Book bookItem : book) {
            System.out.println(bookItem);
        }
        if (hasBooks) {
            System.out.println("执行成功");
        } else {
            System.out.println("没有书籍可以展示");
        }
    }
步骤9: 实现查找书籍的方法
public void FindBook(String BookName){
        for (int i = 0;i<book.size();i++){
            String Name = book.get(i).BookName;
            Book book2 = book.get(i);
            if(Name.equals(BookName)){
                System.out.println(book2);
                System.out.println("找到");
            }else {
                System.out.println("没有找到");
            }
        }
    }

步骤10: main方法,程序的入口点()

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Library library = new Library();
        while (true) {
            // 功能界面 
            System.out.println("1.添加书籍");
            System.out.println("2.全部书籍展示");
            System.out.println("3.借去书籍");
            System.out.println("4.查找书籍");
            System.out.println("请选择要执行的操作");
            
            int option = input.nextInt();
            input.nextLine();
            switch (option){
                case 1:
                    //接受数据并且存到数组里
                    System.out.println("请输入书籍名称");
                    String BookName = input.nextLine();
                    System.out.println("请输入书籍编号");
                    int BookNo = input.nextInt();
                    input.nextLine();
                    System.out.println("请输入书籍作者");
                    String BookAuthor = input.nextLine();
                    System.out.println("请输入书籍数量");
                    int BookNumber = input.nextInt();
                    input.nextLine();
                    Book book1 = new Book(BookName,BookNo,BookAuthor,BookNumber);
                    library.addBook(book1);
                    break;
                case 2:
                    library.displayBook();

                    break;
                case 3:
                    System.out.println("请输入书籍编号");
                    int No = input.nextInt();
                    library.borrow(No);
                    System.out.println("执行成功");
                    break;
                case 4:
                    System.out.println("请输入书籍名称");
                    String BookName1 = input.nextLine();
                    library.FindBook(BookName1);
                    break;

            }

        }
    }

1.4 完整代码
 

1.4.1 Library类代码

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

public class Library {
    public List<Book> book;
    public Library(){
        book = new ArrayList<>();
    }
    public void addBook(Book newBook) {
        boolean exists = false;
        for (Book currentBook : book) {
            if (currentBook.getISBN() == newBook.getISBN()) {
                currentBook.setNumber(currentBook.getNumber() + newBook.getNumber());
                exists = true;
                break;
            }
        }
        if (!exists) {
            book.add(newBook);
        }
        System.out.println(exists ? "书籍数量更新成功" : "新书籍添加成功");
    }
    // 修改 borrow 方法
    public void borrow(int isbn) {
        for (int i = 0; i < book.size(); i++) {
            Book bookItem = book.get(i);
            if (bookItem.getISBN() == isbn) {
                if (bookItem.getNumber() > 1) {
                    bookItem.setNumber(bookItem.getNumber() - 1);
                    System.out.println("成功借取编号为" + isbn + "的书,剩余 " + bookItem.getNumber() + " 本");
                } else {
                    System.out.println("借书失败,库存不足");
                }
                return;
            }
        }
        System.out.println("书籍不存在");
    }

    // 修改 displayBook 方法
    public void displayBook() {
        boolean hasBooks = !book.isEmpty();
        for (Book bookItem : book) {
            System.out.println(bookItem);
        }
        if (hasBooks) {
            System.out.println("执行成功");
        } else {
            System.out.println("没有书籍可以展示");
        }
    }
    public void FindBook(String BookName){
        for (int i = 0;i<book.size();i++){
            String Name = book.get(i).BookName;
            Book book2 = book.get(i);
            if(Name.equals(BookName)){
                System.out.println(book2);
                System.out.println("找到");
            }else {
                System.out.println("没有找到");
            }
        }
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Library library = new Library();
        while (true) {
            System.out.println("1.添加书籍");
            System.out.println("2.全部书籍展示");
            System.out.println("3.借去书籍");
            System.out.println("4.查找书籍");
            System.out.println("请选择要执行的操作");
            int option = input.nextInt();
            input.nextLine();
            switch (option){
                case 1:
                    System.out.println("请输入书籍名称");
                    String BookName = input.nextLine();
                    System.out.println("请输入书籍编号");
                    int BookNo = input.nextInt();
                    input.nextLine();
                    System.out.println("请输入书籍作者");
                    String BookAuthor = input.nextLine();
                    System.out.println("请输入书籍数量");
                    int BookNumber = input.nextInt();
                    input.nextLine();
                    Book book1 = new Book(BookName,BookNo,BookAuthor,BookNumber);
                    library.addBook(book1);
                    break;
                case 2:
                    library.displayBook();

                    break;
                case 3:
                    System.out.println("请输入书籍编号");
                    int No = input.nextInt();
                    library.borrow(No);
                    System.out.println("执行成功");
                    break;
                case 4:
                    System.out.println("请输入书籍名称");
                    String BookName1 = input.nextLine();
                    library.FindBook(BookName1);
                    break;



            }

        }
    }

}

1.4.2 Book类代码:


public class Book {
    public String BookName;
    public int ISBN;
    public String BookAuthor;
    public int Number;

    public Book() {
    }

    public Book(String bookName, int ISBN, String bookAuthor, int number) {
        BookName = bookName;
        this.ISBN = ISBN;
        BookAuthor = bookAuthor;
        Number = number;
    }

    public String getBookName() {
        return BookName;
    }

    public int getISBN() {
        return ISBN;
    }

    public String getBookAuthor() {
        return BookAuthor;
    }

    public int getNumber() {
        return Number;
    }

    public void setBookName(String bookName) {
        BookName = bookName;
    }

    public void setISBN(int ISBN) {
        this.ISBN = ISBN;
    }

    public void setBookAuthor(String bookAuthor) {
        BookAuthor = bookAuthor;
    }

    public void setNumber(int number) {
        Number = number;
    }

    @Override
    public String toString() {
        return "Book{" +
                "BookName='" + BookName + '\'' +
                ", ISBN=" + ISBN +
                ", BookAuthor='" + BookAuthor + '\'' +
                ", Number=" + Number +
                '}';
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值