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); } } }