用java实现一个简单的图书管理系统

首先我们需要实现有关书的两个类

package Book;

public class Book {
    private String name;//名字
    private String price;//价格
    private String author;//作者
    private boolean isBorrow;//是否借出

    public Book() {

    }

    public String getName() {
        return name;
    }

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

    public String getPrice() {
        return price;
    }

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

    public String getAuthor() {
        return author;
    }

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

    public boolean isBorrow() {
        return isBorrow;
    }

    public void setBorrow(boolean borrow) {
        isBorrow = borrow;
    }

    public Book (String name, String price, String author) {
        this.name = name;
        this.price = price;
        this.author = author;
        this.isBorrow = false;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", price='" + price + '\'' +
                ", author='" + author + '\'' +
                ", " + (isBorrow ? "已借出":"未被借出") +
                '}';
    }
}

package Book;

public class BookList  {

    private Book[] books = new Book[10];
    private int size;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public BookList (){
        this.books[0] = new Book("斗破苍穹","20","天蚕土豆");
        this.books[1] = new Book("斗罗大陆","21","唐家三少");
        this.books[2] = new Book("奥特曼打小怪兽","21","小怪兽");

        this.size = 3;
    }

    public void setBook(Book book) {//add
        this.books[size] = book;
        this.size++;
    }

    public String getBook(int i) {//find , del
        return this.books[i].getName();
    }

    public void disA(int i) {//find
        System.out.println(books[i].toString());
    }

    public void setBooks(int pos ,Book book) {//del
        this.books[pos] = book;
    }

    public Book getBooks(int pos) {
        return this.books[pos];
    }

    public void disPlay() {//dis
        for (int i = 0; i < this.size ; i++) {
            System.out.println(books[i].toString());
        }
    }

}

然后需要创建一个接口类,让其他类来继承这个接口类来实现图书馆里简单的操作

package Operation;

import Book.BookList;

public interface IOperation {

  void work(BookList bookList);
}

package Operation;

import Book.Book;
import Book.BookList;

import java.util.Scanner;

public class AddOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        Scanner scan = new Scanner(System.in);
        Book book = new Book();
        System.out.println("输入书名");
        book.setName(scan.nextLine());
        System.out.println("输入价格");
        book.setPrice(scan.nextLine());
        System.out.println("输入作者");
        book.setAuthor(scan.nextLine());
        bookList.setBook(book);
        System.out.println("成功添加");
    }
}
package Operation;

import Book.BookList;

import java.util.Scanner;

public class BorrowOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        Scanner scan = new Scanner(System.in);
        System.out.println("输入要借阅书籍的名称");
        String name = scan.nextLine();
        for (int i = 0; i < bookList.getSize(); i++) {
            if (name.equals(bookList.getBook(i))) {
                if(!bookList.getBooks(i).isBorrow()) {
                    bookList.getBooks(i).setBorrow(true);
                    System.out.println("借阅成功");
                } else {
                    System.out.println("此书已被借阅");
                }
                return;
            }
        }
        System.out.println("没有此书");
    }
}
package Operation;

import Book.Book;
import Book.BookList;

import java.util.Scanner;

public class DelOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        Scanner scan = new Scanner(System.in);
        System.out.println("输入删除书籍的名称");
        String name = scan.nextLine();
        for (int i = 0; i < bookList.getSize(); i++) {
            if(name.equals(bookList.getBook(i))) {
                for (int j = i; j < bookList.getSize(); j++) {
                    Book book = bookList.getBooks(j+1);
                    bookList.setBooks(j,book);
                }
                bookList.setSize(bookList.getSize() - 1);
                System.out.println("删除成功");
                return;
            }
        }
        System.out.println("没有此书");
    }
}
package Operation;

import Book.BookList;

public class DisplayOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        bookList.disPlay();
    }
}
package Operation;

import Book.BookList;

public class ExitOperation implements IOperation {
    @Override
    public void work(BookList bookList) {
        System.out.println("exit");
        System.exit(0);
    }
}
package Operation;

import Book.BookList;

import java.util.Scanner;

public class FindOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        Scanner scan = new Scanner(System.in);
        System.out.println("输入这个书籍得名称");
        String name = scan.nextLine();
        for (int i = 0; i < bookList.getSize(); i++) {
            if(name.equals(bookList.getBook(i))) {
                System.out.println("找到了");
                bookList.disA(i);
                return;
            }
        }
        System.out.println("没有这本书");
    }
}
package Operation;

import Book.BookList;

import java.util.Scanner;

public class ReturnOperation implements IOperation{
    @Override
    public void work(BookList bookList) {

        Scanner scan = new Scanner(System.in);
        System.out.println("输入要借阅书籍的名称");
        String name = scan.nextLine();
        for (int i = 0; i < bookList.getSize(); i++) {
            if (name.equals(bookList.getBook(i))) {
                bookList.getBooks(i).setBorrow(false);
                System.out.println("归还成功");
                return;
            }
        }
        System.out.println("没有此书");
    }
}

使用者user函数

package User;

import Operation.*;

import java.util.Scanner;

public class AdminUser extends User{

    public AdminUser(String name) {
        super(name);
        this.Operations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new DelOperation(),
                new AddOperation(),
                new DisplayOperation(),
        };
    }

    public int menu() {
        Scanner scan = new Scanner(System.in);
        System.out.println(getName() + "欢迎来到图书馆");
        System.out.println("=== 0 退出系统 ==");
        System.out.println("=== 1 查找图书 ==");
        System.out.println("=== 2 删除图书 ==");
        System.out.println("=== 3 新增图书 ==");
        System.out.println("=== 4 显示所有图书 ==");
        int choice = scan.nextInt();
        return choice;
    }
}


package User;

import Operation.*;

import java.util.Scanner;

public class NormalUser extends User {

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


    public int menu() {
        Scanner scan = new Scanner(System.in);
        System.out.println(getName() + "欢迎来到图书馆");
        System.out.println("=== 0 退出系统 ==");
        System.out.println("=== 1 查找图书 ==");
        System.out.println("=== 2 借阅图书 ==");
        System.out.println("=== 3 归还图书 ==");
        int choice = scan.nextInt();
        return choice;
    }
}



package User;

import Operation.*;

import java.util.Scanner;

public class AdminUser extends User{

    public AdminUser(String name) {
        super(name);
        this.Operations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new DelOperation(),
                new AddOperation(),
                new DisplayOperation(),
        };
    }

    public int menu() {
        Scanner scan = new Scanner(System.in);
        System.out.println(getName() + "欢迎来到图书馆");
        System.out.println("=== 0 退出系统 ==");
        System.out.println("=== 1 查找图书 ==");
        System.out.println("=== 2 删除图书 ==");
        System.out.println("=== 3 新增图书 ==");
        System.out.println("=== 4 显示所有图书 ==");
        int choice = scan.nextInt();
        return choice;
    }
}

一个主函数来调用这些

import Book.BookList;
import User.AdminUser;
import User.NormalUser;
import User.User;


import java.util.Scanner;

public class Main {

    public static User login() {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入名字<");
        String name = scan.nextLine();
        System.out.println("请输入你的身份< 1 管理员 0 普通用户");
        int choice = scan.nextInt();

        if(choice == 1) {
            return new AdminUser(name);
        } else  {
            return new NormalUser(name);
        }
    }


    public static void main(String[] args) {
        //准备书籍
        BookList bookList = new BookList();
        //登录
        User user = login();

        while (true) {
            int choice = user.menu();
            //根据选择来确定调用方法
            user.doIOperation(bookList, choice);
        }
    }
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值