begin process at 2012 02 10 02:34:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

[C++] Tuto N°2 erreur introuvable :s


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C++] Tuto N°2 erreur introuvable :s

vendredi 4 juillet 2008 à 13:31:25 | [C++] Tuto N°2 erreur introuvable :s

DevilBTB

Salut!

J apprend le C++, et j ai les bases des bases du C.

Je suivais un tuto pour apprendre d autre fonction et instruction, et j ai essayer de faire la calculatrice du tuto. Et j essaye de prendre de bonne habitudes pour les commentaires. Les tutos sont tres biens , mais j ai du faire une erreur je sais pas ou -___-
Mais quand je tape le premier nombre la verification me dit que le nombre n est pas correcte. "vous n'avez pas rentre un nombre correct"

[size=14pt][b]Fichier : main.cpp[/b][/size]
[quote][color=deepskyblue]/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.cpp

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 0.2a

Modification : 4/07/2008

**************************************/[/color]


[color=deepskyblue]/**************************************

Ce programme fait partie d'un

tutoriel de CPPFrance, pour apprendre

en appliquant les bases du C++

**************************************/[/color]


[color=deepskyblue]/**************************************

Fichiers à inclure

**************************************/[/color]


[color=limegreen]#include <iostream>
#include <cstdlib>
#include "main.h"[/color]


[color=deepskyblue]/**************************************

Utilisation de l'espace de noms standards

**************************************/[/color]


using namespace std;


void Saisie_Utilisateur(int Choix)
{
    switch (Choix)
    {
        case 1:
[glow=red,2,300][color=red]////////[/color]cin >> nombre;[color=red]////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////[/color][/glow]
        break;

        case 2:
        cin >> signe;
        break;
    }
}


[color=deepskyblue]/**********************************

Fonction Verification_Saisie

Fonction permettant la vérification de la saisie utilisateur

**********************************/[/color]

void Verification_Saisie(int Choix)
{
    [color=deepskyblue]//Fonction permettant un choix pour une verification de la saisie en fonction de l'argument nombre : 1 ou signe : 2[/color]
    switch (Choix)
    {
[i][b]        case 1:
        [color=deepskyblue]//Nous définissons qu'il y a une erreur pour la première saisie avant vérification[/color]
        Erreur = true;

        [color=deepskyblue]//Boucle tant qu'il y a une erreur[/color]
        while(Erreur == true)
        {
            [color=deepskyblue]//Définissons qu'il n'y a pas de décimal de mise avant la vérification[/color]
            Decimal = false;

            [color=deepskyblue]//Teste la saisie caractere apres caractere[/color]
            for(int i = 0; i < 10; i++)
            {

               [color=deepskyblue]//test si nous rencontrons la fin de la saisie[/color]
               if(int (nombre[i]) == 0)
               {

               [color=deepskyblue]//Il n'y a pas d'erreur[/color]
               Erreur = false;

               [color=deepskyblue]//Fin de verification de saisie[/color]
               break;
               }

               [color=deepskyblue]//Sinon, on teste si le caractere est un chiffre[/color]
               else if(int(nombre[i]) > 47 and int(nombre[i]) < 58)

               [color=deepskyblue]//Il n'y a pas d'erreur[/color]
               Erreur = false;

               [color=deepskyblue]//Sinon, on teste si le caractere est un point et s'il n'y en a déja pas un[/color]
               else if(int(nombre[i]) == 46 and Decimal == false)
               {
               [color=deepskyblue]//Il n'y a pas d'erreur,[/color]
               Erreur = false;

              [color=deepskyblue] //Nous ne pourrons plus mettre de point[/color]
               Decimal = true;
               }

               [color=deepskyblue]//Sinon, il y a une erreur[/color]
               else

               Erreur = true;

               [color=deepskyblue]//Si il y a une erreur, nous sortons de la vérification de saisie[/color]
               if(Erreur == true)
               break;
            }

           [color=deepskyblue] //Si il y a une erreur, nous demandons de rentrez un nouveau nombre[/color]
            if(Erreur == true)
            {
               cout << "vous n'avez pas rentre un nombre correct" << endl;
               cout << "entrez un nombre correct" << endl;
               Saisie_Utilisateur(1);
            }

        }
        break;

        case 2:

        [color=deepskyblue]//Nous définissons qu'il y a une erreur pour la première saisie avant vérification[/color]
        Erreur = true;

        [color=deepskyblue]//Boucle tant qu'il y a une erreur[/color]
        while(Erreur == true)
        {
           [color=deepskyblue] //Teste si le caractere est un operateur reconnu[/color]
            if(signe == '+' or signe == '-' or signe == '*' or signe == '/')
            {
               [color=deepskyblue]//il n'y a pas d'erreur[/color]
               Erreur = false;
            }

           [color=deepskyblue] //Sinon, il y a une erreur[/color]
            else
            {
               Erreur = true;

            }

           [color=deepskyblue] //Si il y a une erreur, nous demandons de rentrez un nouvel operateur[/color]
            if(Erreur == true)
            {
                cout << "vous n'avez pas rentre un operanteur correct" << endl;
                cout << "entrez un operateur correct" << endl;
                Saisie_Utilisateur(2);

            }

        }
        break;[/b][/i]
    }

}


