Calculateur de moyenne au bac

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 359 fois - Téléchargée 36 fois

Contenu du snippet

Ce code sert à calculer les moyennes de n'importe quel bac, apres avoir demandé a l'utilisateur le nom des matières, leurs coeffs, et les notes. Ce programme se veut essayer d'etre une amélioration de "bac s si" precedemment mis sur ce site.

Source / Exemple :


#include <iostream.h>

char* demande;
char* matieres[20];
int coeffs[20];
int x, i, somcoeff;
float notes[20];
float moyenne;

void main() {

cout<<"Entrez s'il vous plait les noms des matières ou 0 après la dernière"<<endl;
for (x=0; x<=20;x++)
{
cin>>demande;
matieres[x]=new char [strlen(demande) + 1];
strcpy(matieres[x], demande);
cout<<endl;
if (strcmp(matieres[x], "0")==0) {break;}
}

cout<<"Entrez les coefficients pour chaque matière s'il vous plait :";
for (i=0; i<=x; i++) {
cout<<"\nCoeff de "<<matieres[i]<<" : ";
cin>>coeffs[i];
}

cout<<"\n\nDonnez la note pour chaque matière s'il vous plait :";
for (x=0; x<=i; x++) {
cout<<"\n"<<matieres[x]<<" : ";
cin>>notes[i];
}

for (i=0; i<=x; i++) {
moyenne+=(notes[i]*coeffs[i]);
somcoeff+=coeffs[i];
}
moyenne= moyenne/ somcoeff;

cout<<"Votre moyenne est de :"<<moyenne<<" points.";

system("pause");
if (moyenne>=10)
{
cout<<"Bravo, vous avez eu votre bac !"<<endl;
system("pause");
}
for (x=0;x<=20;x++) {delete [] matieres[x];}

}

Conclusion :


Je crains que ce code, a cause de la fonction system() ne puisse marcher que sur windows.

A voir également

Ajouter un commentaire

Commentaires

luciedem
Messages postés
1
Date d'inscription
mardi 15 avril 2014
Statut
Membre
Dernière intervention
15 avril 2014
-
Hello,

Très sympa ton code en cherchant sur le web je suis tombé sur ton article, à vrai dire n'étant pas dans l'informatique je me suis contenté de celui que j'ai trouvé à cette url : http://www.izi-bac.fr/index.php/revisions-bac/simulateur-de-moyenne ;)
BeB3Re
Messages postés
24
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
31 mai 2003
-
le principe est bon mais ta meme oublié dans ta source d'inclure la lib stdlib.h
mais c marrant
cs_Kaid
Messages postés
950
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
-
Concernant la mémoire, tu déclares un tableau de 20 char*, c'est à dire un tableau de 20 chaines de caractères. Jusque que là c'est ok, mais ensuite, quand tu affectes une valeur à un élément du tableau (par exemple tab[0]), il te manque une allocation mémoire. Dans une "case" du tableau, il n'y a "de la place" que pour un pointeur de char* et non un char*.

#define STR_SAMPLE "Exemple"

char* matieres[20];
matieres[0]=new char [strlen(STR_SAMPLE) + 1];
strcpy(matieres[0], STR_SAMPLE);

// ...

delete [] matieres[0];

Si tu as développé ton programme avec Visual C++, passes en mode release ou utilises un outil comme Purify, l'erreur apparaitra tout de suite.

Dernière chose que j'avais oublié, attention à la comparaison de chaines de caractères. Le test matieres[x]=="0" est faux, c'est une erreur classique, il faut le remplacer par strcmp(matieres[x], "0")==0.
cs_tavernier
Messages postés
47
Date d'inscription
mardi 1 octobre 2002
Statut
Membre
Dernière intervention
3 juin 2003
-
je l'avais en fait deja compilé et executé mais sur un autre ordinateur. Je le retapais donc de mémoire. Ca explique quelques erreurs que j'ai essayé de modifier mais que voulez-vous dire en ce qui concerne l'allocation de mémoire ?
cs_GoldenEye
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
2 -
L'intention est louable et je t'en félicite. Mais la réalisation n'est pas encore parfaite (voir remarques de Kaid). De plus les conditions d'arrêt des boucles for me semblent douteuses.
Mais on peut faire encore plus condensé ! A vos compilateurs !

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.