C++ 用数组设计类
我有一个包含如下数据列表的文件: 2012-01-01降雨7130.28 2012-01-02散射云4 8 0.25 2012-01-03降雨6120.28 2012-01-04降雨5100.28 2012-01-05降雨7120.28C++ 用数组设计类,c++,C++,我有一个包含如下数据列表的文件: 2012-01-01降雨7130.28 2012-01-02散射云4 8 0.25 2012-01-03降雨6120.28 2012-01-04降雨5100.28 2012-01-05降雨7120.28 我已经设法设计了一个类,并将数据提取到我的程序中。我现在被困在设计上: 如何找到第三列数据的总和 如何将年份与其他数据进行匹配 例:对于案例2,我想找出2012年“雨”的发生次数 附言:我刚开始学习编程,如果答案显而易见,我很抱歉 这是我的密码: const
我已经设法设计了一个类,并将数据提取到我的程序中。我现在被困在设计上:
const int SIZE = 2000;
class City
{
public:
string date;
string weatherDesc;
int minTemp;
int maxTemp;
double rainfall;
};
int main( )
{
City london[SIZE];
ifstream fin;
fin.open("weather.txt");
int i = 0;
while ((! fin.eof( )) && (i < SIZE))
{
fin >> london[i].date
>> london[i].weatherDesc
>> london[i].minTemp
>> london[i].maxTemp
>> london[i].rainfall;
cout << london[i].date << " "
<< london[i].weatherDesc << " "
<< london[i].minTemp << " "
<< london[i].maxTemp << " "
<< london[i].rainfall << endl;
i++;
}
}
const int SIZE=2000;
阶级城市
{
公众:
字符串日期;
字符串weatherDesc;
int minTemp;
int-maxTemp;
双倍降雨;
};
int main()
{
伦敦金融城[规模];
流鳍;
财务公开(“weather.txt”);
int i=0;
而((!fin.eof())&&(i>伦敦[i].日期
>>伦敦[i].weatherDesc
>>伦敦[i].minTemp
>>伦敦[i].maxTemp
>>伦敦[i].降雨;
cout您可以简单地检查数组中的每个元素,看看每个城市是否满足所需条件
int weatherDescCount(City cities[], int count, string year, string desc)
{
int num = 0;
for (int i = 0; i < count; i++)
{
if (cities[i].weatherDesc == desc &&
cities[i].date.substr(0, 4) == year) {
num++;
}
}
return num;
}
int sumMinTemp(City cities[], int count)
{
int sum = 0;
for (int i = 0; i < count; i++)
{
sum += cities[i].minTemp;
}
return sum;
}
int weatherDescCount(城市[],int count,字符串年份,字符串desc)
{
int num=0;
for(int i=0;i
在main()的末尾,添加以下代码:
cout << sumMinTemp(london, i) << endl;
cout << weatherDescCount(london, i, "2012", "Rain") << endl;
cout这将是学习一个重要编程原则的好时机:尽可能独立地开发新功能。您想迭代数组并总结一些东西,所以请尝试使用int[]
。在您尝试使用这种复杂类型之前,请让它完美工作。对于#2,您需要更好地定义您要做的事情。在2012年计算“雨”数?计算“雨”在任何给定年份?统计任何给定的weatherDesc
在2012年的出现次数?统计所有字段上与通用布尔方程匹配的城市?按年份过滤数组?…顺便说一句,最好使用std::vector而不是固定大小的数组。