[color=deepskyblue]/**************************************

Fonction main

Fonction principale du programme

**************************************/[/color]


int main()
{
    [color=deepskyblue]/**************************************

    Définition et initialisation des variables

    **************************************/[/color]

    [color=deepskyblue]// Variable contenant le resultat de l'opération[/color]
    double resultat = 0.0;

    [color=deepskyblue]//Variable contenant le signe de l'opération[/color]
    char signe = '0';

   [color=deepskyblue] /**************************************

    Corps de la fonction

    **************************************/[/color]

    [color=deepskyblue]// Fonction permettant de saisir le premier nombre[/color]
    cout << "              Nivek25 Calc 2008 V0.2b" << endl;
    cout << "Entrez le premier nombre " << endl;
    Saisie_Utilisateur(1);
    [color=deepskyblue]//Fonction de vérification de la saisie[/color]
    Verification_Saisie(1);

    [color=deepskyblue]// Fonction permettant de saisir le signe de l'opération[/color]
    cout << "Saisissez le signe de l'operation ( + - / * ) " << endl;
    Saisie_Utilisateur(2);
    [color=deepskyblue]//Fonction de verification de la saisie[/color]
    Verification_Saisie(2);

    [color=deepskyblue]// Fonction permettant de saisir le second nombre[/color]
    cout << "Entre le second nombre " << endl;
    Saisie_Utilisateur(1);
    [color=deepskyblue]//Fonction de vérification de la saisie[/color]
    Verification_Saisie(1);

    [color=deepskyblue]// Déterminer le signe de l'opération[/color]
    if (signe == '+')
    {
        resultat = nombre[0] + nombre[1];
    }

    else if (signe == '-')
    {
        resultat = nombre[0] - nombre[1];
    }

    else if (signe == '*')
    {
        resultat = nombre[0] * nombre[1];
    }

    else if (signe == '/')
    {
        resultat = nombre[0] / nombre[1];
    }

    [color=deepskyblue]// Affichage du résultat obtenu[/color]
    cout << "Le resultat est " << resultat << endl;


    system("PAUSE");
    return 0;
}
[/quote]

[glow=red,2,300]J ai surligné l'erreur en rouge. L'erreur me dit : no match for 'operator>>' in 'std::cin >> nombre'[color=red]/////////////////////////////////////////////////////////[/color][/glow]

[i][b]Et en gras italique, c est ou je dois avoir le problème. Le truc c est que j ai vérifié sur le tuto, a part les noms des variables qui changent, la fonction si vous la voyez pas c est : void Verification_Saisie(int Choix)[/b][/i]



[size=14pt][b]Fichier : main.h[/b][/size]
[quote]
/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.h

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 0.2a

Modification :

**************************************/




/**********************************

Ce fichier déclare les fonctions et les variables globales utilisées dans le programme

**********************************/


#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED


/**********************************

Definition des variables

**********************************/

//Variable contenant la saisie de l'operateur.
double nombre[5]={'0','0','0','0','0'};


//variable contenant le signe de l'operation
char signe='0';


//variable de presence d'erreur
bool Erreur = true;


//variable de presence de decimal
bool Decimal = false;


/**********************************

Déclaration des fonctions

**********************************/


//Fonction permettant la saisie utilisateur
void Saisie_Utilisateur(int intChoix);


//Fonction permettant la vérification de la saisie utilisateur
void Verification_Saisie(int intChoix);

#endif // MAIN_H_INCLUDED

[/quote]

