Java图书管理系统

        本文将介绍一个基于Java的简单图书管理系统,该系统采用了面向对象的设计思想,通过合理的类结构划分实现了图书的增删改查、借阅归还等功能,并区分了管理员和普通用户两种角色权限。

一、系统架构

1. 核心数据模型

Book类:图书实体类,封装了图书的基本属性和行为

public class Book {
    private String name;        //书名
    private String author;      //作者
    private double price;       //价格
    private String type;        //类型
    private boolean isBorrowed; //借阅状态
    
    //构造方法、getter/setter方法
    //重写toString()方法提供格式化输出
}

BookList类:图书集合管理类,负责维护图书数组和有效数据量

public class BookList {
    private Book[] books = new Book[10]; //图书数组
    private int uesdSize;                //有效数据个数
    
    //初始化默认图书
    public BookList() {
        this.books[0] = new Book("三国演义","罗贯中",25.9,"小说");
        this.books[1] = new Book("西游记","吴承恩",39.5,"小说");
        this.books[2] = new Book("红楼梦","曹雪芹",15.9,"小说");
        this.uesdSize = 3;
    }
    
    //提供对图书数组的访问和修改方法
}

2. 操作接口与实现

IOperation接口:定义所有操作类的统一接口

public interface IOperation {
    void work(BookList bookList);
}

系统实现了多种操作类:

  • AddOperation:添加图书

  • DelOperation:删除图书

  • FindOperation:查找图书

  • ShowOperation:显示所有图书

  • BorrowOperation:借阅图书

  • ReturnOperation:归还图书

  • ExitOperation:退出系统

每个操作类都实现了IOperation接口,遵循统一的调用规范。

3. 用户体系设计

User抽象类:用户基类,定义用户基本属性和行为

public abstract class User {
    protected String name;
    IOperation[] iOperations; //操作数组
    
    public abstract int menu(); //抽象菜单方法
    
    public void doOperation(int choice, BookList bookList) {
        iOperations[choice].work(bookList);
    }
}

AdminUser类:管理员用户,拥有更高级权限

public class AdminUser extends User {
    public AdminUser(String name) {
        super(name);
        //初始化管理员可执行的操作
        this.iOperations = new IOperation[]{
            new ExitOperation(),
            new FindOperation(),
            new AddOperation(),
            new DelOperation(),
            new ShowOperation()
        };
    }
    
    //实现管理员菜单
}

NormalUser类:普通用户,权限受限

public class NormalUser extends User {
    public NormalUser(String name) {
        super(name);
        //初始化普通用户可执行的操作
        this.iOperations = new IOperation[]{
            new ExitOperation(),
            new FindOperation(),
            new BorrowOperation(),
            new ReturnOperation()
        };
    }
    
    //实现普通用户菜单
}

4. 主程序流程

Main类:系统入口,负责用户登录和主循环

public class Main {
    public static User login() {
        //获取用户输入的用户名和身份
        //返回对应的用户对象
    }
    
    public static void main(String[] args) {
        BookList bookList = new BookList();
        User user = login();
        
        while (true) {
            int choice = user.menu();      //显示菜单并获取选择
            user.doOperation(choice, bookList); //执行相应操作
        }
    }
}

二、设计特点与使用示例

1.设计特点

  1. 面向对象设计:系统充分运用了封装、继承和多态的特性

  2. 接口隔离:通过IOperation接口统一操作规范,降低耦合度

  3. 权限控制:通过不同的用户类型实现不同的操作权限

  4. 可扩展性:新增操作只需实现IOperation接口并在相应用户类型中注册即可

2.使用示例

管理员用户:

普通用户:

总结

        这个图书管理系统虽然简单,但体现了良好的面向对象设计原则,通过合理的类划分和接口设计,使系统具有较好的可维护性和扩展性。读者可以通过这个示例学习Java面向对象编程的基本技巧和设计思路。该系统还可以进一步扩展,例如增加持久化存储、图形用户界面、更复杂的权限管理等功能,使其更加完善和实用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值