rendered paste body#include <iostream>#include <fstream>#include <string>#include <iomanip>using namespace std;int TABLE(ofstream &fout,string L_Name,string F_Name,int grade_sum,float average,int lowest_grade,int next_lowest_grade); int main(){ ifstream fin; //Input file stream ofstream fout; //Output file stream fin.open("grades.txt"); //Open input file fout.open("averages.txt"); //Open output file float average; float highest_ave=-999; float lowest_ave=999; int i; int grade; int grade_sum; int num_of_grade; int lowest_grade; int next_lowest_grade; string L_Name; string F_Name; string HighL_Name; string HighF_Name; string LowF_Name; string LowL_Name; fout<<"GRADE REPORT"<<endl; fout<<"============"<<endl<<endl; fout<<setw(27)<<"Grade Sum"<<setw(13)<<"Average"<<setw(18) <<"Lowest-Grade"<<setw(21)<<"Next Lowest Grade"<<endl; while (fin>>F_Name>>L_Name>>num_of_grade>>grade) { grade_sum = grade; lowest_grade= grade; next_lowest_grade= grade; for ( i=1; i < num_of_grade; i++) { fin>>grade; if (grade <= lowest_grade) lowest_grade=grade; else if (grade <= next_lowest_grade) next_lowest_grade=grade; grade_sum += grade; } grade_sum=grade_sum - lowest_grade - next_lowest_grade; average=grade_sum/float(num_of_grade-2); if (average < lowest_ave) { lowest_ave=average; LowF_Name=F_Name; LowL_Name=L_Name; } if (average > highest_ave) { highest_ave=average; HighF_Name=F_Name; HighL_Name=L_Name; } TABLE(fout,L_Name,F_Name,grade_sum,average,lowest_grade,next_lowest_grade); } fout<<"Highest Average: "<<HighF_Name<<" "<<HighL_Name<<" ("<<highest_ave<<")"<<endl; fout<<"Lowest Average: "<<LowF_Name<<" "<<LowL_Name<<" ("<<setprecision (2)<<lowest_ave<<")"<<endl<<endl; fout<<" *******END OF REPORT********"<<endl<<endl; return 0;}int TABLE(ofstream &fout,string L_Name,string F_Name,int grade_sum,float average,int lowest_grade,int next_lowest_grade){ fout<<F_Name[0]<<". "<<setw(15)<<L_Name<<setw(6)<<" "<<grade_sum<<setw(12)<<setprecision (2)<<average<<setw(15)<<lowest_grade<<setw(18)<<next_lowest_grade<<endl<<endl;return 0;}