Aidez moiiiii ^^

Je pète les plombs pas moyen de trouver -_____- et en plus y a même pas d erreur dans la fonction ou je dois avoir le problème...
vendredi 4 juillet 2008 à 13:35:16 | Re : [C++] Tuto N°2 erreur introuvable :s

DevilBTB

Oups erreur j ai voulu mettre un peu de couleur pour que se soit plus claire mais raté...

/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.cpp

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 0.2a

Modification : 4/07/2008

**************************************/


/**************************************

Ce programme fait partie d'un

tutoriel de CPPFrance, pour apprendre

en appliquant les bases du C++

**************************************/


/**************************************

Fichiers à inclure

**************************************/


#include <iostream>
#include <cstdlib>
#include "main.h"


/**************************************

Utilisation de l'espace de noms standards

**************************************/


using namespace std;


void Saisie_Utilisateur(int Choix)
{
    switch (Choix)
    {
        case 1:
cin >> nombre;
        break;

        case 2:
        cin >> signe;
        break;
    }
}


/**********************************

Fonction Verification_Saisie

Fonction permettant la vérification de la saisie utilisateur

**********************************/

void Verification_Saisie(int Choix)
{
    //Fonction permettant un choix pour une verification de la saisie en fonction de l'argument nombre : 1 ou signe : 2
    switch (Choix)
    {
        case 1:
        //Nous définissons qu'il y a une erreur pour la première saisie avant vérification
        Erreur = true;

        //Boucle tant qu'il y a une erreur
        while(Erreur == true)
        {
            //Définissons qu'il n'y a pas de décimal de mise avant la vérification
            Decimal = false;

            //Teste la saisie caractere apres caractere
            for(int i = 0; i < 10; i++)
            {

               //test si nous rencontrons la fin de la saisie
               if(int (nombre[i]) == 0)
               {

               //Il n'y a pas d'erreur
               Erreur = false;

               //Fin de verification de saisie
               break;
               }

               //Sinon, on teste si le caractere est un chiffre
               else if(int(nombre[i]) > 47 and int(nombre[i]) < 58)

               //Il n'y a pas d'erreur
               Erreur = false;

               //Sinon, on teste si le caractere est un point et s'il n'y en a déja pas un
               else if(int(nombre[i]) == 46 and Decimal == false)
               {
               //Il n'y a pas d'erreur,
               Erreur = false;

               //Nous ne pourrons plus mettre de point
               Decimal = true;
               }

               //Sinon, il y a une erreur
               else

               Erreur = true;

               //Si il y a une erreur, nous sortons de la vérification de saisie
               if(Erreur == true)
               break;
            }

            //Si il y a une erreur, nous demandons de rentrez un nouveau nombre
            if(Erreur == true)
            {
               cout << "vous n'avez pas rentre un nombre correct" << endl;
               cout << "entrez un nombre correct" << endl;
               Saisie_Utilisateur(1);
            }

        }
        break;

        case 2:

        //Nous définissons qu'il y a une erreur pour la première saisie avant vérification
        Erreur = true;

        //Boucle tant qu'il y a une erreur
        while(Erreur == true)
        {
            //Teste si le caractere est un operateur reconnu
            if(signe == '+' or signe == '-' or signe == '*' or signe == '/')
            {
               //il n'y a pas d'erreur
               Erreur = false;
            }

            //Sinon, il y a une erreur
            else
            {
               Erreur = true;

            }

            //Si il y a une erreur, nous demandons de rentrez un nouvel operateur
            if(Erreur == true)
            {
                cout << "vous n'avez pas rentre un operanteur correct" << endl;
                cout << "entrez un operateur correct" << endl;
                Saisie_Utilisateur(2);

            }

        }
        break;
    }

}


/**************************************

Fonction main

Fonction principale du programme

**************************************/


