当前位置: 首页 > article >正文

Java---图书管理系统

文章目录

  • 一、main方法
  • 二、用户包
    • 2.1、用户类
    • 2.2、普通用户类
    • 2.3、管理用户
  • 三、书包
    • 3.1、书类
    • 3.2、书架类
  • 四、功能包
    • 4.1、功能接口
    • 4.1、查找功能类
    • 4.2、显示功能类
    • 4.3、新增功能类
    • 4.4、删除功能类
    • 4.5、借阅功能类
    • 4.6、归还功能类
    • 4.7、退出功能类

一、main方法

import Book.Bookshelf;
import User.Adminuser;
import User.User;
import User.Ornuser;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 19:54
 */
public class Main {
    public static User func() {
        System.out.println("请输入你的姓名:");
        Scanner scanner = new Scanner(System.in);
        String nema = scanner.nextLine();

        System.out.println("请选择你的身份:  1 -》管理员     2 -》普通用户");
        int i = scanner.nextInt();
        if(i == 1) {
            return new Adminuser(nema);
        } else {
            return new Ornuser(nema);
        }
    }

    public static void main(String[] args) {
        Bookshelf bookshelf = new Bookshelf();
        User user = func();

        while(true) {
            int i = user.menu();
            user.dowork(i, bookshelf);
        }
    }
}

二、用户包

2.1、用户类

package User;

import Book.Bookshelf;
import Function.Function;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:00
 */
public abstract class User {
    protected String name;
    protected Function[] array;

    public User(String name) {
        this.name = name;
    }

    public abstract void dowork(int pot , Bookshelf bookshelf);

    public abstract int menu();
}

2.2、普通用户类

package User;
import Book.Bookshelf;
import Function.*;
import Function.Function;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:00
 */
public class Ornuser extends User{
    public Ornuser(String name) {
        super(name);
         array = new Function[] {
                 new outfunc(),
                new seekfunc() ,
                new Borrowfunc(),
                new Returnfunc(),

        };
    }

    @Override
    public void dowork(int pot, Bookshelf bookshelf) {
        array[pot].work(bookshelf);
    }

    @Override
    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 i = scanner.nextInt();
        return i;
    }
}

2.3、管理用户

package User;

import Book.Bookshelf;
import Function.Function;
import Function.seekfunc;
import Function.newlyfunc;
import Function.*;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 19:59
 */
public class Adminuser extends User{
    public Adminuser(String name) {
        super(name);
        array = new Function[] {
                new outfunc(),
                new seekfunc() ,
                new newlyfunc() ,
                new delfunc() ,
                new Showfunc() ,

        };
    }
    @Override
    public void dowork(int pot, Bookshelf bookshelf) {
        array[pot].work(bookshelf);
    }

    @Override
    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 i = scanner.nextInt();
        return i;
    }
}

三、书包

3.1、书类

package Book;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:02
 */
public class Book {
    private String name;
    private int price;
    private String author;
    private String type;
    protected Boolean whet;//默认是false,也就是未被借出

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

    public String getName() {
        return name;
    }

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

    public int getPrice() {
        return price;
    }

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

    public String getAuthor() {
        return author;
    }

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

    public String getType() {
        return type;
    }

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

    public Boolean getWhet() {
        return whet;
    }

    public void setWhet(Boolean whet) {
        this.whet = whet;
    }

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

3.2、书架类

package Book;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:08
 */
public class Bookshelf {
    private Book[] books = new Book[10];
    private int num;

    public Bookshelf( ){
        this.num = 3;
        books[0] = new Book("西游记",10,"1","四大名著");
        books[1] = new Book("三国演义",25,"1","四大名著");
        books[2] = new Book("红楼梦",55,"1","四大名著");
    }

    public Book getBooks(int pot) {
        return books[pot];
    }

    public void setBooks(int pot , Book book) {
        books[pot] = book;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
}

四、功能包

4.1、功能接口

package Function;

import Book.Bookshelf;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:19
 */
public interface Function {

