Java开发实现图书管理系统(超详细)

article/2025/10/10 19:57:21

本文用Java代码实现图书代码管理系统,有些地方可能会有纰漏,希望各位大佬鉴赏!!

文章目录

  • 文章目录

    一、Java实现图书管理系统

    1.1创建book包

    二、创建图书管理系统的操作包

    2.1创建Operation接口

    三、创建User包

    3.1创建User类

    四、主函数的实现


一、Java实现图书管理系统

1.1创建book包

首先在book中要创建Book类和BookList类,进行封装图书,在Book类中要有书名,作者,价格,类型和是否被借出图书。在BookList类中是书架对图书的封装,进行图书初始化和对图书设置的各种方法。

Book类的实现

package book;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 13:48*/
public class Book {private String name;//书名private String author;//作者private int price;//价格private String type;//类型private boolean isBorrowed;//是否被借出public Book(){}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;}@Overridepublic String toString() {return "book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +", type='" + type + '\'' +//", isBorrowed=" + isBorrowed +(isBorrowed == true ?  "已经被借出 " :  "未被借出 ")+'}';}}

BookList类的实现

package book;/*** @author xyk的电脑* @version 1.0* @description: 书架* @date 2023/1/24 13:51*/
public class BookList {private static final int DEFAULT_SIZE = 10;private Book[] books = new Book[DEFAULT_SIZE];private int usedSize;//记录当前books数组中 有多少本书public BookList() {books[0] = new Book("三国演义","罗贯中",89,"小说");books[1] = new Book("西游记","吴承恩",78,"小说");books[2] = new Book("红楼梦","曹雪芹",49,"小说");this.usedSize = 3;}public Book getBook(int pos){return this.books[pos];}public void setBook(int pos,Book book){this.books[pos] = book;}public void setBook(Book book){this.books[usedSize] = book;}public int getUsedSize() {return usedSize;}public void setUsedSize(int usedSize) {this.usedSize = usedSize;}
}

二、创建图书管理系统的操作包

2.1创建Operation接口

创建Operation接口来实现对图书的相关具体操作,其中管理员和普通用户的功能不同,需要都来实现Operation接口。

 IOPeration接口的实现

package opera;import book.BookList;public interface IOPeration {void work(BookList bookList);}

AddOperation类的实现

package opera;import book.Book;
import book.BookList;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:01*/
public class AddOperation implements IOPeration{@Overridepublic void work(BookList bookList) {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 book = new Book(name,author,price,type);int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book tmp = bookList.getBook(i);if (tmp.getName().equals(name)) {System.out.println("已经存在这本书了");return;}}bookList.setBook(book);//修改usedSizebookList.setUsedSize(currentSize+1);}
}

BrrowOperation类的实现

package opera;import book.Book;
import book.BookList;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:05*/
public class BrrowOperation implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("输入你要借阅的图书");Scanner scanner = new Scanner(System.in);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.isBorrowed()){book.setBorrowed(true);System.out.println("借阅成功");return;}}}
}

DelOperation类的实现

package opera;import book.Book;
import book.BookList;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:03*/
public class DelOpertaion implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("删除图书");System.out.println("请输入你要删除的图书名字");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();int currentSize = bookList.getUsedSize();int index = -1;for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);if (book.getName().equals(name)){index = i;break;}}//挪动数据for (int j = index; j < currentSize-1; j++) {Book book = bookList.getBook(j+1);bookList.setBook(j,book);}//修改sizebookList.setUsedSize(currentSize-1);//最后置为nullbookList.setBook(currentSize-1,null);}
}

ExitOperation类的实现

package opera;import book.BookList;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:04*/
public class ExitOperation implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("退出系统!");System.exit(0);}
}

FindOperation类的实现

package opera;import book.Book;
import book.BookList;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:01*/
public class FindOperation implements IOPeration {@Overridepublic void work(BookList bookList) {System.out.println("请输入书名: ");Scanner scanner = new Scanner(System.in);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("没有这本书!");}
}

ReturnOperation类的实现

package opera;import book.Book;
import book.BookList;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:05*/
public class ReturnOperation implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("输入你要归还的图书");Scanner scanner = new Scanner(System.in);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.isBorrowed()){book.setBorrowed(false);System.out.println("归还成功");return;}}}
}

ShowOperation类的实现

package opera;import book.Book;
import book.BookList;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 14:04*/
public class ShowOperation implements IOPeration{@Overridepublic void work(BookList bookList) {int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);System.out.println(book);}}
}

三、创建User包

3.1创建User类

创建抽象类User来实现区别管理员和用户的主要功能。