int main()
{
    /**************************************

    Définition et initialisation des variables

    **************************************/

    // Variable contenant le resultat de l'opération
    double resultat = 0.0;

    //Variable contenant le signe de l'opération
    char signe = '0';

    /**************************************

    Corps de la fonction

    **************************************/

    // Fonction permettant de saisir le premier nombre
    cout << "              Nivek25 Calc 2008 V0.2b" << endl;
    cout << "Entrez le premier nombre " << endl;
    Saisie_Utilisateur(1);
    //Fonction de vérification de la saisie
    Verification_Saisie(1);

    // Fonction permettant de saisir le signe de l'opération
    cout << "Saisissez le signe de l'operation ( + - / * ) " << endl;
    Saisie_Utilisateur(2);
    //Fonction de verification de la saisie
    Verification_Saisie(2);

    // Fonction permettant de saisir le second nombre
    cout << "Entre le second nombre " << endl;
    Saisie_Utilisateur(1);
    //Fonction de vérification de la saisie
    Verification_Saisie(1);

    // Déterminer le signe de l'opération
    if (signe == '+')
    {
        resultat = nombre[0] + nombre[1];
    }

    else if (signe == '-')
    {
        resultat = nombre[0] - nombre[1];
    }

    else if (signe == '*')
    {
        resultat = nombre[0] * nombre[1];
    }

    else if (signe == '/')
    {
        resultat = nombre[0] / nombre[1];
    }

    // Affichage du résultat obtenu
    cout << "Le resultat est " << resultat << endl;


    system("PAUSE");
    return 0;
}

vendredi 4 juillet 2008 à 15:58:18 | Re : [C++] Tuto N°2 erreur introuvable :s

buno

Administrateur CodeS-SourceS
Hello,
Pourquoi as-tu cliquer sur "Réponse Acceptée"? Tu as la solution à ton problème?
Je ne vois aucune déclaration de variables dans tes fonctions. Il est peut-être là le souci...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 4 juillet 2008 à 16:49:36 | Re : [C++] Tuto N°2 erreur introuvable :s

DevilBTB

Nan nan j ai pas la réponse, désolé ^^

Certaines variables sont en globales dans le fichier main.h.

La je remets pour que se soit plus claire ^^

Fichier main.cpp

/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.cpp

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 0.2a

Modification : 4/07/2008

**************************************/


/**************************************

Ce programme fait partie d'un

tutoriel de CPPFrance, pour apprendre

en appliquant les bases du C++

**************************************/


/**************************************

Fichiers à inclure

**************************************/



#include <iostream>
#include <cstdlib>
#include "main.h"


/**************************************

Utilisation de l'espace de noms standards

**************************************/



using namespace std;


void Saisie_Utilisateur(int Choix)
{
    switch (Choix)
    {
        case 1:
        cin >> nombre; <-------------------------------------- no match for 'operator>>' in 'std::cin >> nombre'
        break;

        case 2:
        cin >> signe;
        break;
    }
}


/**********************************

Fonction Verification_Saisie

Fonction permettant la vérification de la saisie utilisateur

**********************************/


void Verification_Saisie(int Choix)
{
    //Fonction permettant un choix pour une verification de la saisie en fonction de l'argument nombre : 1 ou signe : 2
    switch (Choix)
    {
        case 1:
        //Nous définissons qu'il y a une erreur pour la première saisie avant vérification
        Erreur = true;

        //Boucle tant qu'il y a une erreur
        while(Erreur == true)
        {
            //Définissons qu'il n'y a pas de décimal de mise avant la vérification
            Decimal = false;

            //Teste la saisie caractere apres caractere
            for(int i = 0; i < 10; i++)
            {

               //test si nous rencontrons la fin de la saisie
               if(int (nombre[i]) == 0)
               {

               //Il n'y a pas d'erreur
               Erreur = false;

               //Fin de verification de saisie
               break;
               }

               //Sinon, on teste si le caractere est un chiffre
               else if(int(nombre[i]) > 47 and int(nombre[i]) < 58)

               //Il n'y a pas d'erreur
               Erreur = false;

               //Sinon, on teste si le caractere est un point et s'il n'y en a déja pas un
               else if(int(nombre[i]) == 46 and Decimal == false)
               {
               //Il n'y a pas d'erreur,
               Erreur = false;

               //Nous ne pourrons plus mettre de point
               Decimal = true;
               }

               //Sinon, il y a une erreur
               else

               Erreur = true;

               //Si il y a une erreur, nous sortons de la vérification de saisie
               if(Erreur == true)
               break;
            }


            //Si il y a une erreur, nous demandons de rentrez un nouveau nombre
            if(Erreur == true)
            {
               cout << "vous n'avez pas rentre un nombre correct" << endl;
               cout << "entrez un nombre correct" << endl;
               Saisie_Utilisateur(1);
            }


        }
        break;


        case 2:

        //Nous définissons qu'il y a une erreur pour la première saisie avant vérification
        Erreur = true;

        //Boucle tant qu'il y a une erreur
        while(Erreur == true)
        {
            //Teste si le caractere est un operateur reconnu
            if(signe == '+' or signe == '-' or signe == '*' or signe == '/')
            {
               //il n'y a pas d'erreur
               Erreur = false;
            }

            //Sinon, il y a une erreur
            else
            {
               Erreur = true;

            }

            //Si il y a une erreur, nous demandons de rentrez un nouvel operateur
            if(Erreur == true)
            {
                cout << "vous n'avez pas rentre un operanteur correct" << endl;
                cout << "entrez un operateur correct" << endl;
                Saisie_Utilisateur(2);

            }

        }
        break;
    }

}


