定义一个图书类Book,数据成员包含name(书名)、author(作者)、price(定价),为该类定义构造函数,并提供各数据成员的getXXX()和setXXX()函数。在main函数中创建图书对象数组,并将该数组中的元素按图书价格升序排序。c++
时间: 2024-10-22 14:04:57 浏览: 48
在C++中,我们可以定义一个名为`Book`的类来表示图书,包含了`name`、`author`和`price`这三个数据成员。首先,我们创建一个构造函数用于初始化这些属性,然后分别提供getter和setter函数以便获取和设置这些值。最后,在`main`函数中,我们将创建一个`Book`对象的动态数组并按照价格进行排序。
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
using namespace std;
class Book {
private:
string name;
string author;
double price;
public:
// 构造函数
Book(string n, string a, double p) : name(n), author(a), price(p) {}
// getter functions
string getName() const { return name; }
string getAuthor() const { return author; }
double getPrice() const { return price; }
// setter functions
void setName(string n) { name = n; }
void setAuthor(string a) { author = a; }
void setPrice(double p) { price = p; }
// 按照价格比较的对象,便于排序
bool operator<(const Book& other) const {
return price < other.price;
}
};
int main() {
// 创建Book对象数组
const int numBooks = 5;
Book books[numBooks] = {
{"Book1", "Author1", 10.99},
{"Book2", "Author2", 15.00},
{"Book3", "Author3", 8.99},
{"Book4", "Author4", 12.50},
{"Book5", "Author5", 9.99}
};
// 使用sort对数组进行升序排序
sort(books, books + numBooks);
// 打印排序后的书籍信息
for (int i = 0; i < numBooks; i++) {
cout << "Name: " << books[i].getName() << ", Author: " << books[i].getAuthor()
<< ", Price: " << books[i].getPrice() << endl;
}
return 0;
}
阅读全文