java 图书管理系统

java 图书管理系统

这是一个基于Java的图书管理系统,采用面向对象设计。系统包含用户和管理员两种角色,通过多态和接口实现不同操作功能。核心类包括Book(书籍信息)、Bookclass(书架管理)、user(抽象用户类)及其子类guanli(管理员)和putong(普通用户)。系统通过IA接口实现各类功能操作,包括查找、借阅、归还、新增、删除等。采用模块化设计,将不同功能封装为独立类,通过接口数组实现动态绑定。管理员可进行书籍增删操作,普通用户可借阅归还书籍,体现了良好的封装性和扩展性。

架构

在写一个代码时  先想清思路 构建好大概框架  再去写代码

通过建立不同的包 把不同对象给分割开 

一个类就是一个对象  

弄明白操作的是什么

主体代码

package yonghu; import Book.Bookclass; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:03 */ public class ma { //如何调用接受不同对象 t public static user s(){ System.out.println("请输入你的姓名"); Scanner scanner=new Scanner(System.in); String name=scanner.nextLine(); System.out.println(name+"欢迎来到图书管理系统"); System.out.println("请选择相关身份"); System.out.println("1 用户 2 管理者"); int a=scanner.nextInt(); if(a==1){ return new putong(name); }else { return new guanli(name); } } 通过返回不同对象的实例 确定 相关身份 给父类 public static void main(String[] args) { //发生向上转型 多态 动态绑定 user users=s(); // 通过调用父类的方法 动态绑定调用子类 去调用f()用c接收返回值 while (true) { int c = users.f(); Bookclass bookclass = new Bookclass(); users.t(c, bookclass); //通过传选择身份的实例 和书架 进行操作 } } }

book

package Book;

/**
* Created with IntelliJ IDEA.
* Description:
* User: 28931
* Date: 2026-02-24
* Time: 10:48
*/
public class Book {
    public Book(int jiage, String name, String zuozhe) {
        this.jiage = jiage;
        this.name = name;
        this.zuozhe = zuozhe;
    }

    private int jiage;//价格

    public String getName() {
        return name;
    }

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

    private String name;//名字
    private String zuozhe;//作者

    public boolean isZhuangtai() {
        return zhuangtai;
    }

    public void setZhuangtai(boolean zhuangtai) {
        this.zhuangtai = zhuangtai;
    }

    private boolean zhuangtai;//书的状态

    @Override
    public String toString() {
        return "Book{" +
                "jiage=" + jiage +
                ", + name + '\'' +
                ", + zuozhe + '\'' +
                ", zhuangtai=" + ((zhuangtai==true)? "被借阅": "未借阅") +

                '}';
    }
 

}


书架

package Book;

import java.util.Random;

/**
* Created with IntelliJ IDEA.
* Description:
* User: 28931
* Date: 2026-02-24
* Time: 10:49
*/
public class Bookclass {
    private Book[] books=new Book[10];//书架上创建了10本书

    public Book getBenshu2(int pos) {
        return books[pos];
    }
    public void WO(int pos,Book book){
        this.books[pos]=book;
    }
public Book[] zhengben(){
    return books;
}

    public void setBenshu2(Book[] books) {
        this.books=books;
    }

    public int getBenshu1() {
        return benshu;
    }

    public void setBenshu1(int benshu) {
        this.benshu = benshu;
    }

    private int benshu;//几本
//    初始化书
    public Bookclass(){
        books[0]=new Book(10,"西游记","罗贯中");
        books[1]=new Book(11,"吃人的社会","周树人");
        books[2]=new Book(12,"红楼梦","施耐庵");
this.benshu=3;
    }
}

公共用户

package yonghu; import Book.Bookclass; import Book.IA; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 13:53 */ public abstract class user { protected String name; protected IA[] IAS; //通过接口数组接受不同实例业务 选择操作 public user(String name) { this.name=name; this.IAS=IAS; } public abstract int f(); //菜单可选择的业务 public void t(int c, Bookclass w){ IAS[c].e(w); } 通过接口数组确定操作调用接口重写的方法 进行业务操作 }

管理员

package yonghu;

import Book.*;

import java.util.Scanner;

/**
* Created with IntelliJ IDEA.
* Description:
* User: 28931
* Date: 2026-02-24
* Time: 13:53
*/
public class guanli extends user{
    protected String name;
    public guanli(String name){
        super(name);
        this.IAS=new IA[]{
                new tuichu(),
                new chazhao(),
                new xinzeng(),
                new shanchu(),
                new xianshi()
        };
    }

    @Override
    public  int f(){
        System.out.println(name+"欢迎来到图书管理系统");
        System.out.println("0 退出系统");
        System.out.println("1 查找图书");
        System.out.println("2 新增图书");
        System.out.println("3 删除图书");
        System.out.println("4 显示图书");
        Scanner scanner=new Scanner(System.in);
        int c=scanner.nextInt();
        return c;

    }
}


普通的用户

package yonghu;

import Book.*;

import java.util.Scanner;

/**
* Created with IntelliJ IDEA.
* Description:
* User: 28931
* Date: 2026-02-24
* Time: 13:53
*/
public  class putong extends user {
    protected String name;
    public putong(String name){
        super(name);
       this.IAS=new IA[]{
               new tuichu(),
               new chazhao(),
               new jieyue(),
               new guihuan(),
               new xianshi()
        };
    }
    public  int f(){
        System.out.println(name+"欢迎来到图书管理系统");
        System.out.println("0 退出系统");
        System.out.println("1 查找图书");
        System.out.println("2 借阅图书");
        System.out.println("3 归还图书");
        System.out.println("4 显示图书");
        Scanner scanner=new Scanner(System.in);
        int c=scanner.nextInt();
        return c;

    }

}

//接口

package Book; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:17 */ public interface IA { void e(Bookclass bookclass); }

//查阅功能

package Book; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:17 */ public class chazhao implements IA{ public void e(Bookclass bookclass){ System.out.println("查找系统"); System.out.println("请输入你要找到图书"); Scanner scanner=new Scanner(System.in); String q=scanner.nextLine(); int i=0; for(;i<bookclass.getBenshu1();i++){ Book book=bookclass.getBenshu2(i); if(book.getName().equals(q) ){ System.out.println("找到了"); System.out.println(book); return; } } System.out.println("没招到"); } }

//显示功能

package Book; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:17 */ public class xianshi implements IA { public void e(Bookclass bookclass){ System.out.println("显示系统"); int c=bookclass.getBenshu1(); for (int i = 0; i < c; i++) { Book book=bookclass.getBenshu2(i); System.out.println(book); } } }

//借阅功能

package Book; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:17 */ public class jieyue implements IA{ public void e(Bookclass bookclass){ System.out.println("借阅系统"); int d=bookclass.getBenshu1(); for (int i = 0; i < d; i++) { Book book=bookclass.getBenshu2(i); System.out.println(book); } System.out.println("请输入借阅的图书序号"); Scanner scanner=new Scanner(System.in); int c=scanner.nextInt(); Book book=bookclass.getBenshu2(c); if(book.isZhuangtai()==true){ System.out.println("已被借阅"); return; } if(book.isZhuangtai()==false){ book.setZhuangtai(true); System.out.println("借阅成功"); System.out.println(book); } } }

//归还功能

package Book; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:17 */ public class guihuan implements IA{ public void e(Bookclass bookclass){ System.out.println("归还系统"); System.out.println("借阅系统"); int d=bookclass.getBenshu1(); for (int i = 0; i < d; i++) { Book book=bookclass.getBenshu2(i); System.out.println(book); } System.out.println("请输入借阅的图书序号"); Scanner scanner=new Scanner(System.in); int c=scanner.nextInt(); Book book=bookclass.getBenshu2(c); if(book.isZhuangtai()==true){ book.setZhuangtai(false); System.out.println("归还成功"); System.out.println(book); } } }

//退出系统

package Book; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 14:16 */ public class tuichu implements IA { public void e(Bookclass bookclass){ System.out.println("退出系统"); System.exit(0); } }

//新增功能

package Book; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 16:22 */ public class xinzeng implements IA{ public void e(Bookclass bookclass) { int d=bookclass.getBenshu1(); if(d==10) { System.out.println("已满图书"); return; } System.out.println("新增图书系统"); Scanner scanner=new Scanner(System.in); System.out.println("请新增输入书的名字"); String a=scanner.nextLine(); System.out.println("请输入新增作者的名字"); String b=scanner.nextLine(); System.out.println("请输入新增作品的价格"); int c=scanner.nextInt(); Book newbook=new Book(c,a,b); String name2=newbook.getName(); for (int i = 0; i < d; i++) { String name1=bookclass.getBenshu2(i).getName(); if(name1.equals(name2)){ System.out.println("该书已被添加"); return; } } bookclass.WO(d,newbook); d++; System.out.println("已添加成功"); for (int i = 0; i < d; i++) { Book book= bookclass.getBenshu2(i); System.out.println(book); } } }

//删除功能

package Book; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: 28931 * Date: 2026-02-24 * Time: 16:23 */ public class shanchu implements IA{ public void e(Bookclass bookclass){ System.out.println("删除系统"); int d=bookclass.getBenshu1(); for (int i = 0; i < d; i++) { Book book= bookclass.getBenshu2(i); System.out.println(book); } System.out.println("请输入你要删除的序号"); Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); for(int i=a;i<d-1;i++){ Book book=bookclass.getBenshu2(a+1); bookclass.WO(a,book); } bookclass.setBenshu1(d-1); for (int i = 0; i < d-1; i++) { Book book= bookclass.getBenshu2(i); System.out.println(book); } } }

Read more

C++手撕红黑树:从0到200行,拿下STL map底层核心

C++手撕红黑树:从0到200行,拿下STL map底层核心

文章目录 * C++手撕红黑树:从0到200行,拿下STL map底层核心 * 1. 红黑树的概念 * 1.1 红黑树的规则 * 1.2 红黑树如何确保最长路径不超过最短路径的2倍? * 1.3 红黑树的效率 * 2. 红黑树的实现 * 2.1 红黑树的结构 * 2.2 红黑树的插入 * 2.2.1 插入的大概过程 * 2.2.2 情况1:变色 * 2.2.3 情况2:单旋 + 变色 * 2.2.4 情况3:双旋 + 变色 * 2.3 红黑树的插入代码实现 * 2.

By Ne0inhk
【Java 开发日记】有了解过 SpringBoot 的参数配置吗?

【Java 开发日记】有了解过 SpringBoot 的参数配置吗?

目录 核心概念:application.properties 与 application.yml 配置的加载位置与优先级 外部化配置(非常强大) 如何在代码中获取配置值? 常用配置示例 总结 当然了解,Spring Boot 的参数配置是其核心特性之一,也是它实现“约定大于配置”理念的关键。它极大地简化了传统 Spring 应用中繁琐的 XML 配置。 一、核心概念:application.properties 与 application.yml Spring Boot 默认使用这两种文件进行配置(二者选其一即可,.yml 更常用)。 application.properties (传统键值对格式) server.port=8081 spring.datasource.url=jdbc:mysql://localhost:

By Ne0inhk
亲测可用的JAVA大型ERP进销存财务一体化源码分享

亲测可用的JAVA大型ERP进销存财务一体化源码分享

JAVA大型ERP源码 进销存财务一体化源码 本源码亲测可用!若有问题不能成功搭建包退! 您自己搭建的过程中遇见技术问题可以免费咨询。 已经修补好了几个出现的代码bug。 1.开发环境:Eclipse4.4(javaee版)+jdk8+tomcat8+postgreSQL9.2 2.导入database目录下的数据到postgresql中。 3.导入MyERP到eclipse中 4.启动tomcat,直接访问http://localhost:8080/,切记不要包含项目路径 最近在研究ERP相关项目,发现了一套超棒的JAVA大型ERP源码,实现了进销存财务一体化,今天就来给大家分享分享。 一、源码亮点 这套源码亲测可用,而且作者很良心地承诺,如果有问题不能成功搭建包退。同时,在搭建过程中要是遇见技术问题,还能免费咨询,不得不说这服务很贴心。并且,已经提前修补好了几个出现的代码bug,大大节省了我们排查问题的时间。 二、开发环境配置 1. 开发工具:使用Eclipse4.4(javaee版),它是一款非常经典且功能强大的Java开发工具,在企业级开发中应用广泛。

By Ne0inhk
基于飞算JavaAI的在线图书借阅平台设计与实现(深度实践版)

基于飞算JavaAI的在线图书借阅平台设计与实现(深度实践版)

摘要: 本文以从概念到落地,完整构建一个“在线图书借阅平台”的全过程。文章不仅覆盖了环境配置、需求分析、接口设计、数据库建模等基础流程,更着重于展示AI自动生成的项目核心代码,并在此基础上进行了详尽的功能扩展和代码优化。通过对用户管理、图书管理、借阅与归还等关键业务模块的详细代码实现与注释,本文旨在全面、深入地展现飞算JavaAI在真实项目开发中的强大能力,探讨其如何重塑传统Java开发范式,显著提升开发效率与代码质量。 一、引言 在软件工程领域,随着业务逻辑的日益复杂化和市场对产品迭代速度的严苛要求,传统的纯手动编码模式正面临前所未有的挑战。开发周期长、人力成本高、代码质量参差不齐、技术债累积等问题,成为制约项目成功的重要因素。正是在这样的背景下,人工智能辅助编程(AI-Assisted Programming)应运而生,它通过将大型语言模型与软件工程知识深度融合,旨在自动化处理开发流程中的重复性、模式化任务,使开发者能够聚焦于更具创造性的核心业务逻辑。 飞算科技推出的飞算JavaAI,正是这一变革浪潮中的杰出代表。它作为一款深度集成于IntelliJ IDEA的智能插件,能够

By Ne0inhk