/**************************************

Fonction main

Fonction principale du programme

**************************************/



int main()
{
    /**************************************

    Définition et initialisation des variables

    **************************************/

    // Variable contenant le resultat de l'opération

    double resultat = 0.0;

    //Variable contenant le signe de l'opération
    char signe = '0';

    /**************************************

    Corps de la fonction

    **************************************/

    // Fonction permettant de saisir le premier nombr
e
    cout << "              Nivek25 Calc 2008 V0.2b" << endl;
    cout << "Entrez le premier nombre " << endl;
    Saisie_Utilisateur(1);
    //Fonction de vérification de la saisie
    Verification_Saisie(1);

    // Fonction permettant de saisir le signe de l'opération
    cout << "Saisissez le signe de l'operation ( + - / * ) " << endl;
    Saisie_Utilisateur(2);
    //Fonction de verification de la saisie
    Verification_Saisie(2);

    // Fonction permettant de saisir le second nombre
    cout << "Entre le second nombre " << endl;
    Saisie_Utilisateur(1);
    //Fonction de vérification de la saisie
    Verification_Saisie(1);

    // Déterminer le signe de l'opération
    if (signe == '+')
    {
        resultat = nombre[0] + nombre[1];
    }

    else if (signe == '-')
    {
        resultat = nombre[0] - nombre[1];
    }

    else if (signe == '*')
    {
        resultat = nombre[0] * nombre[1];
    }

    else if (signe == '/')
    {
        resultat = nombre[0] / nombre[1];
    }

    // Affichage du résultat obtenu
    cout << "Le resultat est " << resultat << endl;


    system("PAUSE");
    return 0;
}

Fichier main.h

/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.h

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 0.2a

Modification :

**************************************/





/**********************************

Ce fichier déclare les fonctions et les variables globales utilisées dans le programme

**********************************/



#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED


/**********************************

Definition des variables

**********************************/


//Variable contenant la saisie de l'operateur.
double nombre[5]={'0','0','0','0','0'};


//variable contenant le signe de l'operation
char signe='0';


//variable de presence d'erreur
bool Erreur = true;


//variable de presence de decimal
bool Decimal = false;


/**********************************

Déclaration des fonctions

**********************************/



//Fonction permettant la saisie utilisateur
void Saisie_Utilisateur(int intChoix);


//Fonction permettant la vérification de la saisie utilisateur
void Verification_Saisie(int intChoix);

#endif // MAIN_H_INCLUDED

_____________________________________________________________________

J ai noté l erreur que je comprend pas en rouge, et ce qui est en gros, c est mon second problème, car la quand je lance le programme, qui s ouvre dans la console, je note mon nombre et sa met :
vous n'avez pas rentre un nombre correct
entrez un nombre correct

Vous avez une piste pour l erreur et mon problème?
vendredi 4 juillet 2008 à 17:21:36 | Re : [C++] Tuto N°2 erreur introuvable :s

buno

Administrateur CodeS-SourceS
cin >> nombre;
--> tu ne peux pas mettre un tableau à cette endroit
cin >> nombre[0];  devrait mieux fonctionner

Ensuite, pour le second problème, le code est bizarrement fait...il faut que ton nombre soit compris entre 47 et 58 pour ne pas avoir d'erreurs.
Tu n'aurais pas mixer 2 codes par hasard?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 4 juillet 2008 à 17:39:53 | Re : [C++] Tuto N°2 erreur introuvable :s

DevilBTB

En faite, j ai rien compris a ce niveau du code,alors hier après midi, j y ai passer du temps a comprendre et j ai pas trop compris en faite lool. Alors aujourd'hui je suis venu ici.

