C++在头文件中定义一个数据结构Book,成员包含书名,价格等,在源文件中调用,定义三种书籍的名称与价格,生成50本书销售记录(string数组存储销售书名),分别计算各书销售数量及总价,最后输出销售记录,销售书籍书名,数量,单价和总价
时间: 2024-09-09 14:03:33 浏览: 37
在C++中,你可以这样做:
首先,在`book.h`(头文件)中定义Book的数据结构:
```cpp
// book.h
#ifndef BOOK_H
#define BOOK_H
#include <string>
#include <vector>
class Book {
public:
std::string title;
double price;
// 构造函数和析构函数省略
// 可能还需要其他操作如增加、减少库存的方法
};
#endif // BOOK_H
```
接下来,在`book.cpp`(源文件)中实现书籍的实例化,并生成销售记录:
```cpp
// book.cpp
#include "book.h"
std::vector<std::string> bookNames = {"《Python编程》", "《C++ Primer》", "《算法导论》"};
double bookPrices[3] = {39.99, 49.99, 59.99};
const int numBooks = sizeof(bookPrices) / sizeof(bookPrices[0]);
std::vector<Book> salesRecord(numBooks);
for (int i = 0; i < numBooks; ++i) {
salesRecord[i].title = bookNames[i];
salesRecord[i].price = bookPrices[i];
// 假设我们有一个静态函数来随机生成销售数量
static_cast<int>(rand() % 50) // 随机生成0到49的整数作为销售数量
}
// 算法部分省略,这里给出一个基本思路:
std::map<std::string, std::pair<int, double>> saleStats;
for (const auto& book : salesRecord) {
auto it = saleStats.find(book.title);
if (it == saleStats.end()) {
saleStats[book.title] = {1, book.price};
} else {
it->second.first++;
it->second.second += book.price;
}
}
// 输出销售记录
for (const auto& [title, stat] : saleStats) {
std::cout << "书名: " << title << ", 销售数量: " << stat.first << ", 单价: " << stat.second.first << ", 总价: " << stat.second.second << "\n";
}
```
请注意,这个例子中,为了简化处理,我们使用了随机生成的销售数量。实际应用中,你需要根据需求提供更合理的销量数据。同时,这只是一个基础示例,实际项目中可能需要添加更多的错误检查和逻辑。
阅读全文