Maison  >  Article  >  Java  >  Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

PHPz
PHPzavant
2023-04-18 13:34:031205parcourir

1. Introduction aux fonctions

Ce système de gestion de bibliothèque est implémenté à l'aide des outils de développement IDEA

Il existe deux identités pour accéder au système de bibliothèque :

1. Identité d'administrateur :

Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

2. identité de l'utilisateur :

Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

Nous avons un total de trois packages, à savoir le livre, les opérations et la mise en œuvre de l'utilisateur.

Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

Deuxièmement, package principal

La fonction principale exécute principalement le processus général et initialisation de la bibliothèque. Connexion au système de gestion de la bibliothèque et sélection d'opérations spécifiques, c'est-à-dire mise en œuvre

import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //1.先初始化图书库,以及初始化:
        BookList bookList = new BookList();

        //2.登录
        User user = login();//向上转型,User接受管理员或者用户对象

        //3.打印菜单,进行具体操作
        while(true) {
            int choice = user.menu();
            user.doOperation(choice,bookList);
        }
    }
}

Fonction de connexion :

 public static User login() {
        System.out.println("请输入你的姓名: ");
        Scanner scanner = new Scanner(System.in);
        String userName = scanner.nextLine();
        System.out.println("请输入你的身份: 1-> 管理员 2-> 用户");
        int choice = scanner.nextInt();
        if(choice == 1) {
            return new AdminUser(userName);
        }else {
            return new NormalUser(userName);
        }
    }

3. Package utilisateur

Comment implémenter un système de gestion de bibliothèque en utilisant du code Java

Parce qu'il existe deux systèmes, les administrateurs et utilisateurs ordinaires, nous partagerons donc les attributs Extraire une classe abstraite User pour réaliser la réutilisation du code

1 User

package user;

import book.BookList;
import operations.IOperation;

public abstract class User {
    protected String name;

    IOperation[] iOperations;
    public User(String name) {
        this.name = name;
    }

    public abstract int menu();

    public void doOperation(int choice, BookList bookList) {
        iOperations[choice].work(bookList);
    }
}

2 AdminUser

package user;

import operations.*;

import java.util.Scanner;
public class AdminUser extends User{

    public AdminUser(String name) {
        super(name);
        this.iOperations = new IOperation[]{
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new DisplayOperation()
        };
    }
    public int menu() {
        System.out.println("欢迎: "+name+"来到图书馆");
        System.out.println("**********************************");
        System.out.println("1. 查找图书");
        System.out.println("2. 新增图书");
        System.out.println("3. 删除图书");
        System.out.println("4. 显示图书");
        System.out.println("0. 退出图书");
        System.out.println("**********************************");
        System.out.println("请输入你的操作: ");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

3. NormalUser

package user;

import operations.*;

import java.util.Scanner;
public class NormalUser extends User{

    public NormalUser(String name) {
        super(name);
        this.iOperations = new IOperation[]{
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation()
        };
    }

    public int menu() {
        System.out.println("欢迎: "+name+"来到图书馆");
        System.out.println("**********************************");
        System.out.println("1. 查找图书");
        System.out.println("2. 借阅图书");
        System.out.println("3. 归还图书");
        System.out.println("0. 退出图书");
        System.out.println("**********************************");
        System.out.println("请输入你的操作: ");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

4. book, et dans le type BookList Initialisez les livres de la bibliothèque

1. Book

package book;
public class Book {
    private String name;//书名
    private String author;//作者
    private int price;//价格
    private String type;//书的类型
    private boolean isBorrowed;//书默认未借出

    public Book(String name, String author, int price, String type) {
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isBorrowed() {
        return isBorrowed;
    }

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

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                ","+ ((isBorrowed == true) ? "该书已借出" : "该书未借出" )+
                '}';
    }
}

2. BookList

package book;
public class BookList {
    public Book[] books = new Book[100];
    public int usedSize;//用来存当前共有多少本书


    /**
     * 事先通过代码块
     *
     * 事先存进去三本书
     */
    {
        books[0] = new Book("java","高斯林",95,"IT");
        books[1] = new Book("C++","姚琳",93,"IT");
        books[2] = new Book("python","马瑟斯",80,"IT");
        this.usedSize = 3;
    }

    public Book getPos(int pos) {
        //获取某一位置的书
        return books[pos];
    }

    public void setBooks(Book book,int pos) {
        //存储一本书 到指定位置
        books[pos] = book;

    }
    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }
}

5. Notre système de gestion de bibliothèque comporte de nombreuses opérations spécifiques afin de faciliter le polymorphisme et les erreurs. vérifiant plus tard, nous implémentons donc une interface IOperation spécifique, et chaque opération spécifique implémente cette interface.

1. Interface IOperation

package operations;

import book.BookList;

public interface IOperation {
    void work(BookList bookList);
}

2 AddOperation

Ajouter des livres :

package operations;

import book.Book;
import book.BookList;

import java.util.Scanner;
public class AddOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("新增图书! ");
        System.out.println("请输入要新增的图书的名字: ");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        System.out.println("请输入要新增的图书的作者: ");
        String author = scanner.nextLine();
        System.out.println("请输入要新增的图书的价格: ");
        int price = scanner.nextInt();
        System.out.println("请输入要新增的图书的类型: ");
        String type = scanner.nextLine();

        Book book = new Book(name,author,price,type);

        //1.获取当前书存放的位置
        int curSize = bookList.getUsedSize();
        //2.把书放在指定位置
        bookList.setBooks(book,curSize);
        //3.更新书的个数
        bookList.setUsedSize(curSize+1);

    }
}

3. 4 . DelOperation

Supprimer les livres :

package operations;

import book.Book;
import book.BookList;

import java.util.Scanner;

public class BorrowOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("借阅图书! ");
        System.out.println("请输入要借阅的图书的名字: ");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        for (int i = 0; i < bookList.getUsedSize(); i++) {
            Book book = bookList.getPos(i);
            if(name.equals(book.getName())) {
                if(book.isBorrowed()) {
                    System.out.println("该书已经被借出! ");
                }else {
                    book.setBorrowed(true);
                    System.out.println("借阅图书成功! ");
                    return;
                }
            }
        }
        System.out.println("没有你要借阅的书! ");
    }
}

5. DisplayOperation

Afficher les livres :

package operations;

import book.Book;
import book.BookList;

import java.util.Scanner;
public class DelOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("删除图书! ");
        System.out.println("请输入要删除的图书: ");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();

        //查找图书是否有此图书,记录下标
        int index = -1;
        for (int i = 0; i < bookList.getUsedSize(); i++) {
            Book book = bookList.getPos(i);
            if(name.equals(book.getName())) {
               index = i;
               break;
            }
        }
        if(index == -1) {
            System.out.println("没有 "+name+"这本书!");
            return;
        }
        for (int i = index; i < bookList.getUsedSize()-1; i++) {
            Book book = bookList.getPos(i+1);
            bookList.setBooks(book,i);
        }

        //删除的书,要置空
        bookList.setBooks(null, bookList.getUsedSize()-1);
        bookList.setUsedSize(bookList.getUsedSize()-1);
    }
}

6. 8. Opération de retour

Retour Retour des livres :

package operations;

import book.Book;
import book.BookList;
public class DisplayOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("显示图书! ");
        for (int i = 0; i < bookList.getUsedSize(); i++) {
            Book book = bookList.getPos(i);
            System.out.println(book);
        }
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer