返回顶部
首页 > 资讯 > 精选 >如何使用Java实现图书管理系统
  • 345
分享到

如何使用Java实现图书管理系统

2023-07-02 00:07:02 345人浏览 八月长安
摘要

本篇内容介绍了“如何使用Java实现图书管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 功能介绍1.1 使用介绍1.输入姓名2.

本篇内容介绍了“如何使用Java实现图书管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

如何使用Java实现图书管理系统

一. 功能介绍

1.1 使用介绍

1.输入姓名
如何使用Java实现图书管理系统

2.选择身份
如何使用Java实现图书管理系统
3.根据身份打印不同功能菜单
如何使用Java实现图书管理系统

1.2 基本框架

如何使用Java实现图书管理系统


二、具体思路

book(包)
如何使用Java实现图书管理系统
operation(功能包)
如何使用Java实现图书管理系统
user(使用者包)
如何使用Java实现图书管理系统


三、代码实现

book(包)

Book(书类)

package book;public class Book {    private String name;//书名    private String author;//作者    private double price;//价格    private String type;//类型    private boolean state;//书的状态(已借出or未借出)    //对书进行初始化,书的状态不用进行初始化(默认未借出)    public Book(String name, String author, double price, String type) {        this.name = name;        this.author = author;        this.price = price;        this.type = type;        this.state = state;    }    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 double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public boolean isState() {        return state;    }    public void setState(boolean state) {        this.state = state;    }    @Override    public String toString() {        return "[" +                "name='" + name + '\'' +                ", author='" + author + '\'' +                ", price=" + price +                ", type='" + type + '\'' +                ", " + (state == true ? "已借出" : "未借出") +                ']';    }}

BookList(书架类)

package book;public class BookList {    private Book[] books = new Book[10];    private int usedSize;    public BookList() {        books[0] = new Book("三国演义","罗贯中",19.9,"小说");        books[1] = new Book("西游记","吴承恩",29.9,"小说");        books[2] = new Book("红楼梦","曹雪芹",26.9,"小说");        usedSize = 3;    }    public Book getBooks(int pos) {//输入下标获取该下标的这本书        return books[pos];    }    public void setBooks(int pos, Book book) {//输入下标和一本书,在该下标放入一本书        this.books[pos] = book;    }    public int getUsedSize() {        return usedSize;    }    public void setUsedSize(int usedSize) {        this.usedSize = usedSize;    }}

operation(功能包)

IOperation(功能接口)

package operation;import book.BookList;public interface IOperation {    void work(BookList bookList);}

FindOperation(查找图书)

package operation;import book.Book;import book.BookList;import java.util.Scanner;public class FindOperation implements IOperation{    @Override    public void work(BookList bookList) {        System.out.println();        System.out.println("查找图书");        System.out.println("------------------------");        Scanner scanner = new Scanner(System.in);        System.out.print("请输入书的名称:");        String name = scanner.nextLine();        //获取书架中图书数量        int size = bookList.getUsedSize();        //根据名字查找        for (int i = 0; i < size; i++) {            Book book = bookList.getBooks(i);            if (book.getName().equals(name)) {                System.out.println(book);                return;            }        }        System.out.println("未找到该书。");    }}

AddOperation(添加图书)

package operation;import book.Book;import book.BookList;import java.util.Scanner;public class AddOperation implements IOperation{    @Override    public void work(BookList bookList) {        System.out.println();        System.out.println("添加图书");        System.out.println("------------------------");        Scanner scanner = new Scanner(System.in);        System.out.print("请输入书名:");        String name = scanner.nextLine();        System.out.print("请输入作者:");        String author = scanner.nextLine();        System.out.print("请输入书的类型:");        String type = scanner.nextLine();        System.out.print("请输入价格:");        double price = scanner.nextDouble();        Book book = new Book(name, author, price, type);        bookList.setBooks(bookList.getUsedSize(), book);//将书放入书架        bookList.setUsedSize(bookList.getUsedSize()+1);//书籍数量+1    }}

DelOperation(删除图书)

package operation;import book.Book;import book.BookList;import java.util.Scanner;public class DelOperation implements IOperation{    @Override    public void work(BookList bookList) {        System.out.println();        System.out.println("删除图书");        System.out.println("------------------------");        Scanner scanner = new Scanner(System.in);        System.out.print("请输入要删除的书名:");        String name = scanner.nextLine();        //获取书架中现在有几本书        int size = bookList.getUsedSize();        int i = 0;        //根据书名找到这个本书的下标        for (i = 0; i < size; i++) {            Book book = bookList.getBooks(i);            if (book.getName().equals(name)) {                break;            }        }        if (i == size) {            System.out.println("删除失败,未找到该书。");            return;        }        //通过前移将书删除        for (i = 0; i < size - 1; i++) {            bookList.setBooks(i,bookList.getBooks(i + 1));        }        bookList.setUsedSize(bookList.getUsedSize()-1);//书架中图书数量-1        System.out.println("删除成功。");    }}

BorrowOperation(借阅图书)

package operation;import book.Book;import book.BookList;import java.util.Scanner;public class BorrowOperation implements IOperation{    @Override    public void work(BookList bookList) {        System.out.println();        System.out.println("借阅图书");        System.out.println("------------------------");        Scanner scanner = new Scanner(System.in);        System.out.print("请输入要借书的名称:");        String name = scanner.nextLine();        //获取书架中现在有几本书        int size = bookList.getUsedSize();        for (int i = 0; i < size; i++) {            Book book = bookList.getBooks(i);            //判断在书架中是否有这本书            if (book.getName().equals(name)) {                //判断书是否被借走                if (!book.isState()) {                    System.out.println("借阅成功!");                    book.setState(true);//将书的状态改为已借出                    return;                } else {                    System.out.println("借阅失败,该书已被别人借走。");                    return;                }            }        }        System.out.println("借阅失败,未找到该书。");    }}

ReturnOperation(归还图书)

package operation;import book.Book;import book.BookList;import java.util.Scanner;public class ReturnOperation implements IOperation{    @Override    public void work(BookList bookList) {        System.out.println();        System.out.println("归还图书");        System.out.println("------------------------");        Scanner scanner = new Scanner(System.in);        System.out.print("请输入要还书的名称:");        String name = scanner.nextLine();        //获取书架中现在有几本书        int size = bookList.getUsedSize();        for (int i = 0; i < size; i++) {            Book book = bookList.getBooks(i);            //判断在书架中是否有这本书            if (book.getName().equals(name)) {                //判断书是否已被借走                if (book.isState()) {                    System.out.println("归还成功!");                    book.setState(false);//将书的状态改为未借出                    return;                } else {                    System.out.println("归还失败,该书已还未被借走。");                    return;                }            }        }        System.out.println("归还失败,未找到该书。");    }}

DisplayOperation(打印图书信息)

package operation;import book.Book;import book.BookList;public class DisplayOperation implements IOperation{    @Override    public void work(BookList bookList) {        System.out.println();        System.out.println("显示全部图书");        System.out.println("------------------------");        int size = bookList.getUsedSize();        for (int i = 0; i < size; i++) {            Book book = bookList.getBooks(i);            System.out.println(book);        }    }}

ExitOperation(退出系统)

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

user(使用者包)

User(使用者抽象类)

package user;import book.BookList;import operation.IOperation;abstract public class User {    protected String userName;//使用者姓名    protected IOperation[] iOperations;//功能数组    public User(String userName) {        this.userName = userName;    }    public abstract int menu();        //输入选择,调用不同的功能    public void doOperation(int choice, BookList bookList) {        this.iOperations[choice].work(bookList);//动态绑定    }}

AdminUser(管理员)

package user;import operation.*;import java.util.Scanner;public class AdminUser extends User{    public AdminUser(String userName) {        super(userName);        //管理员功能        this.iOperations = new IOperation[] {                new ExitOperation(),                new FindOperation(),                new AddOperation(),                new DelOperation(),                new DisplayOperation()        };    }    @Override    public int menu() {        System.out.println();        System.out.println("hello " + this.userName + " 欢迎来到图书馆");        while(true) {            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.print("请输入你的操作:");            Scanner scanner = new Scanner(System.in);            int choice = scanner.nextInt();            //保证输入数字有效            if (choice > 4 || choice < 0) {                System.out.println("输入有误请重新输入。");            } else {                return choice;            }        }    }}

NORMalUser(普通用户)

package user;import operation.*;import java.util.Scanner;public class NormalUser extends User{    public NormalUser (String userName) {        super(userName);        //用户功能        this.iOperations = new IOperation[] {                new ExitOperation(),                new FindOperation(),                new BorrowOperation(),                new ReturnOperation(),        };    }    @Override    public int menu() {        System.out.println();        System.out.println("hello "+this.userName+" 欢迎来到图书馆");        while(true) {            System.out.println("------------------------");            System.out.println("1.查找图书");            System.out.println("2.借阅图书");            System.out.println("3.归还图书");            System.out.println("0.退出系统");            System.out.println("------------------------");            System.out.print("请输入你的操作:");            Scanner scanner = new Scanner(System.in);            int choice = scanner.nextInt();            //保证输入数字有效            if (choice > 3 || choice < 0) {                System.out.println("输入有误请重新输入。");            } else {                return choice;            }        }    }}

Test类

import book.BookList;import user.AdminUser;import user.NormalUser;import user.User;import java.util.Scanner;public class Test {    public static User login() {        System.out.println("欢迎使用图书管理系统");        Scanner scanner = new Scanner(System.in);        System.out.print("请输入您的姓名:");        String name = scanner.nextLine();        while(true){            System.out.println("-----------------------------");            System.out.println("请选择您的身份:1>管理员 2>普通用户");            System.out.print("请输入:");            int choice = scanner.nextInt();            //保证输入数字有效            if (choice == 1) {                return new AdminUser(name);            } else if (choice == 2) {                return new NormalUser(name);            } else {                System.out.println("输入有误,请重新输入。");            }        }    }    public static void main(String[] args) {        BookList bookList = new BookList();        User user = login();//向上转型        while(true){            int choice = user.menu();            user.doOperation(choice, bookList);        }    }}

四、部分代码(doOperation)解释

主函数中的user.doOperation(choice, bookList);中的doOperation方法比较难理解,我们来解释一下

1.user.引用的可能是两个对象
如何使用Java实现图书管理系统
2.在实例化这对象的时候,在构造方法中,我们已经将iOperations[]准备好了。
如何使用Java实现图书管理系统
3.根据输入下标(例如:2)访问相应对象,再调用work方法。
如何使用Java实现图书管理系统

“如何使用Java实现图书管理系统”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何使用Java实现图书管理系统

本文链接: https://lsjlt.com/news/338707.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Java实现图书管理系统
    本篇内容介绍了“如何使用Java实现图书管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 功能介绍1.1 使用介绍1.输入姓名2....
    99+
    2023-07-02
  • java如何实现图书管理系统
    小编给大家分享一下java如何实现图书管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、背景介绍通过一段时间java编程的学习,需要一个比较综合的实例来进...
    99+
    2023-06-14
  • java实现图书管理系统
    本文通过实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 一、背景介绍 通过一段时间java编程的学习,需要一个比较综合的实例来进行编程的练习,是一个对前...
    99+
    2024-04-02
  • 如何用Java代码实现图书管理系统
    这篇文章主要介绍“如何用Java代码实现图书管理系统”,在日常操作中,相信很多人在如何用Java代码实现图书管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Java代码实现图书管理系统”的疑惑有所...
    99+
    2023-06-29
  • C++如何实现图书管理系统
    本文小编为大家详细介绍“C++如何实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。功能:首先是注册,登录,找回密码和修改密码...
    99+
    2023-06-29
  • C#如何实现图书管理系统
    本文小编为大家详细介绍“C#如何实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#如何实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、设计目的通过模拟图书管理系统,实现以下功能...
    99+
    2023-06-29
  • Java如何实现网上图书馆管理系统
    小编给大家分享一下Java如何实现网上图书馆管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、项目简述功能: 区分为管理员用户和普通用户,普通用户:用户登录,个 人信息修改,图书查询,用户借阅,用户归还,管理员用 ...
    99+
    2023-06-25
  • 怎么用Java实现图书管理系统
    这篇文章主要讲解了“怎么用Java实现图书管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java实现图书管理系统”吧!目录设计准备一、系统开发目的和意义二、系统总体设计主页:系...
    99+
    2023-06-20
  • 如何使用C++编写实现图书管理系统
    这篇文章将为大家详细讲解有关如何使用C++编写实现图书管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下为图书管理人员编写一个图书管理系统,图书管理系统的设计主要是实现对图书的管理和相关操...
    99+
    2023-06-29
  • C++如何使用链表实现图书管理系统
    这篇文章主要为大家展示了“C++如何使用链表实现图书管理系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++如何使用链表实现图书管理系统”这篇文章吧。具体内容如下一、程序实现功能录入书籍:将...
    99+
    2023-06-29
  • 如何使用C++实现图书信息管理系统
    小编给大家分享一下如何使用C++实现图书信息管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下1.题目:类型有:编号:ISBN书名:name价格:price完成如下的功能:①录入:从键盘输入(或从文件读入)...
    99+
    2023-06-29
  • java实现简单图书管理系统
    本文实例为大家分享了java实现简单图书管理系统的具体代码,供大家参考,具体内容如下 JAVA练习的作业,题目如下: 设计一个图书管理系统类和用户类,要求具有以下功能: (1). 查...
    99+
    2024-04-02
  • Java怎么实现图书管理系统
    本篇内容主要讲解“Java怎么实现图书管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么实现图书管理系统”吧!一、项目简述功能包括(管理员和学生角色): 管理员和学生登录,图书管...
    99+
    2023-06-21
  • JAVA实现图书管理系统项目
    目录前言项目需求设计前提设计目标设计结构图功能解读项目实现基本对象的设置通过IO流的写入写出总结前言 相信再每一个学生在学习编程的时候,应该都会写的一个小项目——图书管理系统。为什么...
    99+
    2024-04-02
  • 如何实现C++版图书管理系统
    这篇文章主要介绍了如何实现C++版图书管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下使用介绍图书管理系统源码由两部分组成,第一部分book.h头文件,第二...
    99+
    2023-06-29
  • java实现简单的图书管理系统
    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一、项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的...
    99+
    2024-04-02
  • Java顺序表实现图书管理系统
    本文实例为大家分享了Java顺序表实现图书管理系统的具体代码,供大家参考,具体内容如下 一、简介 实现此项目的目的是巩固并理解前面的知识点:类,抽象类,封装,继承,多态,接口等 二、...
    99+
    2024-04-02
  • Java Web实现简易图书管理系统
    本文实例为大家分享了Java Web实现简易图书管理系统的具体代码,供大家参考,具体内容如下 前言 首先实现的是用户的登录注册,注册成功后自动跳转到图书列表页面,之后实现图书的增删改...
    99+
    2024-04-02
  • C#实现图书管理系统
    本文为大家分享了C#实现图书管理系统课程设计,供大家参考,具体内容如下 一、设计目的 通过模拟图书管理系统,实现以下功能学生账号的注册学生对馆藏图书状况的查询学生借书,还书状态的查询...
    99+
    2024-04-02
  • Java实战之图书管理系统的实现
    目录一、项目运行二、效果图三、核心代码登录控制层图书管理控制层读者管理控制层一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Int...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作