用C++编写一个天气统计系统
时间: 2024-10-06 09:04:53 浏览: 13
在C++中,我们可以设计一个简单的天气统计系统来记录和分析每日气温数据。下面是一个基础的结构和功能概述:
```cpp
#include <iostream>
#include <map>
#include <string>
// 定义天气数据结构
struct WeatherData {
std::string date;
double temperature;
};
// 存储并操作天气数据的类
class WeatherStats {
private:
std::map<std::string, int> daily_temps; // 使用map存储日期和对应天数
public:
// 添加天气数据
void addData(const WeatherData& data) {
daily_temps[data.date] = (daily_temps.find(data.date) == daily_temps.end()) ? 1 : daily_temps[data.date] + 1;
}
// 获取平均温度
double getAverageTemperature() {
if (daily_temps.empty())
return 0;
double sum = 0;
for (const auto &pair : daily_temps) {
sum += pair.second * pair.first.temperature;
}
return sum / daily_temps.size();
}
// 输出统计结果
void printSummary() {
std::cout << "Weather Summary:\n";
for (const auto &pair : daily_temps) {
std::cout << "Date: " << pair.first << ", Temperature Count: " << pair.second << "\n";
}
std::cout << "Average Temperature: " << getAverageTemperature() << " degrees Celsius\n";
}
};
int main() {
WeatherStats stats;
WeatherData data1 {"2023-01-01", 15};
data1.temperature = 16; // 更新气温示例
stats.addData(data1);
WeatherData data2 {"2023-01-02", 18};
stats.addData(data2);
stats.printSummary();
return 0;
}
```
在这个例子中,`WeatherStats` 类负责收集、处理和展示天气数据。用户可以添加新的天气数据,然后调用 `printSummary()` 来查看统计信息。
阅读全文