图书管理系统

book包

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) ? "已借出" : "未借出")+
                '}';
    }
}

Booklist 类

package book;

public class Booklist {
    private Book[] books = new Book[10];
    public int usedSize;
    public Booklist(){
         this.books[0] = new Book("三国演义","罗贯中",10,"小说");
         this.books[1] = new Book("西游记","吴承恩",13,"小说");
         this.books[2] = new Book("红楼梦","曹雪芹",11,"小说");
         this.usedSize = 3;
    }



    public Book getBook(int pos) {
        return books[pos];
    }
    public void setBook(int pos,Book book) {
        this.books[pos] = book;
    }

    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }
    public Book[] getBooks(){
        return books;

    }

}

ioperations包

IOPeration接口

package ioperations;

import book.Booklist;

public interface IOPeration {

    void work(Booklist booklist);
}

AddOperation类

package ioperations;

import book.Book;
import book.Booklist;

import java.util.Scanner;

public class AddOperation implements IOPeration{
    public void work(Booklist booklist){
        System.out.println("新增图书");
        //判断书架是否已经满了
        int currentSize = booklist.getUsedSize();
        if(  currentSize == booklist.getBooks().length){
            System.out.println("书架满了,不能放了.....");
            return;
        }
        //构建图书
        Scanner scanner = new Scanner(System.in);

        System.out.println("输入你的书名: ");
        String name = scanner.nextLine();

        System.out.println("请输入你的作者: ");
        String author = scanner.nextLine();

        System.out.println("请输入类型: ");
        String type = scanner.nextLine();

        System.out.println("请输入价格: ");
        int price = scanner.nextInt();

        Book newBook = new Book(name,author,price,type);
       //判断是否已经存在
        for (int i = 0; i < currentSize ; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)){
                System.out.println("这本书已有不能插入");
                return;
            }
        }
        //新增图书
        booklist.setBook(currentSize,newBook);
        booklist.setUsedSize(currentSize+1);
        System.out.println("新增图书成功!!!");
    }
}

BorrowOperation类

package ioperations;

import book.Book;
import book.Booklist;

import java.util.Scanner;

public class BorrowOperation implements IOPeration{
    public void work(Booklist booklist){
        System.out.println("借阅图书");
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你要借阅的书");
        String name = scanner.nextLine();

        int currentSize = booklist.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            Book book = booklist.getBook(i);

            if(book.getName().equals(name)){
                book.setBorrowed(true);
                System.out.println("借阅成功");
                return;
            }
        }
        System.out.println("没有你要找的书");
    }
}

ExitOperation

package ioperations;

import book.Booklist;

public class ExitOperation implements  IOPeration{
    public void work(Booklist booklist){

        System.out.println("退出系统");
        System.exit(0);
    }
}

DelOperation类

package ioperations;
import book.Book;
import book.Booklist;

import java.util.Scanner;

public class FindOperation implements IOPeration{
    public void work(Booklist booklist){

        System.out.println("查找图书.....");
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你的书名");
        String name = scanner.nextLine();
        int currentSize = booklist.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)){
                System.out.println("找到了这本书");
                System.out.println(book);
                return;
            }
        }
        System.out.println("没有找到这本书");
    }
}

FindOperation 类

package ioperations;

import book.Book;
import book.Booklist;

import java.util.Scanner;

public class DelOperation implements IOPeration{
    public void work(Booklist booklist) {
        System.out.println("删除图书");
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你要删除的书");
        String name = scanner.nextLine();

        int currentSize = booklist.getUsedSize();
        int pos = -1;
        //找到这本书
        int i = 0;
        for ( ; i < currentSize; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)){
                pos = i;
               break;
            }
        }
        if(i == currentSize) {
            System.out.println("没有你要删除的图书!");
            return;
        }
        //删除
        for (int j = pos; j < currentSize -1; j++) {
            Book book = booklist.getBook(j+1);
            booklist.setBook(j,book);
        }
        booklist.setBook(currentSize-1,null);
        booklist.setUsedSize(currentSize-1);

    }
}

ReturnOperation类

package ioperations;

import book.Book;
import book.Booklist;

import java.util.Scanner;

public class ReturnOperation implements IOPeration{
    public void work(Booklist booklist){
        System.out.println("归还图书");
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你要归还的书");
        String name = scanner.nextLine();

        int currentSize = booklist.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)){
                book.setBorrowed(false);
                System.out.println("归还成功");
                return;
            }
        }
        System.out.println("没有你要归还的图书");
    }
}

ShowOperation 类

package ioperations;

import book.Book;
import book.Booklist;

public class ShowOperation implements IOPeration{
    public void work(Booklist booklist){
        System.out.println("显示图书");
        int currentSize = booklist.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
              Book book = booklist.getBook(i);
              System.out.println(book);
        }
    }
}

user包

User类

package user;

import book.Booklist;
import ioperations.IOPeration;

public abstract class User {
    protected String name;
    protected IOPeration[] ioperation;
    public User(String name){
        this.name = name;
    }

        public abstract int menu ();
        public void doIoperation ( int choice, Booklist booklist){
        this.ioperation[choice].work(booklist);
      }
    }

AdminUser类

package user;

import ioperations.*;

import java.util.Scanner;

import static java.util.Scanner.*;

public class AdminUser extends User {
    public AdminUser(String name) {
        super(name);
        this.ioperation = new IOPeration[]{
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new ShowOperation(),
        };
    }

    public int menu() {
        System.out.println("************管理员菜单****************");
        System.out.println("欢迎来"+this.name+"到图书管理系统");
        System.out.println("1.查找图书");
        System.out.println("2.新增图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("0.退出图书");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的操作");
        int choice = scanner.nextInt();
        return choice;

    }
}

NormalUser类

package user;

import ioperations.*;

import java.util.Scanner;

public class NormalUser  extends  User {
    public NormalUser(String name) {
        super(name);
        this.ioperation = new IOPeration[]{
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation(),


        };
    }


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

Main类

import book.Booklist;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;

public class Main {
    public static User Login(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你姓名:");
        String name = scanner.nextLine();
        System.out.println("请输入你的身份,1:管理员 2:普通用户");
        int choice = scanner.nextInt();
        if(choice == 1){
            return new AdminUser(name);
        }if(choice == 2){
            return new NormalUser(name);
        }else{
            return null;
        }
    }
    public static void main(String[] args) {
        Booklist booklist = new Booklist();
           User user = Login();
           while(true) user.doIoperation(user.menu(), booklist);
    }
}
相关推荐
蜡笔小新星20 分钟前
Flask项目框架
开发语言·前端·经验分享·后端·python·学习·flask
夏天的味道٥3 小时前
使用 Java 执行 SQL 语句和存储过程
java·开发语言·sql
Fantasywt4 小时前
THREEJS 片元着色器实现更自然的呼吸灯效果
前端·javascript·着色器
IT、木易4 小时前
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。
开发语言·前端·javascript·ecmascript
冰糖码奇朵5 小时前
大数据表高效导入导出解决方案,mysql数据库LOAD DATA命令和INTO OUTFILE命令详解
java·数据库·sql·mysql
好教员好5 小时前
【Spring】整合【SpringMVC】
java·spring
Mr.NickJJ5 小时前
JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件
开发语言·javascript·react.js
浪九天6 小时前
Java直通车系列13【Spring MVC】(Spring MVC常用注解)
java·后端·spring
堕落年代6 小时前
Maven匹配机制和仓库库设置
java·maven
功德+n7 小时前
Maven 使用指南:基础 + 进阶 + 高级用法
java·开发语言·maven