编写一个C++程序,已有若干图书的数据,包括书名、作者、出版社、书号和定价。要求输出这些书的数据,并使用静态数据成员存储并统计图书的数量和总价格。
时间: 2024-11-10 11:27:17 浏览: 15
在C++中,你可以创建一个名为`Book`的类来表示图书,包含私有数据成员如书名、作者、出版社、书号和定价。然后通过公有的静态成员函数来管理图书的数量和总价格。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Book {
private:
static int bookCount;
static double totalPrice;
string title;
string author;
string publisher;
int isbn;
double price;
public:
// 构造函数
Book(string title, string author, string publisher, int isbn, double price) :
title(title), author(author), publisher(publisher), isbn(isbn), price(price) {
++bookCount; // 每创建一本书,数量加一
totalPrice += price; // 计算总价
}
// 获取书籍信息
void display() const {
cout << "Title: " << title << endl;
cout << "Author: " << author << endl;
cout << "Publisher: " << publisher << endl;
cout << "ISBN: " << isbn << endl;
cout << "Price: $" << price << endl;
}
// 静态方法获取数量和总价
static void showStats() {
cout << "Total number of books: " << bookCount << endl;
cout << "Total price: $" << totalPrice << endl;
}
};
// 初始化静态变量
int Book::bookCount = 0;
double Book::totalPrice = 0;
int main() {
// 创建几本书并显示和统计
Book book1("Programming in C++", "John Doe", "XYZ Publishers", 123456789, 50.0);
Book book2("Data Structures", "Jane Smith", "ABC Books", 987654321, 40.0);
book1.display();
book2.display();
Book::showStats(); // 显示所有书的统计数据
return 0;
}
```
当你运行这个程序时,它会先初始化静态变量,然后创建两本书并更新统计信息。每本书都有其独立的实例,但它们都会共享静态计数器和总价。
阅读全文