COMPITO 4 MEDIA STIPENDI
#include<iostream>
#include<fstream>
#include<string>
#define MAX 100
using namespace std;
struct impiegato{
string nome;
string cognome;
int stipendio;
};
bool carica_file(string percorso, impiegato lista[], int &riemp);
int media_stipendi(impiegato lista[], int riemp);
void stampa_max(impiegato lista[], int riemp);
void stampa_oltre_media(impiegato lista[], int riemp, int media);
int main(){
string percorso;
impiegato lista[MAX];
int riemp = 0;
bool errore;
int media;
cout << "Inserire percorso file: ";
cin >> percorso;
do{
errore = carica_file(percorso, lista, riemp);
if (errore){
cout << "Inserire un nuovo percorso: ";
cin >> percorso;
}
} while (errore);
stampa_max(lista, riemp);
media = media_stipendi(lista, riemp);
stampa_oltre_media(lista, riemp, media);
system("PAUSE");
return 0;
}
bool carica_file(string percorso, impiegato lista[], int &riemp){
ifstream mioFile;
riemp = 0;
mioFile.open(percorso, ios::in);
if (!mioFile){
cout << "Errore nell'apertura del file!\n";
return true;
}
while (!mioFile.eof()){
mioFile >> lista[riemp].nome;
mioFile >> lista[riemp].cognome;
mioFile >> lista[riemp].stipendio;
riemp++;
}
mioFile.close();
return false;
}
int media_stipendi(impiegato lista[], int riemp){
int somma = 0;
if (riemp == 0)
return 0;
for (int i = 0; i < riemp; i++){
somma += lista[i].stipendio;
}
somma /= riemp;
cout << "Lo stipendio medio e': " << somma<<endl;
return somma;
}
void stampa_max(impiegato lista[], int riemp){
int max, imax=0;
max = lista[0].stipendio;
for (int i = 1; i < riemp; i++){
if (lista[i].stipendio > max){
max = lista[i].stipendio;
imax = i;
}
}
cout << "L'impiegato con lo stipendio maggiore e' " << lista[imax].nome << " " << lista[imax].cognome << ".\n";
return;
}
void stampa_oltre_media(impiegato lista[], int riemp, int media){
bool primo = true;
cout << "Gli impiegati che guadagnano piu' della media sono:\n";
for (int i = 0; i < riemp; i++){
if (lista[i].stipendio > media){
if (!primo){
cout << ", ";
}
cout << lista[i].nome << " " << lista[i].cognome;
if (primo)
primo = false;
}
}
cout << ".\n";
}
domenica 12 febbraio 2017
Iscriviti a:
Commenti sul post
(
Atom
)
Nessun commento :
Posta un commento