[C++]Programme de moyenne très compliqué

gabsens Messages postés 45 Statut Membre -  
gabsens Messages postés 45 Statut Membre -
Bonjour,
c'est la première fois que j'écris un programme en c++ aussi compliqué et justement, la fin avec les if est totalement foireuse, si quelqu'un pouvait me rectifier , ça serait sympa,
merci

#include <iostream>

using namespace std;

int main()
{
double a;
double b;
double c;
double d;
double e;
double f;
double g;
double i;
double j;
double h;
double k;
double l;
double m;
double n;
double o;
double moyenne;
char input2[50];
char input3[50];
char pseudo[50];
cout << "Ce programme pantagru\x82liste calule VOS moyennes ,cher magnoludovicien²²²²²²²²By Gabsens²²²²²²\n";
cout << "Quel est votre pseudo ?\n" ;
cin >> pseudo;
cout << "Salut " << pseudo <<endl;
cout << "Entrez vos moyennes de :\n";
cout <<"Francais:";
cin >> a;

cout<< "\nMath\x82matiques:";
cin >> b;

cout << "Histoire-G\x82ographie:";
cin >> c;

cout << "Physique-Chimie:",
cin >> d;

cout << "Passons donc aux SVT:";
cin >> g;

cout << "Faites vous allemand ??? R\x82pondez par oui ou non, ok?";

char input[20];
char correct [] = "oui";
cin >> input;
if (strcmp(input, correct) == 0)
{
cout << " d'accord, vous pouvez rentrer votre moyenne:";
cin >> e;
}
else
{
cout << "Pfff, dommage ; on continue?\n";
cout << "Entrez donc votre moyenne d'espagnol:";
cin >> f;
}

cout <<"Hum...EPS???:";
cin >> h;

cout << "Oh, j'allais oublier le latin...\ Mais fais-tu latin ??";
cin >> input2;
char correct2 [] = "oui";
if (strcmp(input2, correct2) == 0)
{
cout << " Mon enfant, beati pauperes spiritu:";
cin >> i;
}
else

{
cout << "Pfff, pas grave, mais tu fais surement Grec??\n";
cin >> j;
}
cout<< " Tadmam, c'est presque fini, il est donc de l'ISI.\n Tu en fais ??";
cin >>input3;
char correct3 [] = "oui";
if (strcmp(input3, correct3) == 0)
{
cout << " Bien :";
cin >> k;
cout << "\nPassons à la moyenne:";
}
else

{
cout << "Peu importe, passons à la moyenne:\n";

}
if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+e+k+i)/8;
cout << "Moyenne =" << moyenne;

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 1))
{
moyenne = (a+b+c+d+g+e+i)/7;
cout << "Moyenne =" << moyenne;

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+e+j+k)/8;
cout << "Moyenne =" << moyenne;

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 1))
{
moyenne = (a+b+c+d+g+e+j)/7;
cout << "Moyenne =" << moyenne;
if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+f+k+i)/8;
cout << "Moyenne =" << moyenne;
if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+f+k+j)/8;
cout << pseudo<<"votre moyenne est: " << moyenne;
}
}
}
}
}
}

system ("Pause");
}
Configuration: Windows XP
Opera 9.80

