Gestion de notes

Description


Source / Exemple :


#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);
}

Conclusion :


Un élève ne peut avoir qu'une seule note ( on le suppose dumoins )

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.