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
|
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
void openFiles(ifstream& inFile, ofstream& outFile);
void initialize(double& countMale, double& countFemale, double& sumMaleGPA, double& sumFemaleGPA, double& avgMaleGPA, double& avgFemaleGPA);
void sumGrades(ifstream& inFile, double& countMale, double& countFemale, double& sumMaleGPA, double&sumFemaleGPA);
void averageGrade(double countMale, double countFemale, double sumMaleGPA, double sumFemaleGPA, double& avgMaleGPA, double& avgFemaleGPA);
void printResults(ofstream& outFile, double avgMaleGPA, double avgFemaleGPA);
int main() {
double sumMaleGPA, sumFemaleGPA, avgMaleGPA, avgFemaleGPA, countMale, countFemale;
ifstream inFile;
ofstream outFile;
openFiles(inFile, outFile);
initialize(countMale, countFemale, sumMaleGPA, sumFemaleGPA, avgMaleGPA, avgFemaleGPA);
sumGrades(inFile, countMale, countFemale, sumMaleGPA, sumFemaleGPA);
averageGrade(countMale, countFemale, sumMaleGPA, sumFemaleGPA, avgMaleGPA, avgFemaleGPA);
printResults(outFile, avgMaleGPA, avgFemaleGPA);
inFile.close();
outFile.close();
return 0;
}
void openFiles(ifstream& inFile, ofstream& outFile)
{
inFile.open("GPA.txt");
outFile.open("avgGPA.txt");
outFile << showpoint << fixed << setprecision(2);
}
void initialize(double& countMale, double& countFemale, double& sumMaleGPA, double& sumFemaleGPA, double& avgMaleGPA, double& avgFemaleGPA)
{
countMale = 0;
countFemale = 0;
sumMaleGPA = 0;
sumFemaleGPA = 0;
avgMaleGPA = 0;
avgFemaleGPA = 0;
}
void sumGrades(ifstream& inFile, double& countMale, double& countFemale, double& sumMaleGPA, double&sumFemaleGPA)
{
char gender;
double gpa;
inFile >> gender;
while (!inFile.eof())
{
if (gender == 'm')
{
countMale++;
inFile >> gpa;
sumMaleGPA += gpa;
inFile.ignore(5 , '\n');
}
else if (gender == 'f')
{
countFemale++;
inFile >> gpa;
sumFemaleGPA += gpa;
inFile.ignore(5 , '\n');
}
inFile >> gender;
}
}
void averageGrade(double countMale, double countFemale, double sumMaleGPA, double sumFemaleGPA, double& avgMaleGPA, double& avgFemaleGPA)
{
avgMaleGPA = sumMaleGPA / countMale;
avgFemaleGPA = sumFemaleGPA / countFemale;
}
void printResults(ofstream& outFile, double avgMaleGPA, double avgFemaleGPA)
{
outFile << "GENDER GPA ANALYSIS..." << endl << endl << left << setw(15) << "AVG Male GPA:" << right << setw(7) << avgMaleGPA << endl << left << setw(15) << "AVG Female GPA:" << right << setw(7) << avgFemaleGPA;
|