Pour cin >> nombre[0]; sa a l aire d être bon, mais je suis pas sure, car au premier passage nombre[0] vaut une certaine valeur pour le premier nombre à saisir.
Et après pour le second nombre, il change encore de valeur pour la nouvelle saisie de l utilisateur. C est pas sa?

J ai essayer le programme et j ai toujours un resultat de 0.

Et oui, il accepte que les nombres entre 47 et 58. je vais voir pour changer sa et je redonnerai le code comme je l ai changer.
Merci de ta réponse, et je pense qu il va falloire que je change tout le code ou au moins la partie verification.
vendredi 4 juillet 2008 à 17:45:47 | Re : [C++] Tuto N°2 erreur introuvable :s

buno

Administrateur CodeS-SourceS
Si, si, le code que je t'ai donné affecte la valeur à nombre[0] seulement.
Bon courage pour refondre la partie vérification: en fait, le code est valable si tu récupères la saisie de l'opérateur sous forme de caractères et non de double
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 4 juillet 2008 à 17:52:51 | Re : [C++] Tuto N°2 erreur introuvable :s

DevilBTB

A donc il faut l instruction atof? Ou bien nan c est l inverse je crois.
Enfin je vais faire des recherches et je reviendrai vous dire si c est bon ^^.

Merci Buno.
jeudi 17 juillet 2008 à 21:44:44 | Re : [C++] Tuto N°2 erreur introuvable :s

DevilBTB

Réponse acceptée !
Me revoila pour donner de mes nouvelles sur se début de programme. Je l ai abandonner, et se matin j ai décidé de le remodeler, et d ajouter des fonctions.

J ai supprimer le probleme en le supprimant vraiment looooool

Mais j y ai ajouter d autre fonctionnalité, comme un menu et un calculateur de moyenne sans coef (je verrai pour en mettre plus tard, je trouve pas le moyen d en mettre).

Voila le fichier : main.cpp

/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.cpp

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 1.0a

Modification : 17/07/2008

**************************************/


/**************************************

Ce programme fait partie d'un

tutoriel de CPPFrance, pour apprendre

en appliquant les bases du C++

Et des idées de moi meme

**************************************/


/**************************************

Fichiers à inclure

**************************************/


#include <iostream>
#include <cstdlib>
#include "main.h"


/**************************************

Utilisation de l'espace de noms standards

**************************************/


using namespace std;

/**************************************

Fonction pour quitter le programme

***************************************/

int quitter()
{
    return 0;
}

/**************************************

Fonction de : refaire un calcul, retour au menu et quitter le programme

***************************************/

void retourBase()
{
    int choix=0;

    cout << "\n\n\t\t1 - Refaire un calcul\n\t\t2 - Retour au menu\n\t\t3 - Quitter le programme\n\n" << endl;
    cout << "\t Votre choix : ";
    cin >> choix;

    if (choix == 1)
    {
        base();
    }
    else if (choix == 2)
    {
        choixMenu();
    }
    else if (choix == 3)
    {
        quitter();
    }
    else
    {
        retourBase();
    }
}

/**************************************

Fonction de : refaire un calcul (moyenne) , retour au menu et quitter le programme

***************************************/

void retourMoyenne()
{
    int choix=0;

    cout << "\t\t1 - Refaire un calcul\n\t\t2 - Retour au menu\n\t\t3 - Quitter le programme\n\n" << endl;
    cout << "\t Votre choix : ";
    cin >> choix;

    if (choix == 1)
    {
        moyenne();
    }
    else if (choix == 2)
    {
        choixMenu();
    }
    else if (choix == 3)
    {
        quitter();
    }
    else
    {
        retourMoyenne();
    }
}

/**************************************

Fonction de : retour menu , quitter le programme

***************************************/

void retourApropos()
{
    int choix=0;

    cout << "\t\t1 - Retour au menu\n\t\t2 - Quitter le programme\n\n" << endl;
    cout << "\t Votre choix : ";
    cin >> choix;

    if (choix == 1)
    {
        choixMenu();
    }
    else if (choix == 2)
    {
        quitter();
    }
    else
    {
        retourApropos();
    }
}

/**************************************

Fonction de présentation

**************************************/

