java实现简易版图书管理

首先我们应确定我们的需求:

书,书架

用户分为:普通用户,管理员用户

普通用户的权限:查找图书,借阅图书, 归还图书,退出系统

管理员用户的权限:查找图书,新增图书,删除图书,显示图书,退出系统

Book包存放:Book BookList

Use包存放:User,Puser,ImUser

Operator包存放:Operate,Add,Borrow,Delet,Exit,Find,Rvert,Show

Book类实现:

package Book;

public class Book {
    private String bName;//书名
    private String bAtuthor;//作者
    private double bPrice;//价格
    private boolean fal;//用于判断是否借出

    public Book (String bName, String bAtuthor, Double bPrice) {
        this.bName = bName;
        this.bAtuthor = bAtuthor;
        this.bPrice = bPrice;
    }

    public String getbName() {
        return bName;
    }

    public void setbName(String bName) {
        this.bName = bName;
    }

    public String getbAtuthor() {
        return bAtuthor;
    }

    public void setbAtuthor(String bAtuthor) {
        this.bAtuthor = bAtuthor;
    }

    public double getbPrice() {
        return bPrice;
    }

    public void setbPrice(double bPrice) {
        this.bPrice = bPrice;
    }

    public boolean isFal() {
        return fal;
    }

    public void setFal(boolean fal) {
        this.fal = fal;
    }

    @Override
    public String toString() {
        return "Book{" +
                "bName='" + bName + '\'' +
                ", bAtuthor='" + bAtuthor + '\'' +
                ", bPrice=" + bPrice +
                (fal ? " 已被借出" : " 未被借出") +
                '}';
    }
}

BookList类实现

package Book;

public class BookList {
    private Book[] bookList;
    private int nowSize;

    public BookList () {
        bookList = new Book[10];
        bookList[0] = new Book("西游记","吴承恩",18.8);
        bookList[1] = new Book("三国演义","k=罗贯中",28.8);
        bookList[2] = new Book("红楼梦","曹雪芹",38.8);
        this.nowSize = 3;
    }

    public int getNowSize () {
        return this.nowSize;
    }

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


    public void setBook (int idx,Book book) {
        this.bookList[idx] = book;
    }

    public Book getBook (int idx) {
        return this.bookList[idx];
    }

}

Operate接口实现

package Operate;

import Book.BookList;

public interface Operate {
    public void method (BookList bookList);
}

Add类实现,用户添加书籍

package Operate;

import Book.Book;
import Book.BookList;

import java.util.Scanner;


public class Add implements Operate {
    @Override
    public void method(BookList bookList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要添加的书名:");
        String bName = sc.next();
        System.out.println("请输入作者名:");
        String bAuthor = sc.next ();
        System.out.println("请输入数的价格 :");
        double price = sc.nextDouble();
        Book book = new Book (bName,bAuthor,price);

        int size = bookList.getNowSize();
        bookList.setBook(size,book);

        bookList.setNowSize(size + 1);
    }
}

Delet类代码实现,用于删除书籍

package Operate;

import Book.Book;
import Book.BookList;

import java.util.Scanner;

public class Delet implements Operate {
    @Override
    public void method(BookList bookList) {
        System.out.println("请输入你要删除的书名:");
        Scanner sc = new Scanner(System.in);

        String bName = sc.next ();

        int size = bookList.getNowSize();

        for (int i = 0; i < size; i++) {
            Book book = bookList.getBook(i);

            if (bName.equals (book.getbName())) {
                System.out.println("已找到,信息如下.");
                System.out.println(book);
                for (int j = i; j < size - 1; j++) {//通过覆盖删除该书
                    Book b = bookList.getBook(i + 1);
                    bookList.setBook(j,b);
                }
                bookList.setBook(size - 1,null);
                bookList.setNowSize(size - 1);//将现有大小减一
                System.out.println("已删除");
                return;
            }
        }
        System.out.println("该书不存在");
    }
}

Find类代码实现,用于查找书籍

package Operate;

import Book.Book;
import Book.BookList;

import java.util.Scanner;

public class Find implements Operate {
    @Override
    public void method(BookList bookList) {
        System.out.println("请输入你要查找的书名:");
        Scanner sc = new Scanner(System.in);

        String bName = sc.next ();

        int size = bookList.getNowSize();

        for (int i = 0; i < size; i++) {
            Book book = bookList.getBook(i);

            if (bName.equals (book.getbName())) {
                System.out.println("已找到,信息如下.");
                System.out.println(book);
                return;
            }
        }
        System.out.println("未找到该书");
    }
}

