#include using namespace std; #include // Inclusion pour numeric_limits const int MAXTAILLECHAINE = 16; // Taille max des chaines // Variable qui va ocntenir le nombre d'eleves int NBELEVES; // Structure Eleve : struct Eleve { char nom[MAXTAILLECHAINE]; // Nom de famille char prenom[MAXTAILLECHAINE]; // Prenom de l'eleve float moyenne; // Moyenne de l'eleve }; // Fonction principale void main(void) { cout << " ***Gerer une classe d'eleves***" << endl << endl; // Entrez la valeur de la taille du tableau cout << "Entrez le nombre d'eleves de la classe : "; cin >> NBELEVES; // Un nombre d'eleve inferieur a 1 serait aberrant while(NBELEVES<=1) { cout << " Erreur ! Le nombre d'eleves doit etre " << " strictement superieur a 1 : "; cin >> NBELEVES; } // Allocation dynamique du tableau Eleve *tab = new Eleve[NBELEVES]; // Si l'allocation n'est pas possible, // arret du programme if(tab == NULL) { cout << " Erreur lors de l'allocation " << "du tableau d'eleves !" << endl; system("pause"); exit(0); } cout << endl << " Saisie du nom, prenom et moyenne des " << NBELEVES << " eleves de la classe :" << endl << endl; // Parcours des eleve un par un for(int i=0; i> ws; cin.get(tab[i].nom, MAXTAILLECHAINE); // Vide le tampon de cin cin.clear(); cin.ignore(numeric_limits::max(), '\n'); /* Saisie du prenom */ cout << "Entrez le prenom : "; cin >> ws; cin.get(tab[i].prenom, MAXTAILLECHAINE); // Vide le tampon de cin cin.clear(); cin.ignore(numeric_limits::max(), '\n'); /* Saisie de la moyenne à etre compris entre 0 et 20*/ cout << "Entrez la moyenne : "; cin >> tab[i].moyenne; // Force la moyenne a etre compris entre 0 et 20 while(tab[i].moyenne < 0 || tab[i].moyenne > 20) { cout << "Valeur incorrecte ! " << "Veuillez la saisir a nouveau : "; cin >> tab[i].moyenne; // On relit la moyenne } /* Affichage d'un recapitulatif */ cout << "L'eleve " << tab[i].nom << " " << tab[i].prenom << " a " << tab[i].moyenne << " de moyenne." << endl << endl; system ("pause"); // Pause } cout << "Fin de la saisie des " << NBELEVES << " eleves." << endl; system("pause"); // Pause delete [] tab; // Libere la memoire du tableau }