package user;import book.Book;
import book.BookList;
import opera.IOPeration;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 13:57*/
public abstract class User {protected String name;protected IOPeration[] ioPerations;public User(String name){this.name = name;}public abstract int menu();public void doWork(int choice, BookList bookList){this.ioPerations[choice].work(bookList);}
}

NormalUser类的实现

package user;import opera.*;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 13:58*/
public class NormalUser extends User{public NormalUser(String name) {super(name);this.ioPerations = new IOPeration[]{new ExitOperation(),new FindOperation(),new BrrowOperation(),new ReturnOperation()};}public int menu(){System.out.println("******************************");System.out.println("hello "+name+ "欢迎来到图书小练习");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 choice = scanner.nextInt();return choice;}
}

AdminUser类的实现

package user;import opera.*;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 13:57*/
public class AdminUser extends User{public AdminUser(String name) {super(name);this.ioPerations = new IOPeration[]{new ExitOperation(),new FindOperation(),new AddOperation(),new DelOpertaion(),new ShowOperation()};}public int menu(){System.out.println("******************************");System.out.println("hello "+name+" 欢迎来到图书小练习");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 choice = scanner.nextInt();return choice;}
}

四、主函数的实现

在主函数中来进行图书管理系统的操作。

import book.Book;
import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;import java.util.Scanner;/*** @author xyk的电脑* @version 1.0* @description: TODO* @date 2023/1/24 13:44*/
public class Main {public static User login(){System.out.println("请输入你的姓名:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();System.out.println("请输入你的身份:1->管理员  0->普通用户");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();//根据choice和user来确定调用哪个对象的操作user.doWork(choice, bookList);}}
}

http://chatgpt.dhexx.cn/article/h8lbqpSB.shtml

相关文章

Java实现图书管理系统(新手友好)

图书管理系统 一、初识工作二、具体实现三、代码book包Book类BookList类 operation包IOperation接口AddOperationBorrowOperationDelOperationDisplayOperationExitOperationFindOperationReturnOperation user包AdminUserNormalUserUser Main 一、初识工作 我们首先要清楚的是…

图书管理系统【java】

目录 &#x1f947;1.设计背景 &#x1f50e;2.设计思路 &#x1f511;3.book包 &#x1f4d7;3.1 Book类的实现 &#x1f4d5;3.2 BookList类的实现(书架) &#x1f511;4.user包 &#x1f4d9;4.1 User类的实现 &#x1f4d2;4.2 AdminUser&#xff08;管理员&#x…

图书管理系统(Java)

&#x1f4da; 一、前言1.1整体框架 二、book包2.1Book2.2BookList 三、user包3.1、User3.2、Adminuser3.3、Normaluser 四、Operation包4.1、IOperation接口4.2、AddOperattion4.3、ShowOperation4.4、FindOperation4.5、DelOperation4.6、BorrowOperation4.7、ReturnOperatio…

图书管理系统(Java简单版)(完整代码+详解)

目录 详解&#xff1a; BookList类&#xff1a; InOperation接口 User类&#xff08;父类&#xff09; 和 Main类&#xff08;这俩要一起看&#xff09; 完整代码 book包 Book类 BookList类 operation包 AddBook类 BorrowBook类 DeleteBook类 FindBook类 Pr…

用java实现图书管理系统。

在学完java基础篇的时候&#xff0c;安排做了一个综合版的java基础项目&#xff0c;可以把之前学到的知识综合运用。 图书管理系统。 一.项目设计到的知识1.MVC设计模式思想&#xff08;分包&#xff09;>项目分包>MVC简单介绍 2.GUI&#xff08;图形化界面&#xff09;3…

Java实现简易版的【图书管理系统】

目录 &#x1f30e;1.分析图书管理系统的功能 &#x1f30d; 2.在IDEA中进行功能类的创建 &#x1f984;2.1 创建一个名为book的包&#xff0c;里面存放书相关的 &#x1f984; 2.2 创建一个名为Operation的包&#xff0c;里面存放对书的所有操作 &#x1f30e; 3.进行用户…

Java图书管理系统(代码及详解)

图书管理系统在C、C、Java学习中我们都会进行练习来串联我们学习的一些知识以及使用场景&#xff0c;这里跟着我我带大家敲Java版本&#xff01; 结果展示&#xff1a; 这是我们最终实现的图书管理系统&#xff0c;下面我们慢慢来 思路&#xff1a; Java是面向对象的语言特点…

JAVA实现简易的图书管理系统(含过程)

目录 设计背景 成果展示 设计思路 详细代码 book包 Book类 BookList类 operation包 IOperation接口 AddOperation类 BorrowOperation类 DelOperation类 DisplayOperation类 ExitOperation类 ReturnOperation类 user包 User类 Admin类 NormalUser类 Test类…

图书管理系统(Java实现)[附完整代码]

作者&#xff1a;爱塔居的博客_CSDN博客-JavaSE领域博主 专栏&#xff1a;JavaSE 作者专栏&#xff1a;大三学生&#xff0c;希望跟大家一起进步&#xff01; 文章目录 目录 文章目录 一、图书管理系统菜单 二、实现基本框架 三、实现业务 3.1 打印所有图书 3.2 退出系统 3.3 查…

JAVA->实现图书管理系统

目录 一、图书管理系统展示 1.管理员 2.普通用户 ​编辑3.操作 二、图书管理系统基本实现思路 book --- 包 1.Book类 注意&#xff1a; 2.BookList类 注意&#xff1a; Opreration --- 包 Operration接口 1.AddOperation -- 增加图书 注意&#xff1a; 2. BorrowO…

Java实现简单的图书管理系统

图书管理系统 简介知识点类封装包继承接口多态 创建书&#xff08;Book&#xff09;书架&#xff08;BookList&#xff09;主函数&#xff08;Main&#xff09;用户&#xff08;User&#xff09;管理员&#xff08;Administrator&#xff09;接口&#xff08;IOperation&#x…

Java基础之图书管理系统

一&#xff1a;建立信息表 为图书管理人员编写一个图书管理系统&#xff0c;图书管理系统的设计主要是实现对图书的管理和相关操作&#xff0c;包括3个表&#xff1a; 图书信息表——存储图书的基本信息&#xff0c;包括书号、书名、作者、出版社、出版日期、存馆数量、定价等…

Java实现简单图书管理系统

目录 利物浦是冠军&#xff01; 一、图书管理系统的功能 二、图书管理系统的基本实现思路 1、Book包 2、user包 3、operation包 4、利用Main函数来连接所有包 三、图书管理系统的具体实现 1、Book包 &#xff08;1&#xff09;book类 &#xff08;2&#xff09;bookL…

Java实现图书管理系统(超详细解析)

图书管理系统简单实现。图书管理系统基于Java&#xff0c;页面使用jsp实现。 用户进入登录页面&#xff0c;输入账号密码&#xff0c;系统会自动检验账号和密码是否匹配&#xff0c;匹配成功则进入图书管理首页。首页查看图书信息&#xff0c;新增图书信息&#xff0c;删除不需…

Java实现简单的图书管理系统(讲解清晰,代码齐全,能正常运行)

目录 实现的样子 大致思路 代码 &#xff08;按照这个目录创建包&#xff09; 首先是book包下&#xff0c;有两个类 book类 bookList类 然后是operation包下&#xff0c;有7个类和1个接口 AddOperation类 BorrowOperation类 DelOperation类 DisplayOperation类 ExitO…

Java课程设计—— 图书管理系统

1系统需求分析 1.1功能需求分析 本课题根据图书信息管理综合分析&#xff0c;便出于方便管理考虑&#xff0c;将图书信息管理系统的功能总结起来&#xff0c;共需要实现以下几个方面功能: 1.1.1管理图书信息 管理所有图书的基本信息&#xff0c;对图书信息的操作包括添加、…

用Java实现简易的图书管理系统(超详细)

目录 1.设计背景 2.设计思路 3.模块展示及代码演示 3.1 Book类的实现 3.2 BookList类的实现(书架) 3.3 异常类的实现(OperationException) 3.4 用户类的实现 3.5 操作接口的实现(定义规范) 3.6 操作类的具体实现 3.6.1 增加操作 3.6.2 查找操作 3.6.3 删除操作 3.6…

mysql 数组函数_mysql数组函数知识讲解

MySQL的数组函数有很多种&#xff0c;今天给大家介绍的就是mysql数组中的mysql_fetch_array()函数&#xff0c;mysql_fetch_array()函数的代码编写有什么特点呢&#xff1f; MySQL中有很多功能强大的函数&#xff0c;下面为您介绍的函数mysql_fetch_array()属于MySQL数组函数&a…

MySQL聚合函数

一、聚合函数介绍 1、聚合函数作用于一组数据&#xff0c;并对一组数据返回一个值。 2、聚合函数类型 AVG() SUM() MAX() MIN() COUNT() 3、聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。 二、AVG和SUM函数 # AVG函数用于求一组数据的平均值&a…

MySql常用函数大全讲解

MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数&#xff0c;可以简化用户的操作。例如&#xff0c;字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中…