目录
一、图书管理系统应具备的功能
1、图书管理系统有两种用户:管理员和普通用户;
2、两种用户所具有的功能列表不一样:
管理员的功能:查找图书、新增图书、删除图书、显示图书、退出系统。
普通用户的功能:查找图书、借阅图书、归还图书、退出系统。
二、简单分析如何实现该系统
1、图书肯定有很多种,而每种图书都有书名、作者、类型等属性,那么我们就可以把图书抽象为一个类——Book;
2、我们可以创建一个Book类类型的数组,用于存放系统中的每一种图书;
3、上面创建的数组我们可以把它存放在一个书架类——BookShelf中,并且在BookShelf类中实现一些对数组进行基本操作的方法,比如获取数组中的某个元素,设置数组中的某个元素等等;
4、系统有两种用户,而两种用户的功能不同,我们可以把它们分别抽象为一个类,因为每种用户的功能不一样,那么我们可以再给它们创造一个共同的父类——User类,通过重写父类的方法和向上转型,就可以为两种用户提供不同的功能;
5、每种功能如何具体实现呢?我们可以创建一个接口——Operation,接口中写一个work()方法,而每种功能可以抽象为一个类,这些类只要实现了这个接口并重写其中的work()方法,那么在之后调用时就会很方便。
6、最后在main()函数中写一个登录方法——login(),并把相关操作放入到一个while循环中即可。
三、框架图
四、代码实现过程及简析
1、Book类
package Book;
public class Book {
private String bookName; //书名
private String authorName; //作者
private String type; //类型
private int quantity; //数量
//构造方法
public Book(String bookName, String authorName, String type, int quantity) {
this.bookName = bookName;
this.authorName = authorName;
this.type = type;
this.quantity = quantity;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthorName() {
return authorName;
}
public void setAuthorName(String authorName) {
this.authorName = authorName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
@Override
public String toString() {
return "Book{" +
"书名《" + bookName + "》" +
"作者:" + authorName +
", 类型:" + type +
", 图书数量:" + quantity +
", 是否可借阅:" + ((quantity > 0)?
("可以借阅"):("图书数量不足,无法借阅")) +
'}';
}
}
简析:
Book类中有图书的书名、作者、类型、数量这些基本属性和相对应的get、set方法,以及Book类的构造方法和toString方法,构造方法用于实现之后的新增图书功能,toString方法用于实现之后的显示图书信息和查找图书功能。
2、BookShelf