The assignment is:
Write a modular program that analyzes a year's worth of rainfall data. In addition to main, the program should have a getData function that accepts the total rainfall for each of the 12 months from the user, and stores it in a double array. It should also have four value-returning functions that compute and return to main the totalRainfall, averageRainfall, driestMonth, and wettestMonth. These last two functions return the number of the month with the lowest and highest rainfall amounts, not the amount of rain that fell those months. Notice that this month number can be used to obtain the amount of rain that fell those months. This information should be used either by main or by a displayReport function called by main to print a summary rainfall report similar to the following:
2010 Rain Report for Neversnows County
Total Rainfall: 23.19 inches
Average monthly rainfall: 1.93 inches
The least rain fell in January with 0.24 inches.
The most rain fell in April with 4.29 inches.
Input validation: Do not accept rainfall amounts less than 0
And the following is what i have so far. however it doesnt run & i used a 2d array... can I get some help?
These are my errors
"1> lab.cpp
1>lab.cpp(7): error C2065: 'STRING_SIZE' : undeclared identifier
1>lab.cpp(8): error C2065: 'STRING_SIZE' : undeclared identifier
1>lab.cpp(29): error C2660: 'getData' : function does not take 0 arguments
1>lab.cpp(39): error C2664: 'driestMonth' : cannot convert parameter 2 from 'char [12][10]' to 'char [][1]'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>lab.cpp(41): error C2664: 'wettestMonth' : cannot convert parameter 2 from 'char [12][10]' to 'char [][1]'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>lab.cpp(55): warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:02.81
"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
#include <iostream>
#include <string>
using namespace std;
//Prototypes
double getData(string[], double[]);
void wettestMonth(double [], char [][STRING_SIZE]);
void driestMonth(double[], char [][STRING_SIZE]);
void totalRain(double[]);
void averageRain(double[]);
void zeroArray(string []);
void displayReport (string[],double[],double);
const int NUM_MONTHS = 12;
const int STRING_SIZE = 10;
int main()
{
//Array Info
double rain[NUM_MONTHS];
int count;
char months[NUM_MONTHS][STRING_SIZE] =
{ "January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December" };
getData();
cout << "\n2010 Rain Report for Neversnows County\n";
cout << "----------------\n";
totalRain(rain);
averageRain(rain);
driestMonth(rain, months);
wettestMonth(rain, months);
}
//Collect Data
double getData(string name[], double month[])
{
int total=0;
cout << "Please enter the amount of rainfall for each month" << endl;
for (int count=0; count < NUM_MONTHS; count++)
{
cout<< name[count] << " : ";
cin >> month[count];
total += month[count];
while (month[count] < 0)
{
cout << "Please re-enter a positive number for the month of " << name[count] << endl;
cin >> month[count];
}
}
return total;
}
void wettestMonth(double rain[], char months[][NUM_MONTHS])
{
string month[12];
zeroArray(month);
double highest = rain[0];
month[0] = months[0];
for(int i = 1; i < 12; ++i)
{
if(rain[i] > highest) {
zeroArray(month);
month[i] = months[i];
highest = rain[i];
}
else if(rain[i] == highest)
{
month[i] = months[i];
}
}
cout << "Highest Rainfall: " << highest << " inches.\n";
for(int i = 0; i < 12; ++i) {
if(month[i] != "")
cout << "Month with highest rainfall: " << month[i] << endl;
}
cout << endl;
}
void driestMonth(double rain[], char months[][NUM_MONTHS])
{
string month[12];
zeroArray(month);
double lowest = rain[0];
month[0] = months[0];
for(int i = 1; i < 12; ++i)
{
if(rain[i] < lowest) {
zeroArray(month);
month[i] = months[i];
lowest = rain[i];
}
else if(rain[i] == lowest)
{
month[i] = months[i];
}
}
cout << "Lowest Rainfall: " << lowest << " inches" << endl;
for(int i = 0; i < 12; ++i)
{
if(month[i] != "")
cout << "Month with lowest rainfall: "<< month[i] << endl;
}
cout << endl;
}
void totalRain(double rain[])
{
double total = 0;
for (int index = 0; index < NUM_MONTHS; index++)
total += rain[index];
cout << "Total Rainfall: " << total << " inches.\n\n";
}
void averageRain(double rain[])
{
int count=0;
double avgRain=0;
double rainSum=0;
for (count =0; count <=11; count++)
{
rainSum = rainSum + rain[count];
}
avgRain = rainSum / 12;
cout<< "Average Rainfall: " <<avgRain<<" inches. \n\n";
}
void zeroArray(string arr[])
{
for(int i = 0; i < 12; ++i)
arr[i] = "";
}
|