diff --git a/struct/elaborazione_dati_studente.cpp b/struct/elaborazione_dati_studente.cpp new file mode 100644 index 0000000..550b1b5 --- /dev/null +++ b/struct/elaborazione_dati_studente.cpp @@ -0,0 +1,56 @@ +/* +AUTORE: Manuel Vichi +Elaborazione di Dati Studente +*/ +#include +using namespace std; +struct Studente{ + char inizialeNome; + char inizialeCognome; + int matricola; + float media; +}; + +struct Risultato{ + int matricola; + char esito; +}; + +void elaboraStudenti(struct Studente studenti[], size_t size, struct Risultato risultati[]) { + for (size_t i = 0; i < size; i++) { + risultati[i].matricola = studenti[i].matricola; + if (studenti[i].media >= 6.0f) { + risultati[i].esito = 'P'; + } else { + risultati[i].esito = 'B'; + } + } +} + +int elaboraPromossi(struct Risultato risultati[], size_t size) { + int promossi = 0; + for (size_t i = 0; i < size; i++) { + if (risultati[i].esito == 'P') { + promossi++; + } + } + return promossi; +} + +void stampa(struct Risultato risultati[], size_t size, int promossi) { + for (size_t i = 0; i < size; i++) { + cout << "Studente con matricola #" << risultati[i].matricola << " | Esito: " << risultati[i].esito << endl; + } + cout << "Numero di promossi: " << promossi << endl; +} + +int main(void) { + struct Studente studenti[2]; + struct Risultato risultati[2]; + studenti[0] = {'M','V',1535574,8.2f}; + studenti[1] = {'M','R',8456457,4.7f}; + studenti[2] = {'M','V',2583562,6.0f}; + elaboraStudenti(studenti,3,risultati); + stampa(risultati,3,elaboraPromossi(risultati,3)); + return 0; +}