图书管理系统【Java】+原码

目录

前言

二、抽象类和功能介绍

2.1 抽象书

2.2 抽象管理员和普通用户

三、整合

3.1 登录界面的实现

3.2 实现引用operation

3.3 实现operation里面的操作方法

3.3.1 AddOperation

3.3.2 BorrowOperation

3.3.3 DelOperation

3.3.4 DisplayOperation

3.3.5 ExitOperation

3.3.6 FindOperation 

3.3.7 IOperation接口

3.3.8 ReturnOperation

总结


前言

原码:https://gitee.com/dai-wenxiao/java_-study/tree/master/20220731​​​​​​​

这里利用类和对象、继承和多态、抽象类和接口知识点来做一个简单的图书管理系统,这里的重点不在于业务逻辑的实现,重点是使用面向对象的思想来实现,这有利用我们对知识点的深入理解。

每个人对业务逻辑的实现能力是不同的,这里的图书系统只是简单的实现,没有考虑到具体的业务逻辑的细节,下面的实现都是合法的。 


一、图书管理系统的具体功能

图书系统中对每一本书都要有详细的介绍,方便管理员和用户查阅等其他的操作;图书管理系统对管理员和普通用户都开放了不同的权限。下面进行简单的说明:

书的属性:

1.书名

2.作者

3.价格

4.类型

5.是否借出 

管理员:

1.查找图书

2.新增图书

3.删除图书

4.显示图书

0.退出系统

 普通用户:

1.查找图书

2.借阅图书

3.归还图书

0.退出系统

二、抽象类和功能介绍

2.1 抽象书

我们对书抽象可以分为两个类:

1.书的属性

2.放书的书架,该书架里面应该具备特定的功能,下面进行描述(方法没有具体实现):

🚀通过下标可以返回该下标所指向的书籍,并打印

🚀给定一个位置,放入一本新书进去

🚀可以实时监控书架里面存放书籍的数量,并进行修改

🚀增删查改等等操作(但是呢为了规范,我们把这些增删查改等操作写在一个包里;因为在这个系统里,我们都是对Book[]数组进行操作,功能就是一个接口,标准的规范,我们自己定义一个标准的规范;上面三个不用写在一起)

我们定义一个book的包,在包下进行类的抽象:

下面具体的代码实现:

Book类的实现:

public class Book {
    //为了代码的简洁,不占用大量的篇幅,这里的数据元素都设置为公开,
    //private修饰,提供get、set方法即可
    public String name;
    public String author;
    public int price;
    public String type;
    public boolean isBorrowed;//是否借出

    public Book(String name, String author, int price, String type) {
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
        //这里不用初始化,因为boolean的默认返回值是false和true
        //我们用true表示一借出,false表示未借出。
        //this.isBorrowed = isBorrowed;
    }
    //重写toString()方法
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                /*", isBorrowed=" + isBorrowed*/
                ((isBorrowed == true)?"已借出":"未借出")+//对isBorrowed赋值借出与否,这样更直观
                '}';
    }
}

BookList的代码实现:

//一个书架,用来存放书籍
public class BookList {
    public Book[] books = new Book[10];//最多存放10本书
    public int useSize;//实时当前Book[]里面存有多少本书
    public BookList(){
        //网上找的,不一定准确
        //new BookList();时就会有三本书了
        books[0] = new Book("数据结构c语言","严蔚敏",19,"专业书");
        books[1] = new Book("操作系统","孟庆昌,牛欣源",29,"专业书");
        books[2] = new Book("计算机组成原理","蒋本珊",39,"专业书");
        useSize = 3;
    }
    //给定一个位置,返回该位置下对应的书籍
    public Book getBook(int pos){
        return books[pos];
    }
    //给定一个位置,放一本新书到改位置下
    public void setBooks(int pos,Book data){
        books[pos] = data;
    }
    //记录书架里面有多少本书
    public int getUseSize(){
        return useSize;
    }
    //修改书架里面的书籍数量
    public void setUseSize(int
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霄百

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值