    void work(Bookshelf bookshelf);

}

4.1、查找功能类

package Function;

import Book.Book;
import Book.Bookshelf;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:23
 */
public class seekfunc implements Function{
        @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("查找图书");
            System.out.println("请输入你要查找的图书名称:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();

            int num = bookshelf.getNum();
            for (int i = 0; i < num; i++) {
                Book book = bookshelf.getBooks(i);
                if(book.getName().equals(name)) {
                    System.out.println("找到了你需要查找的图书");
                    System.out.println(book);
                    return;
                }
            }
            System.out.println("你需要查找的图书不存在");
    }
}

4.2、显示功能类

package Function;

import Book.Book;
import Book.Bookshelf;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:24
 */
public class Showfunc implements Function{
    @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("显示图书");
        int num = bookshelf.getNum();
        for (int i = 0; i < num; i++) {
            Book book = bookshelf.getBooks(i);
            System.out.println(book);
        }
    }
}

4.3、新增功能类

package Function;

import Book.Book;
import Book.Bookshelf;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 21:04
 */
public class newlyfunc implements Function{
    @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("新增图书");
        System.out.println("请输入你要新增的图书名称:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();

        int num = bookshelf.getNum();
        for (int i = 0; i < num; i++) {
            Book book = bookshelf.getBooks(i);
            if(book.getName().equals(name)) {
                System.out.println("该书已存在,无需再次添加");
                return;
            }
        }
        System.out.println("请输入新增图书作者:");
        String author = scanner.nextLine();

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

        scanner.nextLine();

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

        Book book = new Book(name,price,author,type);
        bookshelf.setBooks(num,book);
        bookshelf.setNum(++num);
        System.out.println("新增图书成功!");
    }
}

4.4、删除功能类

package Function;

import Book.Book;
import Book.Bookshelf;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:25
 */
public class delfunc implements Function{
    @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("删除图书");
        System.out.println("请输入你要删除的图书名称:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();

        int num = bookshelf.getNum();
        int i = 0;
        for (; i < num; i++) {
            Book book = bookshelf.getBooks(i);
            if(book.getName().equals(name)) {
                break;
            }
        }

        if(i >= num) {
            System.out.println("你需要删除的图书不存在");
        } else {
            for (int j = 0; j < num - 1; j++) {
                Book book = bookshelf.getBooks(j + 1);
                bookshelf.setBooks(j , book);
            }
            System.out.println("删除成功");
            bookshelf.setNum(num-1);
        }
    }
}

4.5、借阅功能类

package Function;

import Book.Book;
import Book.Bookshelf;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:26
 */
public class Borrowfunc implements Function{
    @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("借阅图书");
        System.out.println("请输入你要借阅的图书名称:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();

        int num = bookshelf.getNum();
        for (int i = 0; i < num; i++) {
            Book book = bookshelf.getBooks(i);
            if(book.getName().equals(name)) {
                if(book.getWhet() == false) {
                    book.setWhet(true);
                    System.out.println("借阅成功");
                    return;
                } else {
                    System.out.println("该书已被借出,无法再次借阅");
                    return;
                }
            }
        }
        System.out.println("该书不存在");
    }
}

4.6、归还功能类

package Function;

import Book.Book;
import Book.Bookshelf;

import java.util.Scanner;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:27
 */
public class Returnfunc implements Function{
    @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("归还图书");
        System.out.println("请输入你要归还的图书名称:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();

        int num = bookshelf.getNum();
        for (int i = 0; i < num; i++) {
            Book book = bookshelf.getBooks(i);
            if(book.getName().equals(name)) {
                if(book.getWhet() == true) {
                    book.setWhet(false);
                    System.out.println("图书归还成功");
                    return;
                } else {
                    System.out.println("该图书未被借出");
                    return;
                }
            }
        }
        System.out.println("未查找到你需要归还的图书");
    }
}

4.7、退出功能类

package Function;

import Book.Book;
import Book.Bookshelf;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 神舟
 * Date: 2024-11-14
 * Time: 20:28
 */
public class outfunc implements Function{
    @Override
    public void work(Bookshelf bookshelf) {
        //System.out.println("退出系统");
        int num = bookshelf.getNum();
        for (int i = 0; i < num; i++) {
            bookshelf.setBooks(i,null);
        }
        System.exit(0);
    }
}


http://www.kler.cn/a/396031.html

相关文章:

  • windows tomcat 报错后如何让窗口不闪退
  • 鸿蒙 管理应用拥有的状态有Localstorage、Appstorage、PersistentStorage、Environment、用户首选项、持久化方案。
  • 新版Apache tomcat服务安装 Mac+Window双环境(笔记)
  • Hadoop 学习心得
  • FlinkPipelineComposer 详解
  • 【mysql的当前读和快照读】
  • Git回到某个分支的某次提交
  • 【Node-Red】使用文件或相机拍摄实现图像识别
  • CSS盒子的定位> (下篇)#固定定位#笔记
  • Java基础知识03(内部类)【24.11.25】
  • nodejs和npm在gitbash中提示Not Found情况的解决办法
  • 嘉立创EDA 画PCB板子经验总结(二)
  • Windows系统 ElasticSearch,Kibana安装
  • 使用spring操作redis
  • idea使用技巧和推荐插件
  • 第六十四周周报 TCN-LSTM
  • SOLIDWORKS Toolbox:一键自动化,让紧固件与零部件管理更高效
  • WPF中Prism框架中 IContainerExtension 和 IRegionManager的作用
  • 什么是网络安全?网络安全包括哪几个方面?
  • ffmpeg视频编码
  • 物联网(RFID)全景:被装信息化监控应用与挑战
  • RA-L开源:Light-LOAM: 基于图匹配的轻量级激光雷达里程计和地图构建
  • Django中文教程
  • 大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析
  • QT6 QML vtk学习之(1)点云在QML窗口中显示
  • 深入理解UML用例图:概念、构成与应用实例