图书馆管理系统
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;