#include<iostream.h>
#include<string.h>
#include<malloc.h>
struct elevnot
{
char eleve[20];
int note;
};
struct liste
{
elevnot * releve;
int nbmax;
int nb;
};
liste bulletin;
void initliste()
{
bulletin.releve=NULL;
bulletin.nbmax=0;
bulletin.nb=0;
}
void ajoute()
{
int r=0,i;
elevnot * inter;
elevnot ajout;
bool sortir;
do
{
cout<<"Veuillez entrer le nom de l'\202l\212ve : ";
cin>>ajout.eleve;
sortir=true;
for (i=0;i<bulletin.nb;i++)
{
if(strcmp(bulletin.releve[i].eleve,ajout.eleve)==0)
{sortir=false;}
}
}while (sortir==false);
do
{
cout<<"Veuillez entrer la note de "<<ajout.eleve<<" : ";
cin>>ajout.note;
}while ((ajout.note<0)||(ajout.note>20));
if(bulletin.nb<bulletin.nbmax)
{bulletin.releve[bulletin.nb]=ajout;
bulletin.nb++;}
else
{
inter=(elevnot *)malloc((bulletin.nbmax+5)*sizeof(elevnot));
if(inter==NULL) r=-1;
else
{
for(i=0;i<bulletin.nb;i++)inter[i]=bulletin.releve[i];
bulletin.nbmax=bulletin.nbmax+5;
free(bulletin.releve);
bulletin.releve=inter;
bulletin.releve[bulletin.nb]=ajout;
bulletin.nb++;
}
}
}
void supprime(char mot[])
{
int i;
for (i=0;i<bulletin.nb;i++)
{
if (strcmp(bulletin.releve[i].eleve,mot)==0)
{
bulletin.releve[i]=bulletin.releve[bulletin.nb-1];
bulletin.nb--;
}
}
}
void viretout()
{
free(bulletin.releve);
initliste();
}
void showmethenotes()
{
int i;
for (i=0;i<bulletin.nb;i++)
{
cout<<"NOM : "<<bulletin.releve[i].eleve<<" NOTE : "
<<bulletin.releve[i].note<<"/20"<<endl;
}
}
void whatsthemoyenne()
{
int i;
double moyenne=0;
for (i=0;i<bulletin.nb;i++) moyenne+=bulletin.releve[i].note;
moyenne=moyenne/bulletin.nb;
if (bulletin.nb!=0) cout<<"MOYENNE : "<<moyenne<<endl;
}
void main()
{
int choix;
char nom[20];
do
{
cout<<"1. Ajouter une note"<<endl;
cout<<"2. Supprimer une note gr\203ce au nom"<<endl;
cout<<"3. Afficher les notes"<<endl;
cout<<"4. Afficher la moyenne"<<endl;
cout<<"5. Supprimer toutes les notes"<<endl;
cout<<"6. Quitter"<<endl;
cout<<"Votre choix : ";cin>>choix;
switch(choix)
{
case 1: ajoute();
break;
case 2: cout<<"Quel nom ? ";cin>>nom;
supprime(nom);
break;
case 3: showmethenotes();
break;
case 4: whatsthemoyenne();
break;
case 5: viretout();
break;
case 6: viretout();
break;
};
} while (choix!=6);
}