这是一个基于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='" + name + '\'' +
                ", zuozhe='" + 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);
        }
    }
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