/*############################################
# (\__/)    Programme   : Résultat étudiant
# ( . .)    Auteur      : Martin Robinson
# c(")(")   Conception  : 31 Janvier
#		    Description :Créer un programme qui lira le nom, le prénom et les 5 notes de plusieurs étudiants 
						 dans un fichier etudiant.txt, qui calculera la note finale pour chacun et 
						 qui l’affichera à l’écran avec son nom.  Calculer aussi la moyenne du groupe 
						 et afficher là au bas de l’écran.
###########################################
         (\_/)   directive du pr�processeur
        ( . . ) /
###########################################*/

#include <iostream>
#include <fstream>
#include <iomanip>

#include "martinrobinson.hpp"

using namespace std;

/*       (\_/)   Programme Principal
        ( . . ) /
###########################################*/

int main ()
{
	/*  (\_/) initialisation
	___( . . )_/________________*/
	string nom,				//le nom de famille de l'etudiant
		   prenom;			//le prenom de l'etudiant

	float note,				//une des cinqs notes
		  noteFinale = 0,	//la moyenne finale de l'etudiant
		  total = 0;		//la moyenne du groupe

	int nbEtu = 0;			//le nombre d'etudiant

	ifstream entree;		//fichier de lecture

    viderEcran();
	if (!ouvrirFichierLecture(entree,"etudiant.txt"))
	{
		attendre();
		return 0;
	}

	//entree.open("etudiant.txt");	//ouverture du fichier
	//if (entree.fail())				//test du fichier
	//{
	//	cout << "Le fichier \"etudiant.txt\" est absent\n";
	//	attendre();
	//	return 0;
	//}

	getline(entree,nom);		//premiere lecture
	//if (entree.fail())			//test du contenu du fichier
	//{
	//	cout << "Le fichier \"etudiant.txt\" est vide ou invalide\n";
	//	attendre();
	//	return 0;
	//}

	cout << fixed << setprecision(0) << left
		 << setw(15) << "prenom"
		 << setw(10) << "nom"
		 << right
		 << setw(10) << "note"
		 << '\n' << setw(40) << left
		 << "___________________________________"
		 << '\n';

	/*  (\_/) partie principale
	___( . . )_/________________*/
	//entree >> prenom 
	//		>> nom;			//premier etudiant
	if (!lireString(entree,prenom) || !lireString(entree,nom))
	{
		cout << "il y a une erreure dans le fichier \"etudiant.txt\"\n";
		attendre();
		return 0;
	}
	while (entree)			//tanque le fichier n'est pas terminer
	{
		/*  (\_/) saisie et calcul des notes
		___( . . )_/________________*/
		for (int i=0;i<5;i++)	//lire cinq notes
		{
			//entree >> note;		//lecture individuelle
			//if (entree.fail())	//il se peut que le fichier soit rempli par un imbécile
			if (!lireFloat(entree,note))	//22 fev 2012
			{
				cout << "il y a une erreure dans le fichier \"etudiant.txt\"\n";
				attendre();
				return 0;
			}
			noteFinale += note;	//somme pour la moyenne
		}
		noteFinale /= 5;		//calcul la note finale
		total += noteFinale;	//somme pour moyenne générale
		nbEtu++;				//nombre d'étudiant
		/*  (\_/) affichage
		___( . . )_/________________*/
		cout << left << setw(15) << prenom
			 << setw(15) << nom
			 << right << setw(4) << noteFinale 
			 << '%' << (noteFinale<60?" EC":"   ") << '\n';

		/*  (\_/) saisie du prochain etudiant
		___( . . )_/________________*/
		lireString(entree,prenom);  //22fev 2012
		lireString(entree,nom);
	}
	/*  (\_/) affichage finale
	___( . . )_/________________*/
	cout << left << setw(40) 
		 << "___________________________________"
		 << endl << right << setw(30)
		 << "moyenne" 
		 << right << setw(4) << total/nbEtu 
		 << "%\n";	//dernier affichage
	entree.close();

	/*  (\_/)  fin
	___( . . )_/________________*/
	cout << bulle << lapin << "Fin du programme\n";
	attendre();
	return 0;
}
/*       (\_/)   fini
        ( . . ) /
###########################################*/