图书管理系统:List集合版
图书管理系统List集合版
1.需求描述:
通过我们学习过的面向对象和集合部分完成一个综合案例:简版图书管理系统!
本系统共分为两个角色,分别为用户和管理员,都只能进行最基本图书操作。
管理员模块功能
1)查看书籍列表:查询所有的书籍信息。
2)查看书籍信息:通过键盘录入要查询的书籍名称,如果书籍存在,则输出书籍的信息,如果不存在就输出不存在。
3)删除书籍信息:通过键盘录入要删除书籍的名字,如果书籍存在,则删除书籍的信息,如果不存在就输出书籍不存在,无法删除。
4)添加书籍:添加书籍到集合中。
5)退出系统:结束程序。
用户模块功能
1.查阅书籍信息:通过键盘录入要查询的书籍名称,如果书籍存在,则输出书籍的信息,如果不存在就输出不存在。
2.借阅书籍:输入借阅的书籍名字来借阅书籍,如果书籍不存在或已被借阅,则输出对应的情况。
3.归还书籍:归还已经借阅的书籍。
4.退出系统:结束程序。
2.实现步骤:
1)定义Book类,成员变量为书本的基本信息
成员变量:
姓名:name
作者:author
价格:price
种类:type
是否被借出:isBorrowed
构造方法:
无参构造
全参构造
每个成员变量对应给出get/set方法:
toString方法:
HashCode&equals方法:
2)定义BookList类,作为书籍的库存
成员变量:
书籍列表:ArrayList books
构造方法:
无参构造:向books集合中添加初始化书籍数据
全参构造
每个成员变量对应给出get/set方法:
3)定义Manager类,声明图书管理员的操作
成员方法:
查看所有书籍列表:lookAllBook()
查看书籍信息:lookBook()
删除书籍信息:deleteBook()
添加书籍:addBook()
4)定义User类,声明用户的操作
成员方法:
查看书籍信息:lookBook()
借阅书籍:borrowBook()
归还书籍:returnBook()
5)图书管理系统主界面的搭建:BookManager类
用输出语句完成主界面的编写
用Scanner实现键盘录入数据
通过键盘录入与if语句来选择身份:1.系统管理员身份 2.用户身份
不同的身份进入对应的管理系统,通过面向对象的思想完成对应的功能
代码实现:
Book类
package com.tohka.bookmanager;
import java.util.Objects;
public class Book {
// 用来表示一本书的信息
private String name;//书名
private String author;//作者
private double price;//价格
private String type;//种类
private boolean isBorrowed = false;//是否被借出
//无参构造
public Book() {
}
//全参构造
Book(String name, String author, double price, String type, boolean isBorrowed) {
this.name = name;
this.author = author;
this.price = price;
this.type = type;
this.isBorrowed = isBorrowed;
}
//getter&setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
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;
}
//toString
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
", type='" + type + '\'' +
", isBorrowed=" + isBorrowed +
'}';
}
//equals&hashCode
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
return