利用向量容器设计并实现一个图书评级类对若干图书进行评级,对评级后的图书可以 进行删除、插人等操作。
时间: 2024-01-22 10:20:18 浏览: 15
好的,我可以为您提供一个简单的图书评级类的示例代码,其中使用了向量容器来存储图书和对应的评级信息。
```c++
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 图书评级类
class BookRating {
public:
// 构造函数
BookRating() {}
// 添加图书及评级信息
void addBook(string name, int rating) {
books.push_back(name);
ratings.push_back(rating);
}
// 删除指定图书及评级信息
void deleteBook(string name) {
for (int i = 0; i < books.size(); i++) {
if (books[i] == name) {
books.erase(books.begin() + i);
ratings.erase(ratings.begin() + i);
break;
}
}
}
// 修改指定图书的评级信息
void updateRating(string name, int rating) {
for (int i = 0; i < books.size(); i++) {
if (books[i] == name) {
ratings[i] = rating;
break;
}
}
}
// 获取指定图书的评级信息
int getRating(string name) {
for (int i = 0; i < books.size(); i++) {
if (books[i] == name) {
return ratings[i];
}
}
return -1;
}
// 打印所有图书及评级信息
void printAllBooks() {
cout << "所有图书及评级信息:" << endl;
for (int i = 0; i < books.size(); i++) {
cout << books[i] << " - " << ratings[i] << endl;
}
}
private:
vector<string> books; // 存储图书名称
vector<int> ratings; // 存储图书评级信息
};
int main() {
BookRating br;
br.addBook("C++ Primer", 4);
br.addBook("Effective C++", 5);
br.addBook("The C++ Programming Language", 4);
br.printAllBooks();
cout << endl << "修改评级信息:" << endl;
br.updateRating("C++ Primer", 5);
br.printAllBooks();
cout << endl << "删除图书:" << endl;
br.deleteBook("The C++ Programming Language");
br.printAllBooks();
return 0;
}
```
上述代码中,我们使用了两个向量容器 `books` 和 `ratings`,分别存储图书名称和评级信息。在类中,我们提供了添加图书及评级信息、删除图书、修改图书评级信息、获取图书评级信息、打印所有图书及评级信息等操作。您可以根据需要进行修改或扩展。在 `main` 函数中,我们对该类进行了简单的测试。