void prez()
{
    cout << "\t\t\t#################################\n\t\t\t###\t\t\t      ###\n\t\t\t###    Calculatrice V1.0a     ###\n\t\t\t###\t\t\t      ###\n\t\t\t#################################\n\n" << endl;
    cout << "\t\t   Menu :\n\t\t   ******\n\n" << endl;
}


/**************************************

Fonction de séléction du menu

**************************************/

void choixMenu()
{
    //Déclaration des variables
    int menuChoix=0;

    //Affichage du menu
    cout << "\t\t1 - Calcul de base" << endl;
    cout << "\t\t2 - Calcul de moyenne" << endl;
    cout << "\t\t3 - Quitter le programme" << endl;
    cout << "\t\t4 - A propos ..." << endl;

    //Demande d'entrer pour une option du menu
    cout << "\n\n\n Choix du menu : ";
    cin >> menuChoix;

    verifChoixMenu(menuChoix);
}

/**************************************

Verification de la saisie de la fonction choixMenu

***************************************/

void verifChoixMenu(int menuChoix)
{
    if (menuChoix == 1)
    {
        menu(1);
    }
    else if (menuChoix == 2)
    {
        menu(2);
    }
    else if (menuChoix == 3)
    {
        menu(3);
    }
    else if (menuChoix == 4)
    {
        menu(4);
    }
    else
    {
        cout << "Fausse manipulation\n\n" << endl;
        choixMenu();
    }
}


/**************************************

Fonction menu, avec les choix :

Calculs de base, moyennes, quitter.

A voir pour d'autre idée de menu une prochaine fois

***************************************/

void menu(int menuChoix)
{
    //Boucle de type switch, permet de faire un choix donc un menu
    switch (menuChoix)
    {
        case 1:
        {
            cout << "\n\t\tCalcul de base\n\n";
            base();
            break;
        }

        case 2:
        {
            cout <<"\n\t\tCalcul de moyenne\n\n";
            moyenne();
            break;
        }

        case 3:
        {
            cout << "\n\t\tAu revoir\n\n";
            quitter();
            break;
        }

        case 4:
        {
            cout << "\n\t\tA propos ..." << endl;
            aPropos();
            break;
        }

        //Default : C est si l'utilisateur du programme entre un choix autre que 1 , 2 et 3
        default:
        {
            cout << "Fausse manipulation\n\n" << endl;
            choixMenu();
            //Ce break est facultatif car c'est la derniere case.
            break;
        }

    }

}

/*************************************

Menu : Calcul de base

**************************************/

void base()
{
    /**************************************

    Définition et initialisation des variables

    **************************************/

    // Variables des deux nombres séléctionnés
    double Nombre1, Nombre2 = 0;

    // Variable contenant le resultat de l'opération
    double resultat = 0.0;

    //Variable contenant le signe de l'opération
    char signe = '0';

    /**************************************

    Corps de la fonction

    **************************************/

    // Fonction permettant de saisir le premier nombre
    cout << "Entrez le premier nombre " << endl;
    cin >> Nombre1;

    // Fonction permettant de saisir le signe de l'opération
    cout << "Saisissez le signe de l'operation ( + - / * ) " << endl;
    cin >> signe;

    // Fonction permettant de saisir le second nombre
    cout << "Entre le second nombre " << endl;
    cin >> Nombre2;

    // Déterminer le signe de l'opération
    if (signe == '+')
    {
        resultat = Nombre1 + Nombre2;
    }

    else if (signe == '-')
    {
        resultat = Nombre1 - Nombre2;
    }

    else if (signe == '*')
    {
        resultat = Nombre1 * Nombre2;
    }

    else if (signe == '/')
    {
        resultat = Nombre1 / Nombre2;
    }

    // Affichage du résultat obtenu
    cout << "Le resultat est " << resultat << "\n\n" << endl;

    retourBase();

}

/**************************************

Menu : Calcul de moyenne

***************************************/

void moyenne()
{
    /**************************************

    Définition et initialisation des variables

    ***************************************/

    float nombre = 0.0, nbAcumul, moyenne;
    int total = 0;

    /**************************************

    Changement de valeur des variables par l'utilisateur

    ***************************************/
    cout << "Saisissez le nombre total de valeurs : ";
    cin >> total;
    cout << "\n\n" << endl;

    cout << "Maintenant saisissez les valeurs, et a chaque nombre appuyez sur la touche entree. \n";

    for (int i=0; i < total ; i++)
    {
        cin >> nombre;
        nbAcumul = nbAcumul + nombre;
    }

    moyenne = (nbAcumul / total);

    cout << "La moyenne de vos valeurs est " << moyenne << "\n\n";

    retourMoyenne();

}


