1、 数据准备:编写程序,自动生成1000个读者和图书; 2、 改造读者模块,在提取读者的同时,提取其未归还的图书信息 第一步:通过程序增加一些借阅纪录 第二步:改造读者javabean,使之包括借阅的图书信息 第三步:改造ReaderManager中的读者提取方法(public BeanReader loadReader(String readerid) throws DbException ),同时提取未归还图书; 第四步:ReaderManager的main函数中调用该方法进行测试,要求输出指定读者的基本信息及其未归还的图书名称。 【实验结果与分析】 A、 javabean类代码。 B、 给出改造后ReaderManager类的方法代码。
时间: 2023-11-22 07:56:31 浏览: 83
A、Reader类的代码:
```java
public class Reader {
private String readerId;
private String readerName;
private List<Book> borrowedBooks;
public Reader(String readerId, String readerName) {
this.readerId = readerId;
this.readerName = readerName;
this.borrowedBooks = new ArrayList<>();
}
public String getReaderId() {
return readerId;
}
public void setReaderId(String readerId) {
this.readerId = readerId;
}
public String getReaderName() {
return readerName;
}
public void setReaderName(String readerName) {
this.readerName = readerName;
}
public List<Book> getBorrowedBooks() {
return borrowedBooks;
}
public void setBorrowedBooks(List<Book> borrowedBooks) {
this.borrowedBooks = borrowedBooks;
}
public void addBorrowedBook(Book book) {
borrowedBooks.add(book);
}
public void returnBook(Book book) {
borrowedBooks.remove(book);
}
}
```
B、改造后的ReaderManager类的方法代码:
```java
public class ReaderManager {
private List<Reader> readers;
public ReaderManager() {
readers = new ArrayList<>();
}
public void addReader(Reader reader) {
readers.add(reader);
}
public Reader loadReader(String readerId) throws DbException {
// 模拟从数据库中读取读者信息
// 如果读者不存在,抛出异常
for (Reader reader : readers) {
if (reader.getReaderId().equals(readerId)) {
List<Book> borrowedBooks = reader.getBorrowedBooks();
for (Book book : borrowedBooks) {
if (book.getReturnDate() == null) {
System.out.println(reader.getReaderName() + "借阅了" + book.getBookName());
}
}
return reader;
}
}
throw new DbException("Reader not found");
}
public static void main(String[] args) {
ReaderManager manager = new ReaderManager();
// 自动生成1000个读者和图书
for (int i = 1; i <= 1000; i++) {
Reader reader = new Reader("R" + i, "Reader" + i);
manager.addReader(reader);
Book book = new Book("B" + i, "Book" + i);
reader.addBorrowedBook(book);
}
// 测试读者提取方法
try {
Reader reader = manager.loadReader("R1");
System.out.println("Reader: " + reader.getReaderName());
List<Book> borrowedBooks = reader.getBorrowedBooks();
System.out.println("Borrowed books:");
for (Book book : borrowedBooks) {
System.out.println(book.getBookName());
}
} catch (DbException e) {
System.out.println(e.getMessage());
}
}
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)