codice:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
void ApriFile(ifstream& inp, ofstream& outp);
void inizializzazione(int& f, int& m, double& F, double& M);
void sommaVoti(ifstream& inp, double& M, double& F, int& m, int& f);
void calcolaMedia(double& M, double& F, int& m, int& f, double& mM, double& mF);
void stampaRisultati(ofstream& outp, double mM, double mF);
int main () {
double sommaM, sommaF, mediaM, mediaF;
int contatoreM, contatoreF;
ifstream inFile;
ofstream outFile;
ApriFile(inFile, outFile);
inizializzazione(contatoreF, contatoreM, sommaM, sommaF);
sommaVoti(inFile, sommaM, sommaF, contatoreM, contatoreF);
calcolaMedia(sommaM, sommaF, contatoreM, contatoreF, mediaM, mediaF);
stampaRisultati(outFile, mediaM, mediaF);
inFile.close();
outFile.close();
}
void ApriFile(ifstream& inp, ofstream& outp){
inp.open("C:\\Users\\Gianluca\\Documents\\esercizi programmazione C++\\esercizio 9 pag 314\\input.txt");
outp.open("C:\\Users\\Gianluca\\Documents\\esercizi programmazione C++\\esercizio 9 pag 314\\output.txt");
outp<<setprecision(2)<<fixed<<showpoint;
}
void inizializzazione(int& f, int& m, double& M, double& F){
F = 0;
M = 0;
f = 0;
m = 0;
}
void sommaVoti(ifstream& inp, double& M, double& F, int& m, int& f){
char genere, spazio;
double gpa;
inp.get(genere);
inp>>gpa;
inp.get(spazio);
while (inp){
switch (genere){
case 'f':
f++;
F += gpa;
break;
case 'm':
m++;
M += gpa;
break;
default: cout<<"C'e' un carattere non valido!"<<endl;
break;}
inp.get(genere);
inp>>gpa;
inp.get(spazio);
}
}
void calcolaMedia(double& M, double& F, int& m, int& f, double& mM, double& mF){
mM = M/m;
mF = F/f;
}
void stampaRisultati(ofstream& outp, double mM, double mF){
outp<<"La media dei voti delle ragazze e' "<<mF<<"."<<endl;
outp<<"La media dei voti dei ragazzi e' "<<mM<<"."<<endl;
}