Show类代码实现,用于展现所有书籍信息

package Operate;

import Book.Book;
import Book.BookList;

public class Show implements Operate {
    @Override
    public void method(BookList bookList) {
        int size = bookList.getNowSize();

        for (int i = 0; i < size; i ++) {
            Book b = bookList.getBook(i);
            System.out.println(b);
        }
    }

}

Borrow类代码实现,用于普通用户借书

package Operate;

import Book.Book;
import Book.BookList;

import java.util.Scanner;

public class Borrow implements Operate {
    @Override
    public void method(BookList bookList) {
        System.out.println("请输入你要查找的书名:");
        Scanner sc = new Scanner(System.in);

        String bName = sc.next ();

        int size = bookList.getNowSize();

        for (int i = 0; i < size; i++) {
            Book book = bookList.getBook(i);

            if (bName.equals (book.getbName())) {
                if (book.isFal()) {
                    System.out.println("该书已被借阅");
                } else {
                    book.setFal(true);
                    System.out.println("借阅成功");
                }
                return;
            }
        }
        System.out.println("未找到该书");
    }
}

Revert类代码实现,普通用户归还书

package Operate;

import Book.Book;
import Book.BookList;

import java.util.Scanner;

public class Borrow implements Operate {
    @Override
    public void method(BookList bookList) {
        System.out.println("请输入你要查找的书名:");
        Scanner sc = new Scanner(System.in);

        String bName = sc.next ();

        int size = bookList.getNowSize();

        for (int i = 0; i < size; i++) {
            Book book = bookList.getBook(i);

            if (bName.equals (book.getbName())) {
                if (book.isFal()) {
                    System.out.println("该书已被借阅");
                } else {
                    book.setFal(true);
                    System.out.println("借阅成功");
                }
                return;
            }
        }
        System.out.println("未找到该书");
    }
}

Exit类代码实现

package Operate;

import Book.BookList;

public class Exit implements Operate {
    @Override
    public void method(BookList bookList) {
        System.out.println("已退出");
        int size = bookList.getNowSize();

        for (int i = 0; i < size; i++) {
            bookList.setBook(i,null);
        }
        System.exit(0);
    }
}

User类的实现

package Use;

import Book.BookList;
import Operate.Operate;

public abstract  class User {
    Operate[] operate;

    public abstract  int menu ();

    public void operate (int choice, BookList bookList) {
        operate[choice].method(bookList);
    }
}

Puser类的实现

package Use;

import Operate.Operate;
import Operate.Borrow;
import Operate.Exit;
import Operate.Revert;
import Operate.Find;

import java.util.Scanner;

public class Puser extends User {
    public Puser () {//初始化该用户的权限
        super ();
        operate = new Operate[] {
                new Exit(),
                new Find(),
                new Borrow(),
                new Revert()
        };
    }

    public int menu () {
        System.out.println("欢迎来到图书管理系统");
        System.out.println("1.查找图书");
        System.out.println("2.借阅图书");
        System.out.println("3.归还图书");
        System.out.println("0.退出系统");
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择:》");
        int choice = sc.nextInt ();
        return choice;
    }

}

ImUser类的实现

package Use;

import Operate.Operate;
import Operate.Exit;
import Operate.Show;
import Operate.Delet;
import Operate.Add;
import Operate.Find;

import java.util.Scanner;

public class ImUser extends User {
    public ImUser () {
        super ();
        operate = new Operate[] {
                new Exit(),
                new Find (),
                new Add (),
                new Delet(),
                new Show ()
        };
    }

    public int menu () {
        System.out.println("欢迎来到图书管理系统");
        System.out.println("1.查找图书");
        System.out.println("2.新增图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("0.退出系统");
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择:》");
        int choice = sc.nextInt ();
        return choice;
    }

}

Main的实现

import Book.BookList;
import Use.ImUser;
import Use.Puser;
import Use.User;

import java.util.Scanner;

public class Main {

    public static User login () {
        System.out.println("1:-》管理员登录  2.-》普通用户登录");
        Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt ();
        if (choice == 1) {
            return new ImUser();
        } else {
            return new Puser();
        }
    }

    public static void main(String[] args) {
        User user = login ();//选取登录用户
        BookList bookList = new BookList();

        while (true) {
            int choice = user.menu();//选取具体操作
            user.operate(choice,bookList);//调用该操作
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值