编写一个C++程序列出某读者的借书情况。假设图书馆的图书包含书名、编号和作者三个属性,读者包含姓名和借书证属性,每位读者最多可借5本书,
时间: 2024-03-14 21:44:29 浏览: 19
好的,以下是一个简单的 C++ 程序,可以实现列出某读者的借书情况:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 图书类
class Book {
public:
string title; // 书名
int id; // 编号
string author; // 作者
};
// 读者类
class Reader {
public:
string name; // 姓名
int card; // 借书证号
vector<Book> books; // 借阅的书籍
int book_count = 0; // 已借阅的书籍数量
// 借书方法
void borrow(Book book) {
if (book_count >= 5) {
cout << "已经借了5本书了,不能再借了!" << endl;
} else {
books.push_back(book);
book_count++;
cout << "借书成功!书名:" << book.title << endl;
}
}
// 还书方法
void return_book(int book_id) {
for (int i = 0; i < books.size(); i++) {
if (books[i].id == book_id) {
books.erase(books.begin() + i);
book_count--;
cout << "还书成功!书名:" << books[i].title << endl;
return;
}
}
cout << "没有找到该书籍,还书失败!" << endl;
}
// 显示借书情况
void show_books() {
cout << "已借阅的书籍:" << endl;
for (int i = 0; i < books.size(); i++) {
cout << "书名:" << books[i].title << ",编号:" << books[i].id << ",作者:" << books[i].author << endl;
}
}
};
int main() {
// 初始化图书馆中的书籍
Book book1 = {"C++ Primer", 1001, "Lippman"};
Book book2 = {"Effective C++", 1002, "Meyers"};
Book book3 = {"The C++ Programming Language", 1003, "Stroustrup"};
vector<Book> books = {book1, book2, book3};
// 初始化读者
Reader reader = {"张三", 123456};
// 借书流程
reader.borrow(book2);
reader.borrow(book3);
reader.show_books();
// 还书流程
reader.return_book(1002);
reader.show_books();
return 0;
}
```
这个程序实现了一个简单的图书馆借书系统,包含了图书类 `Book` 和读者类 `Reader`,以及对应的方法。在 `main` 函数中,我们初始化了图书馆中的三本书,以及一个读者张三。然后通过调用 `borrow` 方法借了两本书,再通过调用 `show_books` 方法展示当前已借阅的书籍。最后调用 `return_book` 方法归还了一本书,再次调用 `show_books` 方法确认归还结果。
当然,这只是个简单的示例程序,实际上一个完整的图书馆借书系统要涉及更多的功能,比如图书的分类、借阅时间限制、逾期罚款等等。但是这个程序可以作为一个基础框架,可以根据实际需求进行扩展。