3 réponses

  1. watou Messages postés 241 Statut Membre 28
     
    quelques remarques :
    1.il fallait faire des if non imbriqués.
    2.tu as oublié deux cas.
    3.tu peux optimiser ton programme.

    #include <iostream> 
    
    using namespace std; 
    
    int main() 
    { 
    double a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,moyenne; 
    char input2[50]; 
    char input3[50]; 
    char pseudo[50]; 
    
    cout << "Ce programme calcule VOS moyennes \n"; 
    cout << "Quel est votre pseudo ?\n" ; 
    cin >> pseudo; 
    cout << "Salut " << pseudo <<endl; 
    cout << "Entrez vos moyennes de :\n"; 
    cout <<"Francais:"; 
    cin >> a; 
    
    cout<< "\nMath\x82matiques:"; 
    cin >> b; 
    
    cout << "Histoire-G\x82ographie:"; 
    cin >> c; 
    
    cout << "Physique-Chimie:", 
    cin >> d; 
    
    cout << "Passons donc aux SVT:"; 
    cin >> g; 
    
    cout << "Faites vous allemand ??? R\x82pondez par oui ou non, ok?"; 
    
    
    char input[20]; 
    char correct [] = "oui"; 
    cin >> input; 
    if (strcmp(input, correct) == 0) 
    { 
       cout << " d'accord, vous pouvez rentrer votre moyenne:"; 
       cin >> e; 
    } 
    else 
    { 
       cout << "Pfff, dommage ; on continue?\n"; 
       cout << "Entrez donc votre moyenne d'espagnol:"; 
       cin >> f; 
    } 
    
    cout <<"Hum...EPS???:"; 
    cin >> h; 
    
    cout << "Oh, j'allais oublier le latin...\ Mais fais-tu latin ??"; 
    cin >> input2; 
    char correct2 [] = "oui"; 
    if (strcmp(input2, correct2) == 0) 
    { 
       cout << " Mon enfant, beati pauperes spiritu:"; 
       cin >> i; 
    } 
    else 
    { 
       cout << "Pfff, pas grave, mais tu fais surement Grec??\n"; 
       cin >> j; 
    } 
    cout<< " Tadmam, c'est presque fini, il est donc de l'ISI.\n Tu en fais ??"; 
    cin >>input3; 
    char correct3 [] = "oui"; 
    if (strcmp(input3, correct3) == 0) 
    { 
       cout << " Bien :"; 
       cin >> k; 
       cout << "\nPassons à la moyenne:"; 
    } 
    else 
    { 
       cout << "Peu importe, passons à la moyenne:\n"; 
    } 
    if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0)) 
    { 
    moyenne = (a+b+c+d+g+e+k+i)/8; 
    cout << "Moyenne =" << moyenne; 
    }
    
    if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 1)) 
    { 
    moyenne = (a+b+c+d+g+e+i)/7; 
    cout << "Moyenne =" << moyenne; 
    }
    
    if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0)) 
    { 
    moyenne = (a+b+c+d+g+e+j+k)/8; 
    cout << "Moyenne =" << moyenne; 
    }
    
    if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 1)) 
    { 
    moyenne = (a+b+c+d+g+e+j)/7; 
    cout << "Moyenne =" << moyenne; 
    }
    
    if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0)) 
    { 
    moyenne = (a+b+c+d+g+f+k+i)/8; 
    cout << "Moyenne =" << moyenne; 
    }
    
    if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0)) 
    { 
    moyenne = (a+b+c+d+g+f+k+j)/8; 
    cout << pseudo<<"votre moyenne est: " << moyenne; 
    }
    
    // tu as oublié ces cas !!!!!!!!!!!!!!!!!!!!!
    
    if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 1)) 
    { 
    cout << "tu as oubli\x82 ce cas "; 
    }
    
    if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 1)) 
    { 
    cout << "tu as oubli\x82 ce cas "; 
    } 
    
    system ("Pause"); 
    }
    
    0
  2. loupius
     
    Pourquoi faire simple lorsqu'on peut faire compliqué !!! ;-)
    Si 'ai bien compris (sauf le 'h' dont je ne sais ce que tu en fais), le problème est le suivant:
    Le nombre de notes est 7 ou 8 et dans tous les cas et il y a 5 notes obligatoires: a, b, c, d, g.
    (1 ligne ) total = a + b + c + d + g et nbreNotes = 7
    (4 lignes) si 'input1' = 'oui' alors total = total + e sinon total = total + f
    (4 lignes) si 'input2' = 'oui' alors total = total + i sinon total = total + j
    (2 lignes) si 'input3' = 'oui' alors total = total + k et nbreNotes = 8
    (1 ligne ) moyenne = total / nbreNotes
    Soit seulement environ 12 lignes.
    On peut encore simplifier:
    (1 ligne ) total = a + b + c + d + g + f + j et nbreNotes = 7
    (2 lignes) si 'input1' = 'oui' alors total = total + e - f
    (2 lignes) si 'input2' = 'oui' alors total = total + i - j
    (2 lignes) si 'input3' = 'oui' alors total = total + k et nbreNotes = 8
    (1 ligne ) moyenne = total / nbreNotes
    Soit seulement environ 10 lignes.
    Bonne continuation.
    0
  3. gabsens Messages postés 45 Statut Membre 1
     
    Merci beaucoup grâce à votre aide j'ai appris beaucoup
    0