练习-图书馆管理系统

图书馆管理系统

1、需求分析
针对图书进行管理
**角色:**用户(NormalUser) 管理员(Admin)
用户可以实现: 管理员可以实现
1、查找书籍 1、查找书籍
2、借阅书籍 2、增加书籍
3、归还书籍 3、删除书籍
4、打印所有书籍信息

2.概要设计
想清楚程程序应该分为几个模块,每个模块干啥,模块之间如何交互。
3、详细设计
每个模块具体的一些细节在考虑清楚
4、开始编码
先创建类,把核心的类设计好
设计类的过程很简单,先找关键字

设计这个系统需要三个包
**1、Book包:**Book.java (书籍属性) BookList.java(实现顺序表管理若干本书)
**2、Operation包:**AddOperation(增加书籍),BorrowOperation(借阅书籍),DelOperation(删除书籍),DisplayOperation(打印书籍),FindOperation(查找书籍),Exitoperation(t退出程序),ReturnOperation(归还书籍),IOperation(共同的接口)。
**3、User包:**Admin(管理员),NormalUser(普通用户包),User(用来被Admin和Normal继承的抽象类)。
4、main.java(执行方法)。

把操作提取成类;这样其实也进一步的把操作和用户之间进行了“'解耦合”
耦合指的是代码之间的关联关系,越低越好

具体代码实现
1、Book包
1)、Book.java

package Book;

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

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

    public String getName() {
   
        return name;
    }

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

    public boolean isBorrowed() {
   
        return isBorrowed;
    }

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

    @Override
    public String toString() {
   
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                ( isBorrowed==true? "已经被借出":"没有被借出")+
                '}'+'\n';
    }
}

2)、BookLIst.java

package Book;

public class BookList {
   
    private Book[] books=new Book[100];
    private int size;

    public BookList(){
   
        books[0]=new Book("java编程","代",19,"学习");

        books[1]=new Book("C++编程","召",12,"学习");

        books[2]=new Book("python编程","勇",16,"学习");

        size =3;
    }
    //Book的get和set方法不能自动生成,因为这里要加一个pos下标
    public Book getBook(int pos) {
   
        return this.books[pos];
    }

    public void setBook(int pos,Book book) {
   
        this.books[pos] = book;
    }

    public int getSize() {
   
        return size;
    }

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

2、Operation包
1)、IOperation

package Operation;

import Book.BookList;

import java.util.Scanner;

public interface IOperation {
   
  Scanner scanner=new Scanner(System.in);
    void work(BookList bookList);
}

2)、AddOperation

package Operation;

import Book.Book;

import Book.BookList;

import java.util.Scanner;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值