图书系统小练习(文末附源码)

1.对于任何系统,我们最先想到的就是普通用户和管理员,所以我们第一件事情就是创建一个包,里面包含

管理员   Admin(继承User)

普通用户  NormalUser(继承User)

abstract类的   User

 2.然后就是我们的菜单了

我们将管理员和用户分为两个不同的菜单

 3.我们姑且把管理员和用户的菜单做完了,现在来调用看看,我们写一个login()方法看看

这里我后面多写了一个String name,所以我修改了一下的User,Admin,NormalUser

 4.运行一下,看看能否出现管理员和普通用户的菜单(排错)

如果没有出错的话,运行结果如下

 5.接下来,我们就要优化一下

(不优化也没关系,我只是这里将向上转型练习一下)

对比

 实际上这里就是运用了一个向上转型

User us = login();
//实际上等于
User us = new Admin(name);
//或者是
User us = new NormalUser(name);
//看你是选择1管理员还是0普通用户

然后us.name又经过动态绑定就直接达成了和我们优化前一样的功能

(再次说明,可以不修改代码,我这里只是想练习一下向上转型)

6.下面我们就来创建   书,对于书我们给两个,一个是关于数的属性,一个是用来存储书的数据

 7.创建书的属性

 但是一般来说,我们对于这些都应该是private(封装,保护作用)

所以我们都需要在前面加上private

然后加上get和set方法,和constructor

 

代码太长,这里不放图,直接贴代码了

package Book;

public class Book {
    private String name;//书名
    private int price;//价格
    private String author;//作者
    private String type;//类型
    private boolean isBorrowed;//是否借出

    public Book(String name, int price, String author, String type) {
        this.name = name;
        this.price = price;
        this.author = author;
        this.type = type;
    }

    public String getName() {
        return name;
    }

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

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean borrowed) {
        isBorrowed = borrowed;
    }
}

 8.下面就是BookList

定义一个数组,每个数组对应一本书,然后在定义一个size

记住,private!!!(封装,保护作用,记得加get和set方法)

package Book;

public class BookList {
    private Book[] book = new Book[10];
    private int size = 0;
//下面是编译器自动生成的get和set方法

    public Book[] getBook() {
        return book;
    }

    public void setBook(Book[] book) {
        this.book = book;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }
}

然后我们加一些书本

 9.好了书和管理员已经弄好了,下面我们该来进行操作的实现了

我们一共有如下的操作

 其中接口Ioperation是用来让其他所有类使用,重写的

 10.下面我们将要调用他,首先我们将这些方法使用数组存储,比如下标0对应增加操作,1对应删除操作,所以我们需要在父类增加一个数组

 同时在Admin和NormalUser子类完成相应的操作

Admin和Normaluser的menu将其修改为返回int类型,这样我们就可以在main接受然后调用对应的方法了

 

 调用方法

结果如下:

11.实现各种方法

注意我们这里开始对书本进行操作,所以需要在所有的方法添加BookList属性

最后附上各类方法的实现

添加:

借书:

删除:

显示:

 退出系统:

查找:

 以上就是所有图书管理系统的小练习了

文末附上源码

https://download.csdn.net/download/qq_62718027/87811255

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值