零基础带你学好Javase-实现简单的图书管理系统

目录

一.book包

2.operation包也就是操作包

3.User包也就是用户 包

4.Test主包

5.总结


一.book包

book包底下有两个类

一个是book类,另一个是book list类

具体代码以下实现:

package book;

public class book {
    private String name;
    private int price;
    private String author;
    private String isBrow="未借阅";

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

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

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

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

    public void setBrow(String brow) {
        isBrow = brow;
    }

    public String getName() {
        return name;
    }

    public int getPrice() {
        return price;
    }

    public String getAuthor() {
        return author;
    }

    public String isBrow() {
        return isBrow;
    }

    @Override
    public String toString() {
        return "book{" +
                "name='" + name + '\'' +
                ", price=" + price +
                ", author='" + author + '\'' +
                ", isBrow=" + isBrow +
                '}';
    }
}
package book;

public class Booklist {
    book[] Book=new book[10];//最多存十本书
private int MaxSize;

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

    public Booklist() {
        Book[0]=new book("三国演义",32,"吴承恩");
        Book[1]=new book("水浒传",21,"曹雪芹");
        Book[2]=new book("西游记",21,"大鹏");
        MaxSize=3;
    }
    public book getBook(int pos)
    {
        return Book[pos];
    }

    public int getMaxSize() {
        return MaxSize;
    }

    public void setMaxSize(int maxSize) {
        MaxSize = maxSize;
    }
}


2.operation包也就是操作包

包底下有operation接口以及增删查操作,退出系统操作 和借阅图书操作以及归还图书操作和展示所有图书操作,其中每一个操作都是一个class文件

package Operation;

import book.Booklist;


public interface IOoperation {
      void work(Booklist booklist);//操作


}
package Operation;

import book.Booklist;
import book.book;

import java.util.Scanner;

public class addOperation implements IOoperation {
    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();
         book Book=new book(name,price,author);
         int currentSize=booklist.getMaxSize();
         booklist.setBook(currentSize,Book);
         booklist.setMaxSize(currentSize+1);
        System.out.println("添加书籍成功!");

    }
}
package Operation;

import book.Booklist;

import java.util.Scanner;

public class BorrowOperation implements IOoperation{
    @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.getMaxSize() ; i++) {
            if(booklist.getBook(i).getName().equals(name))

            {
                if( booklist.getBook(i).isBrow().equals("已经借出"))
                {
                    System.out.println("这本书已经被借走了");
                    break;
                }
                else {
                    booklist.getBook(i).setBrow("已经借出");
                    System.out.println("借书成功!");
                    break;
                }
            }
            else
                System.out.println("没有找到这本书");


        }

    }
}
package Operation;

import book.Booklist;

import java.util.Scanner;

public class DelOperation implements IOoperation{
    public void work(Booklist booklist){
        System.out.println("删除图书");
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入要删除书籍的姓名");
        String name=scanner.nextLine();
        for (int i = 0; i <booklist.getMaxSize() ; i++) {
            if(booklist.getBook(i).getName().equals(name)) {
                int index = i;
                booklist.setBook(i, booklist.getBook(booklist.getMaxSize() - 1));
                booklist.setBook(booklist.getMaxSize()-1, null);
                booklist.setMaxSize(booklist.getMaxSize() - 1);
                System.out.println("删除成功");
                break;


            }else{
                System.out.println("没有这本书");
            }


        }

    }
}
package Operation;

import book.Booklist;

public class DisplayOperation implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        System.out.println("展示图书");
        for (int i = 0; i <booklist.getMaxSize() ; i++) {
            System.out.println(booklist.getBook(i));

        }
    }
}
package Operation;

import book.Booklist;

public class ExitOperation implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        System.out.println("退出程序");
        System.exit(0);
    }
}
package Operation;

import book.Booklist;

import java.util.Scanner;

public class FindOperation implements IOoperation{
    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.getMaxSize()-1 ; i++) {
            if (booklist.getBook(i).getName().equals(name)) {
                System.out.println(booklist.getBook(i));
                break;
            }
            else{
                System.out.println("没有找到这本书");
            }

        }
    }
}
package Operation;

import book.Booklist;

import java.util.Scanner;

public class returnOperation implements IOoperation{
    public void work(Booklist booklist){
        System.out.println("归还图书");
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入您要归还的图书书籍的名字");
        String name=scanner.nextLine();
        for (int i = 0; i <booklist.getMaxSize()-1 ; i++) {
            if (booklist.getBook(i).getName().equals(name))
            {
                booklist.getBook(i).setBrow("未借阅");
                System.out.println("归还成功");
                break;
            }
            else
            {
                System.out.println("没有找到这本书");
            }

        }

    }
}

3.User包也就是用户 包

用户包地下有三个class文件一个是最基本的抽象类用户class以及一个普通用户class和一个管理用户class

package Uster;

import Operation.IOoperation;
import book.Booklist;

public abstract class User {
    String name;
    protected IOoperation[] iOperations;
    public User(String name){
        this.name=name;
    }
    public abstract int menu();
    public void doOperation(int choice, Booklist booklist){
        iOperations[choice].work(booklist );
    }
}
package Uster;

import Operation.*;

import java.util.Scanner;

public class NormalUser extends User {
    public NormalUser(String name) {
        super(name);
        this.iOperations=new IOoperation[]{
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new returnOperation()


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

}
package Uster;

import Operation.*;

import java.util.Scanner;

public class AdminUser extends User{
    public AdminUser(String name) {
        super(name);
        this.iOperations=new IOoperation[]{
                new ExitOperation(),
                new FindOperation(),
                new addOperation(),
                new DelOperation(),
                new DisplayOperation()

        };
    }
    public int menu(){
        System.out.println("欢迎"+name+"用户");
        System.out.println("1.查找图书");
        System.out.println("2.增加图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("0.退出系统");
        System.out.println("请输入你的操作:");
        Scanner scanner=new Scanner(System.in);
        int choice=scanner.nextInt();
        return choice;
    }

}

4.Test主包

主函数包含在里面,将所有操作整合在一起,形成一个完整的操作,图书管理系统。

package Test;

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

import java.sql.SQLOutput;
import java.util.Scanner;

public class Test {
    public static User login(){
        System.out.println("请输入您的姓名:");
        Scanner scanner=new Scanner(System.in);
        String name= scanner.nextLine();
        System.out.println("请输入:1->管理员 2->普通用户");
        int choice=scanner.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.doOperation(choice,booklist);


        }
    }
}

 

5.总结

代码写到这里就完成了,有什么问题可以私信问我 


版权声明:本文为qq_53283658原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。