运用JavaSE知识实现图书管理系统

这篇具有很好参考价值的文章主要介绍了运用JavaSE知识实现图书管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇图书管理系统是对JavaSE知识总结复习的一个小作业,检测自己对知识的掌握程度。

一.Main函数

public class Main {
    public static User login(){
        System.out.println("输入你的姓名:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        System.out.println("1.管理员 2.普通用户");
        System.out.println("输入你的身份");
        int choice = scanner.nextInt();
        if (choice == 1){
            return new Admin(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);
        }
    }
}

二.用户类

public abstract class User {
    private String name;
    protected IOperation[] iOperations;
    public User(String name){

        this.name = name;
        IOperation[] iOperations;
    }
    public abstract int menu();
    public void doOperation(int choice,BookList bookList){
        IOperation iOperation = iOperations[choice];
        iOperation.work(bookList);
    }
}

三.普通用户类

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

    @Override
    public int menu() {
        System.out.println("*******管理员菜单*********");
        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;
    }
}

四.管理员类

public class Admin extends User{
    public Admin(String name) {
        super(name);
        this.iOperations =new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DeleOperation(),
                new ShouwOperation()
        };
    }

    @Override
    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.退出系统****");
        System.out.println("请输入你的操作:");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

五.图书类

public class Book{
    //书名 作者 价格 类型 是否借出
    private String name;
    private String author;
    private int price;
    private String type;
    private Boolean isBorrowed = false;

    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 getBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(Boolean borrowed) {
        isBorrowed = borrowed;
    }

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

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                ", isBorrowed=" + isBorrowed +
                '}';
    }
}

六.书架类

public class BookList {
    public Book[] books;
    public int usedSize;
    public BookList(){
        this.books = new Book[10];
        books[0] = new Book("三国演义","罗贯中",46,"小说");
        books[1] = new Book("水浒传","施耐庵",37,"小说");
        books[2] = new Book("红楼梦","曹雪芹",76,"小说");
        books[3] = new Book("西游记","吴承恩",88,"小说");
        usedSize = 4;
    }

    public Book getBook(int pos) {
        return books[pos];
    }

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

    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }
}

七.操作类

1.操作接口

public interface IOperation {
    void work(BookList bookList);
    Scanner scanner = new Scanner(System.in);
}

2.增加操作

public class AddOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入你要增加图书的书名");
        String name = scanner.nextLine();
        System.out.println("请输入你要添加书的作者");
        String author = scanner.nextLine();
        System.out.println("请输入你要添加书的价格");
        int price = scanner.nextInt();
        System.out.println("请输入你要添加书的类型");
        scanner.nextLine();
        String type = scanner.nextLine();
        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            if(bookList.getBook(i).getName().equals(name)){
                System.out.println("该书已经存在,无法添加!");
                return;
            }
        }
        //书不存在 进行添加操作
        Book book = new Book(name,author,price,type);
        bookList.setBook(book,currentSize);
        bookList.setUsedSize(currentSize+1);
    }
}

3.删除操作

public class DeleOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入你要删除书的书名:");
        String name = scanner.nextLine();
        int index = -1;
        int i =0;
        int currentSize = bookList.getUsedSize();
        for ( i = 0; i < currentSize; i++) {
            Book book = bookList.getBook(i);
            if (book.getName().equals(name)){
                index = i;
                break;
            }
        }
       if (i >= currentSize){
           System.out.println("要删除的书不存在!");
           return;
       }
        for (int j = index; j < currentSize-1; j++) {
            Book book = bookList.getBook(j+1);
            bookList.setBook(book,j);
        }
        bookList.setBook(null,currentSize);
        bookList.setUsedSize(currentSize-1);
        System.out.println("删除成功!!!");
    }
}

4.查找操作

public class FindOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        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(book);
                return;
            }
        }
        System.out.println("图书馆没有你要寻找的书!");
    }
}

5.展示操作

public class ShouwOperation implements IOperation{
    @Override
    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);
        }
    }
}

6.借阅操作

public class BorrowOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("图书馆的书如下:");
        int currentSzie = bookList.getUsedSize();
        for (int i = 0; i < currentSzie; i++) {
            Book book = bookList.getBook(i);
            System.out.println(book.getName());
        }
        System.out.println("请输入你要外借的图书的书名:");
        String name = scanner.nextLine();
        for (int i = 0; i < currentSzie; i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(name)){
                if (book.getBorrowed()){
                    System.out.println("该书已被借出,换本书吧!");
                    return;
                }else {
                    book.setBorrowed(true);
                    System.out.println("借阅成功");
                    System.out.println("该书的信息如下");
                    System.out.println(book);
                    return;
                }

            }
        }
            System.out.println("你想借阅的图书不存在!");
    }
}

