domenica 12 febbraio 2017

COMPITO 4 (CHIANESE ,PICCIALLI)

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";
}

Nessun commento :

Posta un commento