Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help with version 3, not version 1. I put down version 1 because version

ID: 3553997 • Letter: I

Question

I need help with version 3, not version 1. I put down version 1 because version 3 is based off it. Please help me understand how to use the file input into the program. I have a file name already that my instructor gave me. Thank you!


Version 1 (all interactive). Write a program that reads in the average

monthly rainfall for a city for each month of the year and then reads in

the actual monthly rainfall for each of the previous 12 months. The

program then prints out a nicely formatted table showing the rainfall for

each of the previous 12 months as well as how much above or below

average the rainfall was for each month. The average monthly rainfall is

given for the months January, February, and so forth, in order. To obtain

the actual rainfall for the previous 12 months, the program first asks what

the current month is and then asks for the rainfall figures for the previous

12 months. The output should correctly label the months.

There are a variety of ways to deal with the month names. One

straightforward method is to code the months as integers and then do

a conversion before doing the output. A large switch statement is

acceptable in an output function. The month input can be handled in

any manner you wish, as long as it is relatively easy and pleasant for

the user.

After you have completed this program, produce an enhanced version

that also outputs a graph showing the average rainfall and the actual

rainfall for each of the previous 12 months. The graph should be similar

to the one shown in Display 7.8, except that there should be two bar

graphs for each month and they should be labeled as the average rainfall

and the rainfall for the most recent month. Your program should ask the user whether she or he wants to see the table or the bar graph and then

should display whichever format is requested. Include a loop that allows

the user to see either format as often as the user wishes until the user

requests that the program end.

Explanation / Answer

#include <iostream>
#include <fstream>
#define ROWS 8
#define COLS 12
#define NUMBERofROWS 16
using namespace std;
int year[ROWS], i, j,k;
float buffer[NUMBERofROWS][COLS],precipitation...
int isEven(int);
void readRainfall();
int main()
{
readRainfall();
return 0;
//readrainfall();
//Call other functions that are needed to fill the array, print the table of rainfall to the screen.
//Compute and report to the screen the total precipitation for the 3rd year (label it)
//Report to the screen the total precipitation for every year in may. (May is 5th column, January is 1st) Label this output

}

void readRainfall()
{
ifstream fin("rainfall.txt"); // input
if(!fin)
{
cout << "Cannot open INVENTORY file. ";
}
//Define arrays that will store the data
for (i=0,k=0; i < NUMBERofROWS; i++)
{
if(isEven(i))
{
fin>>buffer[i][0];
year[k]=(int)buffer[i][0];
cout<<' '<<year[k]<<' ';
k++;
}
else
{
for (j=0; j < COLS; j++)
{
fin>>buffer[i][j];
precipitation[i][j]=buffer[i][j];
cout<<precipitation[i][j]<<' ';
}
}
}
}
int isEven(int i)
{
if(i==0)
{
return 1;
}
else if(i==1)
{
return 0;
}
else if((i%2)==0)
{
return 1;
}
else
{
return 0;
}
}