7.归还操作

public class ReturnOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("归还图书");
        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("不存在你要归还的图书!");
    }
}

8.退出系统

public class ExitOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("退出系统!");
        System.exit(0);
    }
}

总结

以上就是图书管理系统的所有知识,有些地方还是需要思考去巧妙地设计使得文章更加简洁明了。冰冻三尺,非一日之寒。水滴石穿,非一日之功。坚持把每一个知识点搞清楚,并进行总结,形成属于自己的知识框架,会让你的学习更加轻松。文章来源地址https://www.toymoban.com/news/detail-763057.html

到了这里,关于运用JavaSE知识实现图书管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图书管理借阅系统【Java简易版】Java三大特征封装,继承,多态的综合运用

    前言 前几篇文章讲到了Java的基本语法规则,今天我们就用前面学到的数组,类和对象,封装,继承,多态,抽象类,接口等做一个图书管理借阅系统。 Java语言是面向对象的,所以首先要分析完成这个图书管理系统,有哪些对象: 👱使用者User 📘书Book 📲操作Operation 使用者

    2024年02月14日
    浏览(44)
  • 【python基础知识】14.图书管理系统的搭建(类与对象实操)

    通过这个项目希望你可以学会用类与实例的方法编写程序,掌握面向对象编程的基本思维,为日后能处理更复杂的代码结构打牢基础。 我曾跟你提过,学Python,做项目是进步最快的。我没说的是:做项目总会遇到种种困难,想不通的逻辑,频频报错的代码。 所以,如果你在今

    2024年02月02日
    浏览(51)
  • 图书管理系统|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

    图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 四、数据库设计 1、实体ER图 五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:

    2024年03月26日
    浏览(90)
  • 【Java】实现图书管理系统

    随着社会的发展和科技的进步,图书馆的规模和藏书量都在不断扩大,图书的管理和维护变得越来越复杂。传统的图书管理方式已经无法满足现代图书馆的需求,因此需要开发一种高效、便捷的图书管理系统来提高图书管理效率和读者的借阅体验。 在这种背景下,我们设计了

    2024年02月20日
    浏览(62)
  • 图书管理系统——链表实现

    实验要求: 定义一个包含图书信息(书号、书名、价格)的顺序表或者链表。要求实现下面功能: 读入相应的图书数据来完成图书信息表的创建。然后,输出图书表中的图书个数,同时逐行输出每本图书的信息。 由于某种原因物价上涨,书店计划提高图书价格,要求计算所有

    2024年02月07日
    浏览(41)
  • 图书管理系统(借还图书)--Java实现(附源码)

    目录 图书管理系统权限 图书管理系统程序框图 图书管理系统架构 管理员执行流程 学生执行流程 详细代码 源码获取 毕设专栏 图书管理系统权限 管理员:具有  1、查找图书 2、增加图书 3、删除图书 4、显示图书 等功能 学生:具有  1、查找图书 2、借阅图书 3、归还图书

    2024年02月08日
    浏览(77)
  • 图书管理系统(C语言实现)

    设计并实现一个简单的图书管理系统 本次实训内容主要在于训练学生的C语言的基本编程能力,通过C语言输入输出、循环语句、子函数设计、数组、结构体等知识点,完成一个简单图书管理系统的设计开发。实现录入图书、删除指定图书、修改指定图书和查询指定图书的基本

    2024年02月12日
    浏览(36)
  • 用python实现简易图书管理系统

    很多图书馆都有自己的图书管理系统,它主要担负的功能有 借书和还书 ,以及图书管理员对图书的操作等。 用户登录/注册—借书/还书/查看图书----(管理员)添加、修改图书信息 txt文件 首先,在任意位置创建一个文件夹,创建以下几个txt文件: bookISDN,ISDN.txt :存储书籍的

    2024年02月08日
    浏览(48)
  • Java 实现图书馆管理系统

    目录 一:创建对象 1.学生类对象Student : 2.图书类对象book : 3.管理员类对象OP: 二.创建主要交互界面MainMenu,并实现主界面功能 1.创建交互界面: 2.实现主界面功能: 三:创建OP管理界面: 1.创建主要交互界面及实现\\\"管理学生\\\"功能OPmenu: (1).交互界面: (2):实现\\\"管理学生\\\"功能: 2.实现\\\"管理

    2024年02月12日
    浏览(49)
  • 智慧图书管理系统架构设计与实现

    随着数字化时代的到来,智慧图书管理系统在图书馆和机构中扮演着重要的角色。一个优秀的图书管理系统不仅需要满足基本的借阅管理需求,还需要具备高效的性能、良好的扩展性和稳定的安全性。本文将讨论智慧图书管理系统的架构设计与实现,以满足现代图书管理的多

    2024年02月20日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包