图书系统的创建(二)——日记

今天我们创建操作系统这一部分,对于图书馆我们都不陌生,在图书馆我们通常会有借阅图书,归还图书,查找图书等等许多操作,那在图书系统的创建中我们也相应有这些操作。

在众多的操作类型中,我们可以发现它们都有一个特征,那就是它们都是一种操作,那我们不妨可以设置一个基本类型——InOperation接口。并且在这个接口中写一个方法work()。

public interface IoOperation {
    public void work(Bookshelf bookshelf);
}

然后我们就可以去实现其他接口,在借阅,归还,添加,删除等操作中,我认为最重要的有几个点。

1.长度

在书架中我们存放有书籍,对于存放书籍我们使用的是数组,那么数组的长度就是一个值得注意的地方,此外还有就是数组使用长度,即书籍占用的长度,我们可以将用number定义。在书架包里我们有getNumber(),setNumber()方法去得到它,在借阅,归还,显示和添加等操作中我们都要用到它。(注意添加书籍后要将使用长度+1)

//添加
......
int current = bookshelf.getNumber();
if (current + 1 > bookshelf.getBookssize()){
    System.out.println("书架满了,不能添加!!");
    return;
}

......

//借阅
......
int current = bookshelf.getNumber();

for (int i = 0; i < current; i++){
    Book book = bookshelf.getBooks(i);//要先创建一个Book类型的变量去得到图书的数量,好在循环的时候比较
    if (book.getName().equals(name)){
        if (book.isCondition()){
            System.out.println("该书已经被借出!!");
            return;//让循环到此处的时候有个出口,如果条件满足就跳出,不满足就经行下面的操作
        }
        book.setCondition(true);
        System.out.println("借阅成功!!");
        return;
    }
}

//归还
......
for (int i = 0; i < current; i++){
    Book book = bookshelf.getBooks(i);
    if (book.getName().equals(name)){
        if (book.condition){
            book.setCondition(false);
            System.out.println("归还成功!!");
            return;
        }
    }
}

 //显示

......

int current = bookshelf.number;
for (int i = 0; i < current; i++){
    Book book = bookshelf.getBooks(i);
    System.out.println(book);
}

 2.租借状态

我们可以用condition定义租借状态,其类型为boolean类型,未初始化是为false,可以认为未借出,如果借出了,我们就修改为将其赋值为true,

book.setCondition(true);  或者 book.setCondition(false);

当然它返回的值为false或true,要返回“为借出”或“借出”,我们可以重写toString()方法,

@Override
public String toString() {
    return "Book{" +
            "name='" + name + '\'' +
            ", author='" + author + '\'' +
            ", price='" + price + '\'' +
            ", type='" + type + '\'' +
            ((condition == true) ? "借出" : "未借出") +
            '}';
}

剩余的部分就按照逻辑写下去,就可以将操作这一部分完成。 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值