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

Help find what is wrong with this program?? C++ Sample Output : Console (given p

ID: 3937165 • Letter: H

Question

Help find what is wrong with this program?? C++

Sample Output: Console (given provided input file)


Damian Hess 6.5
Andrew Nielsen 6.2
Alfred Yankovic 6.9
Inga Scharf 7.6

Sample Output: “lab08_out.txt” (given provided input file)


Hess Damian 5 10 7 5 9 2 8 5 6 8 6.5
Nielsen Andrew 7 9 8 7 4 7 3 4 9 4 6.2
Yankovic Alfred 6 5 8 10 9 6 5 7 3 10 6.9
Scharf Inga 9 2 7 10 7 8 8 10 6 9 7.6

Provided sample input file:

Program:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

//function prototype
void calcAvg(ifstream& in, ofstream& out);

int main()
{
   //variables that hold inputfile and outputfile
   ifstream infile;
   ofstream outfile;
  
   //open the input file
   infile.open("lab08_in.txt");
  
   //check if file is open
   if(infile.is_open())
   {
       //if yes, create an output file
       outfile.open("lab08_out.txt");
       //call the function calcAvg by passing infile and outfile as parameters
       calcAvg(infile,outfile);
      
       cout<<"Output file generated successfully... ";
       //close input file and output file
       infile.close();
       outfile.close();  
   }
   //if file not opened print an error message
   else
   {
       cout<<"File cannot be opened. Try again../n";
   }
   return 0;
}

//function that takes inpit file and out put file as parameters
void calcAvg(ifstream& in, ofstream& out) <-- HERE is where I get the error in codeblocks that i cant put the function definition here.
{
  
   int i,sumOfScores,scores[10];
   string firstname,lastname;
   double avg;
   //read firstname
   in>>firstname;
  
   //run a loop until end of file is reached
   while(in)
   {
       //set sumofscores to 0
       sumOfScores=0;
       //read lastname
       in>>lastname;
      
       //run a loop for 10 times and read the scores into scores array
       for(i=0;i<10;i++)
       {
           in>>scores[i];
           //add current score to sumofscores
           sumOfScores=sumOfScores+scores[i];
       }
       //calculate average
       avg= sumOfScores/10.0;
      
       //write firstname and lastname to output file
       out<<firstname<<" "<<lastname<<" ";
      
       //write scores to output file
       for(i=0;i<10;i++)
           out<<scores[i]<<" ";
  
       //write average to output file
       out<<avg<<endl;
      
       //read next firstname
       in>>firstname;
   }
}

Explanation / Answer

This should run fine . I just added cout command to output to console ..

//output to console
   cout<<lastname<<" "<<firstname<<" ";

//output to console
cout<<avg<<endl;

I added above two statements to function calcAvg to print output to console.

Complete program which runs fine for reference. Pls copy below code and try to run...

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//function prototype
void calcAvg(ifstream& in, ofstream& out);
int main()
{
//variables that hold inputfile and outputfile
ifstream infile;
ofstream outfile;
  
//open the input file
infile.open("lab08_in.txt");
  
//check if file is open
if(infile.is_open())
{
//if yes, create an output file
outfile.open("lab08_out.txt");
//call the function calcAvg by passing infile and outfile as parameters
calcAvg(infile,outfile);
  
cout<<"Output file generated successfully... ";
//close input file and output file
infile.close();
outfile.close();
}
//if file not opened print an error message
else
{
cout<<"File cannot be opened. Try again../n";
}
return 0;
}
//function that takes inpit file and out put file as parameters
void calcAvg(ifstream& in, ofstream& out) //HERE is where I get the error in codeblocks that i cant put the function definition here.
{
  
int i,sumOfScores,scores[10];
string firstname,lastname;
double avg;
//read firstname
in>>firstname;
  
//run a loop until end of file is reached
while(in)
{
//set sumofscores to 0
sumOfScores=0;
//read lastname
in>>lastname;
  
//run a loop for 10 times and read the scores into scores array
for(i=0;i<10;i++)
{
in>>scores[i];
//add current score to sumofscores
sumOfScores=sumOfScores+scores[i];
}
//calculate average
avg= sumOfScores/10.0;
  
//write firstname and lastname to output file
out<<firstname<<" "<<lastname<<" ";

   //output to console
   cout<<lastname<<" "<<firstname<<" ";
  
//write scores to output file
for(i=0;i<10;i++)
out<<scores[i]<<" ";
  
//write average to output file
out<<avg<<endl;
   //output to console
cout<<avg<<endl;
//read next firstname
in>>firstname;
}
}