编写一个c++程序,已有若干图书的数据,包括书名、作者、出版社、书号和定价。要求输出这些书的数据,并计算出书的数量和总价格(用静态数据成员表示’)
时间: 2024-10-27 07:02:06 浏览: 48
在C++中,我们可以创建一个Book类来存储图书的信息,并使用静态数据成员变量来跟踪总数和总价。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Book {
private:
static int bookCount; // 静态数据成员,用于计数书籍
static double totalPrice; // 静态数据成员,用于累计总价格
public:
string title;
string author;
string publisher;
string isbn;
double price;
// 构造函数
Book(string t, string a, string p, string i, double p_) : title(t), author(a), publisher(p), isbn(i), price(p_) {
incrementBookCount();
updateTotalPrice();
}
void display() {
cout << "Title: " << title << endl;
cout << "Author: " << author << endl;
cout << "Publisher: " << publisher << endl;
cout << "ISBN: " << isbn << endl;
cout << "Price: " << price << endl;
}
// 静态成员函数增加书籍数量和总价
static void incrementBookCount() {
bookCount++;
}
static void updateTotalPrice() {
totalPrice += price;
}
};
int Book::bookCount = 0;
double Book::totalPrice = 0.0; // 初始化静态数据
int main() {
// 创建并显示几本书
Book book1("Book1", "Author1", "Publisher1", "123456", 29.99);
book1.display();
Book book2("Book2", "Author2", "Publisher2", "789012", 39.99);
book2.display();
// 输出总信息
cout << "Number of Books: " << Book::bookCount << endl;
cout << "Total Price: " << Book::totalPrice << endl;
return 0;
}
```
这个程序中,我们定义了一个`Book`类,每个新创建的`Book`对象都会自动增加`bookCount`并更新`totalPrice`。在`main`函数里,我们创建了两本书并显示它们的信息,最后还展示了总的书籍数量和总价。
阅读全文