编写一个程序,用于实现某书店图书的管理,具体功能如下 1)定义一个Book类,用于描述图书的静态动态特征; 2)定义一个集合,用于存储书店中所有的图书对象; 3)提供全部图书信息的显示功能; 4)提供根据书名的图书查找功能; 5)提供买书功能,即买书后,集合中相应删除该图书对象; 6)提供新进书功能,即书店购置了新的图书,相应的集合中应增加图书对象。 要求:系统有清晰的提示信息便于用户使用;应定义书店类,并恰当设计成员变量与成员方法。 提示:同一书名的图书允许有多本,如何进行区分?另,查找时根据书名进行查找,认为相同书名即相同,因此找到,所以Book类的equals方法是否需要重写,重写的话,其内容应是什么。
时间: 2024-03-17 18:41:21 浏览: 49
好的,我知道了。下面是对你的问题的回答:
首先,我们需要定义一个`Book`类,用于描述图书的静态动态特征。该类应包括以下成员变量:
```
private String name; // 书名
private String author; // 作者
private double price; // 价格
private int num; // 库存数量
```
同时,还需要提供以下方法:
```
// 构造方法
public Book(String name, String author, double price, int num) { ... }
// 获取书名
public String getName() { ... }
// 获取作者
public String getAuthor() { ... }
// 获取价格
public double getPrice() { ... }
// 获取库存数量
public int getNum() { ... }
// 设置库存数量
public void setNum(int num) { ... }
// 判断两本书是否相同
@Override
public boolean equals(Object obj) { ... }
// 显示图书信息
@Override
public String toString() { ... }
```
接着,我们需要定义一个集合,用于存储书店中所有的图书对象。这里我们可以选择使用`ArrayList`来作为我们的集合。
```
ArrayList<Book> books = new ArrayList<Book>();
```
然后,我们需要提供以下功能:
1. 提供全部图书信息的显示功能;
```
public void displayAllBooks() { ... }
```
2. 提供根据书名的图书查找功能;
```
public void searchBookByName(String name) { ... }
```
3. 提供买书功能,即买书后,集合中相应删除该图书对象;
```
public void sellBook(String name, int num) { ... }
```
4. 提供新进书功能,即书店购置了新的图书,相应的集合中应增加图书对象。
```
public void addNewBook(Book book) { ... }
```
在实现上述功能时,我们需要恰当地设计书店类的成员变量与成员方法,以便于实现图书的管理。
最后,关于同一书名的图书允许有多本,我们可以在`Book`类中重写`equals`方法,判断两本书是否相同时,除了书名相同外,还需要判断作者是否相同。重写后的方法如下:
```
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Book other = (Book) obj;
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
if (author == null) {
if (other.author != null) {
return false;
}
} else if (!author.equals(other.author)) {
return false;
}
return true;
}
```
以上就是对你问题的回答,希望能够帮到你。
阅读全文