Answer:
see explaination
Step-by-step explanation:
#include <fstream>
#include <iostream>
#include <string>
//to set precision
#include <iomanip>
#include <bits/stdc++.h>
//structure of student is created.
struct Student
{
std::string name;
double grade1;
double grade2;
double grade3;
double Average;
// Constructor initializes semester scores to 0.
Student()
{
grade1 = 0;
grade2 = 0;
grade3 = 0;
Average = 0;
}
//Read from the file and calculate the average, min and max grade with name.
void read(std::fstream& fil)
{
std::string temp;
fil >> name;
fil >> temp;
grade1 = std::stod(temp);
fil >> temp;
grade2 = std::stod(temp);
fil >> temp;
grade3 = std::stod(temp);
Average = ((grade1 + grade2 + grade3) /3.0);
}
//write to file- name and average with precision 2.
void write(std::fstream& fil)
{
fil << name << " " << std::setprecision(2) << std::fixed << Average << std::endl;
}
//Logic to calculate the minimum grade of the class.
double min()
{
double min = grade1;
if(min > grade2)
{
min = grade2;
}
if(min > grade3)
{
min = grade3;
}
return min;
}
//Logic to calculate the maximum grade of the class.
double max()
{
double max = grade1;
if(max < grade2)
{
max = grade2;
}
if(max < grade3)
{
max = grade3;
}
return max;
}
//Print the name and average with precision 2 in the console.
void print()
{
std::cout << name << " " ;
std::cout << std::setprecision(2) << std::fixed << Average << std::endl;
}
};
//As per this question,students are set to 3.
Student students[3];
//main method.
int main()
{
// Read from the file question2.txt
std::fstream fil;
fil.open("question2.txt", std::ios::in);
for(int i = 0; i < 3; i++)
students[i].read(fil);
fil.close();
// finding the max grade of the class.
int max = students[0].max();
int temp = students[1].max();
if(max <temp)
max = temp;
temp = students[2].max();
if(max < temp)
max = temp;
// finding the min grade of the class.
int min = students[0].min();
temp = students[1].min();
if(min > temp)
min = temp;
temp = students[2].min();
if(min > temp)
min = temp;
// print the output in console.
std::cout << "Max Grade " << max << std::endl;
std::cout << "Min Grade " << min << std::endl;
for(int i = 0; i < 3; i++)
students[i].print();
// write to output file output2.txt .
fil.open("output2.txt", std::ios::out);
fil << "Max Grade " << max << std::endl;
fil << "Min Grade " << min << std::endl;
for(int i = 0; i < 3; i++)
students[i].write(fil);
fil.close();
return 0;
}