/*
AUTORE: Manuel Vichi
Elaborazione di Dati Studente
*/
#include <iostream>
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;
}