void aPropos()
{
    cout << "\t\tde Nivek25 Calc 2008 V1.0a\n\n" << endl;
    cout << "\t Version de test, si bug : nivek25@live.fr\n" << endl;
    cout << "\t\tCopyright (c) 2008 - Tous droits reserves.\n\n\n" << endl;

    retourApropos();
}

/**************************************

Fonction main

Fonction principale du programme

**************************************/


int main()
{
    prez();
    choixMenu();

    system("PAUSE");
    return 0;
}


















main.h


/**************************************

Programme : Nivek25 Calc 2008

Fichier : main.h

Créateur : Nivek25

Mail : nivek25@live.fr

Creation : 3/07/2008

Logiciel : Code::Blocks 8.02

Version : 1.0a

Modification : 17/07/2008

**************************************/




/**********************************

Ce fichier déclare les fonctions et les variables globales utilisées dans le programme

**********************************/


#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED


/**********************************

Definition des variables

**********************************/

//bariable du choix du menu
int menuChoix;

//variable contenant le signe de l'operation
char signe='0';


//variable de presence d'erreur
bool Erreur = true;


//variable de presence de decimal
bool Decimal = false;


/**********************************

Déclaration des fonctions

**********************************/
void aPropos();

void base();

void moyenne();

void menu(int menuChoix);

void verifChoixMenu(int menuChoix);

void choixMenu();

//Fonction main
int main();

#endif // MAIN_H_INCLUDED








Je suis assez content, c est le premier programme qui aboutit a un truc un peu util lol.

Dites m en se que vous en pensez ^^

Je l ameliorai plus tard quand j aurai le savoir suffisant lol et si il y a des bugs dites le moi ici. A priori aucun bug n est apparu (je l ai tester suffisament pour dire qu il n y a pas de bug ^^ mais on sait jamais lol)


Cette discussion est classée dans : nombre, erreur, saisie, color, deepskyblue


Répondre à ce message

Sujets en rapport avec ce message

lire : 1 32 15 2 3 ... [ par MoDDiB ] Comment mettre dans un tableau une saisie telle que :l'on connais le nombre des nombre mais pas le nombre de chiffre par nombreet il y a un espace ent Algo diffusion d'erreur [ par bigzooloo ] Bonjour,A partir d'une image en niveaux de gris, je souhaiterais lui appliquer un algo de diffusion d'erreur pour réduire le nombre de ndg. (le nombre Limiter la saisie à un nombre de caractere [ par cohenlio ] Bonsoir,savez vous comment limiter une saisie au clavier a un certain nombre de caractere, cad lorsque le nombre de caractere maximum est tapé, le cur Recherche Développeur - idée à soumettre [ par addyct ] Bonjour à tous, Je suis actuellement en début de formation de pilote professionnel et j'ai été surpris par l'absence de logiciel (qui ne sont pas en a Saisie de données [ par oligator ] Bonjour j'aimerais savoir s'il y a moyen de gérer la validité des saisies d'un utilisateur avec une méthode de iostream.Par exemple, lors de la saisie Changer la couleur d'une phrase [ par rfaes ] Bonjour,Ma question est surement redondante par rapport à ce qui a déjà été expliqué, mais je n'ai pas réussi à trouver mon bonheur, et je me place da Erreur sur code [ par cac188 ] Bonjour, étant nouveau sur la programmation de logiciel avec le SDK iPhone, je suis quelque tuto et je me retrouve avec une erreur dans mon code (j'ai Fonction sscanf récuperer un nombre dans une chaine de caractère [ par twintornado ] Bonjour bonjour, voici mon problème : je n'arrive pas a récupérer un nombre dans une chaine, voici mon code : #include #include int main() { flo [Aide]Foutu erreur de Link avec mySQL et VS2008 [ par Nixeus ] Bonjour à tous, Avant de commencer, je tiens à dire que j'ai cherché pas mal de temps sur forum et autres sites, ne trouvant pas de solution, je m'en saisie de touche [ par ritchou42 ] [color=purple]wawou mon 1ere poste[/color] [^^happy3] bonjour, tout le monde ! je suis en gros projet avec des collège de cours on doit crée tout un


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,778 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales