begin process at 2012 05 27 14:59:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > CONVERTISSEUR

CONVERTISSEUR


 Information sur la source

Note :
Aucune note
Catégorie :Base de données Classé sous :calcul, débutant Niveau :Débutant Date de création :11/03/2010 Date de mise à jour :11/03/2010 18:59:34 Vu :3 183

Auteur : smartties

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
                                                                                                                                                                Voici un convertisseur de dollar en euro (ou l'inverse)
j'aimerai savoir si ma source est bien coder et savoir comment l'améliolrer

Source

  • #include "stdafx.h"
  • #include <iostream>
  • #include <windows.h>
  • #include <string.h>
  • using namespace std;
  • void cdollars (double b)
  • {
  • double a;
  • double r = 1.36544;
  • a = b * r;
  • cout <<" la conversion donne : " << a <<" dolars \n\n";
  • }
  • void dollarsc (double b)
  • {
  • double a;
  • double r = 0.73236;
  • a = b * r;
  • cout <<" la conversion donne : " << a <<" euros \n\n";
  • }
  • void LPL( std::string text )
  • {
  • for ( unsigned int i = 0; i < text.size(); ++i )
  • {
  • cout<<text[i];
  • Sleep(30);
  • }
  • }
  • int _tmain(int argc, _TCHAR* argv[])
  • {
  • int a = NULL;
  • double b = NULL;
  • char z[4], oui[4] = "oui", non[4] = "non";
  • bool nomix = NULL, nomax = true, nomer = false;
  • LPL("\a\t Bonjours, Bienvenu(e) dans le Convertisseur By Martin \n ");
  • do
  • {
  • LPL("Veuillez choisir votre mode de convertisseur : \n\n\n");
  • do
  • {
  • cout << "1- Euro via Dollars \n 2- Dollars via Euro : \n" <<endl;
  • cin >> a;
  • cout << "\n";
  • if(a == 1)
  • {
  • LPL("Vous avez choisi de convertir des Euros en Dollars \n");
  • nomer = false;
  • }
  • if(a == 2)
  • {
  • LPL("Vous avez choisi de convertir des Dollars en Euro \n\n");
  • nomer = false;
  • }
  • if(a !=2 && a != 1)
  • {
  • cout << "veuillez choisir la conversion en choisissant 1 ou 2\n\n";
  • nomer = true;
  • }
  • }while(nomer);
  • LPL("Veuillez entrer la somme a convertir \n");
  • cin >> b;
  • if(a == 1)
  • {
  • cdollars(b);
  • nomax = true;
  • }
  • if(a == 2)
  • {
  • dollarsc(b);
  • nomax = true;
  • }
  • while(nomax)
  • {
  • cout << " si vous voulez recommencez, veuillez répondre par oui ou non. \n";
  • cin >> z;
  • if(strcmp(z, oui) == 0)
  • {
  • nomix = true;
  • nomax = false;
  • }
  • if(strcmp(z, non) == 0)
  • {
  • nomix = false;
  • nomax = false;
  • }
  • if(strcmp(z, non) == 1 && strcmp(z, oui) == 1)
  • {
  • cout << " veuillez repondre a la question correctement \n";
  • }
  • }
  • }while(nomix);
  • return 0;
  • }
#include "stdafx.h"
#include <iostream>
#include <windows.h> 
#include <string.h>


using namespace std;

void cdollars (double b)
{   
 double a;
 double r = 1.36544;
 a = b * r;
 cout <<" la conversion donne : " << a <<" dolars \n\n";

}
 void dollarsc (double b)
 {
	  double a;
 double r = 0.73236;
 a = b * r;
 cout <<" la conversion donne : " << a <<" euros \n\n";
 }


void LPL( std::string text )
{
    for ( unsigned int i = 0; i < text.size(); ++i )
    {
        cout<<text[i];
		Sleep(30);
    }
}

int _tmain(int argc, _TCHAR* argv[])
{

  int a = NULL;
  double b = NULL;
  char z[4], oui[4] = "oui", non[4] = "non";
  bool nomix = NULL, nomax = true, nomer = false;

  LPL("\a\t Bonjours, Bienvenu(e) dans le Convertisseur         By Martin \n ");
  do
  {
  
	  LPL("Veuillez choisir votre mode de convertisseur : \n\n\n");
  do
  {
  cout << "1- Euro via Dollars \n 2- Dollars via Euro : \n" <<endl;
  cin >> a;
  cout << "\n";
   if(a == 1)
  {
	  LPL("Vous avez choisi de convertir des Euros en Dollars \n");
	  nomer = false;
  }
    if(a == 2)
     {
	   LPL("Vous avez choisi de convertir des Dollars en Euro \n\n");
       nomer = false;
     }
  if(a !=2 && a != 1)
  {
	  cout << "veuillez choisir la conversion en choisissant 1 ou 2\n\n";
	  nomer = true;
  }
  }while(nomer);

       LPL("Veuillez entrer la somme a convertir \n");
       cin >> b;

       if(a == 1)
  {
	  cdollars(b);
      nomax = true;
  }
  
  if(a == 2)
  {
      dollarsc(b);
	  nomax = true;
  }

  while(nomax)
  {
  cout << " si vous voulez recommencez, veuillez répondre par oui  ou  non. \n";
  cin >> z;
  if(strcmp(z, oui) == 0)
  {
	  nomix = true;
	  nomax = false;
	  
  }
  if(strcmp(z, non) == 0)
  {
	  nomix = false;
	  nomax = false;
	 
  }
  if(strcmp(z, non) == 1 && strcmp(z, oui) == 1)
  {
	  cout << " veuillez repondre a la question correctement \n";
  }
  }
  }while(nomix);

  return 0;
}



 Historique

11 mars 2010 18:59:37 :
zip

 Sources du même auteur

Source avec Zip Source avec une capture CASSE BRIQUE [C] [SDL]
Source avec une capture [C]BOUTON EN SDL
Source avec une capture [C] BALLES REBONDISSANTES EN SDL

 Sources de la même categorie

GESTION DE FICHIER ET DOSSIER + AUTRES par shinji63
Source avec Zip CREATION D'UN FICHIER DBF (EN C) par Stanel
Source avec Zip STRUCTURE DES FICHIERS DBF par Stanel
Source avec Zip Source avec une capture GESTION DES ENTREES/ SORTIES AVEC CODEBARRE par YvaddavY
Source avec Zip Source avec une capture QT4 ET MYSQL par lemda

 Sources en rapport avec celle ci

CALCUL DE CLEF RIB par Renfield
Source avec Zip Source avec une capture CASSE BRIQUE [C] [SDL] par smartties
Source avec une capture CALCUL DE VARIANCE par Minilogus
Source avec une capture CALCUL D'INCERTITUDE par Minilogus
PROGRAMME QUI CALCUL LE PPCM ET LE PGCD par AnoSantino

Commentaires et avis

Commentaire de Minilogus le 11/03/2010 18:55:29

Bonjour,

L'idée de ton code est bien, toutefois il y a certains problèmes.

Ton programme n'est pas portable (présence de #include<windows.h> ===> on ne peut pas le compiler en l'état sous linux). Je n'ai rien contre ça, mais pour un programme qui ne fait que convertir un chiffre en un autre... Tu admettras que c'est un peu dommage.

Ensuite tu as tendance à mixer le C et le C++, c'est pas super super pour la lecture de ton code. Par exemple, au lieu des -> \n <- met plutôt des -> <<endl <- (si tu veux le faire en C++), autrement utilise -> printf <- à la place de -> cout <- si tu privilégie le C.

Il me semble que les valeurs de conversion varie avec le temps, à moins que je ne me trompe je n'ai pas vu ton programme gérer les cours fluctuants des monnaies, puisque tu as mis un -> double r = 1.36544; Tu as donc fixé la valeur, alors qu'il serait bon de la saisir afin "d'étalonner" le programme.

Pour finir ton programme ne gère pas vraiment les erreur de saisie (ex: si je tape * au lieu de 9 (les touches sont très proches))...

je te propose donc ces 2 fonctions que j'ai réalisé (elle sont en c++)


#include <sstream>

int entier()
{
    std::string saisie;
    std::string verif;

    bool good=1;
    bool trouble=0;
    int num;

    do
    {
        if(good==0)
        {
            std::cout<<std::endl<<"-> Saisie incorrecte, ressaisissez: ";
        }

        std::cin>>saisie;

        std::istringstream iss(saisie);// conversion du type string en type double.
        iss>>num;
        if(iss.fail())
        {
            good=0;
            trouble=1;
        }
        else
        {
            std::ostringstream oss;
            oss<<num;
            verif=oss.str();

            if(verif.size() < saisie.size())
            {
                good=0;
                trouble=1;
            }
            else{good=1;}
        }

        if(good==1 && trouble==1)
        {
            std::cout<<"-> OK!"<<std::endl;
        }

    }while(good==0);

    return num;
}

double reel()
{
    std::string saisie;
    std::string verif;

    size_t found;
    bool good=1;
    bool trouble=0;
    double num;

    do
    {
        if(good==0)
        {
            std::cout<<std::endl<<"-> Saisie incorrecte, ressaisissez: ";
        }

        std::cin>>saisie;

        found=saisie.find_first_of(",");
        while (found!=std::string::npos)
        {
            saisie[found]='.';// les virgules françaises seront automatiquement transformées en point.
            found=saisie.find_first_of(",",found+1);
        }

        std::istringstream iss(saisie);// conversion du type string en type double.
        iss>>num;
        if(iss.fail())
        {
            good=0;
            trouble=1;
        }
        else
        {
            std::ostringstream oss;
            oss<<num;
            verif=oss.str();

            if(verif.size() < saisie.size())
            {
                good=0;
                trouble=1;
            }
            else{good=1;}
        }

        if(good==1 && trouble==1)
        {
            std::cout<<"-> OK!"<<std::endl<<std::endl;
        }

    }while(good==0);

    return num;
}

// voilà

Au lieu de taper  cin>>un_nombre;
tu tape un_nombre=entier();

Courage!... ^^

Commentaire de smartties le 11/03/2010 20:09:33

Génial merci pour ces deux fonctions. parcontre je ne comprend pas comment marchent les string et  comment les utiliser :
"std::istringstream iss(saisie);// conversion du type string en type double."
"std::ostringstream oss;"
est ce que sa serait possible d'avoir de tutoriels ou de explications  ?

Commentaire de Minilogus le 11/03/2010 20:28:49

  Je n'ai pas vraiment de bon tuto à te proposer...
  
Les strings sont des chaînes permettant de stocker des caractères.

par ex:

  std::string a;
  a="Bonjour";// ne pas oublier les "".
  std::cout<<a<<std::endl;// cela affichera Bonjour à l'écran.

//----------------------------------------------

std::istringstream iss(saisie);// conversion du type string en type double."// je me sert de ça pour faire entrer les caractères dans un flux dont le but est d'altérer les caractère de manière à ce qu'il soit possible de les faire rentrer dans une variable de type numérique (double, int, ...).


"std::ostringstream oss;"// même chose mais de numérique à string.


//---------------------------------------------------


J'ai prit la liberté de refaire ton programme en C++ de manière à ce que ça aille un peu mieux, n'hésite pas à t'en servir, il est pour toi ^^.

//----------------------------------------------------------------------------------------------------------

#include <iostream>
#include <sstream>

int entier()
{
    std::string saisie;
    std::string verif;

    bool good=1;
    bool trouble=0;
    int num;

    do
    {
        if(good==0)
        {
            std::cout<<std::endl<<"-> Saisie incorrecte, ressaisissez: ";
        }

        std::cin>>saisie;

        std::istringstream iss(saisie);// conversion du type string en type double.
        iss>>num;
        if(iss.fail())
        {
            good=0;
            trouble=1;
        }
        else
        {
            std::ostringstream oss;
            oss<<num;
            verif=oss.str();

            if(verif.size() < saisie.size())
            {
                good=0;
                trouble=1;
            }
            else{good=1;}
        }

        if(good==1 && trouble==1)
        {
            std::cout<<"-> OK!"<<std::endl;
        }

    }while(good==0);

    return num;
}

double reel()
{
    std::string saisie;
    std::string verif;

    size_t found;
    bool good=1;
    bool trouble=0;
    double num;

    do
    {
        if(good==0)
        {
            std::cout<<std::endl<<"-> Saisie incorrecte, ressaisissez: ";
        }

        std::cin>>saisie;

        found=saisie.find_first_of(",");
        while (found!=std::string::npos)
        {
            saisie[found]='.';// les virgules françaises seront automatiquement transformées en point.
            found=saisie.find_first_of(",",found+1);
        }

        std::istringstream iss(saisie);// conversion du type string en type double.
        iss>>num;
        if(iss.fail())
        {
            good=0;
            trouble=1;
        }
        else
        {
            std::ostringstream oss;
            oss<<num;
            verif=oss.str();

            if(verif.size() < saisie.size())
            {
                good=0;
                trouble=1;
            }
            else{good=1;}
        }

        if(good==1 && trouble==1)
        {
            std::cout<<"-> OK!"<<std::endl;
        }

    }while(good==0);

    return num;
}

int main()
{
    std::cout<<">-------------------- CONVERTISSEUR D'ARGENT --------------------<"<<std::endl<<std::endl;

    int quitter=0;
    int choix;
    double money;
    double val;

    std::cout<<"-> Etalonnage du programme <-"<<std::endl;
    std::cout<<"-> 1 euro = ";
    money=reel();
    std::cout<<std::endl<<"<--------------------------->"<<std::endl<<std::endl;

    do//pour le "quitter" de fin
    {
        std::cout<<"--------------------  MENU  --------------------"<<std::endl<<std::endl;

        std::cout<<"     1. Conversion euros -> dollards"<<std::endl;
        std::cout<<"     2. Conversion dollards -> euros"<<std::endl<<std::endl;
        std::cout<<"     0. ) Quitter ("<<std::endl;

        std::cout<<std::endl<<"--> Choix: ";
        do
        {
            choix=entier();
            if(choix<0 || choix>2){std::cout<<std::endl<<"-> Le choix "<<choix<<" n'existe pas, ressaisissez: ";}
        }while(choix<0 || choix>2);

        if(choix==0)
        {
            std::cout<<std::endl<<">----------------------------------------------------------------<"<<std::endl<<std::endl;
            return 0;
        }

        std::cout<<std::endl<<"Entrez la valeur que vous voulez convertir: ";
        val=reel();

        if(choix==1)
        {
            std::cout<<std::endl<<val<<" euros = "<<val*money<<" dollards";
        }
        else
        {
            std::cout<<std::endl<<val<<" dollards = "<<val/money<<" euros";
        }

        std::cout<<std::endl<<std::endl<<">----------------------------------------------------------------<"<<std::endl;
        std::cout<<std::endl<<"--> Faire un autre calcul d'incertitude? (1=oui/0=non): ";
        quitter=entier();
        std::cout<<std::endl<<">----------------------------------------------------------------<"<<std::endl<<std::endl;
    }while(quitter>0);
    return 0;
}


// voilà, si tu as des questions n'hésite pas à m'en faire part...

Commentaire de Minilogus le 11/03/2010 20:36:27

//Oups, je me suis trompé dans les lignes de fin,

//j'ai mis:

std::cout<<std::endl<<"--> Faire un autre calcul d'incertitude? (1=oui/0=non): ";

//il faut remplacer par:

std::cout<<std::endl<<"--> Faire une autre conversion? (1=oui/0=non): ";


//^^.

Commentaire de Minilogus le 11/03/2010 22:37:55

Voici un rectificatif global de ce que j'ai posté plus tôt.

//-------------------------------------------------------------------------------------

#include <iostream>
#include <sstream>

int entier()
{
    std::string saisie;
    std::string verif;

    bool good=1;
    bool trouble=0;
    int num;

    do
    {
        if(good==0)
        {
            std::cout<<std::endl<<"-> Saisie incorrecte, ressaisissez: ";
        }

        std::cin>>saisie;

        std::istringstream iss(saisie);// conversion du type string en type double.
        iss>>num;
        if(iss.fail())
        {
            good=0;
            trouble=1;
        }
        else
        {
            std::ostringstream oss;
            oss<<num;
            verif=oss.str();

            if(verif.size() < saisie.size())
            {
                good=0;
                trouble=1;
            }
            else{good=1;}
        }

        if(good==1 && trouble==1)
        {
            std::cout<<"-> OK!"<<std::endl;
        }

    }while(good==0);

    return num;
}

double reel()
{
    std::string saisie;
    std::string verif;

    size_t found;
    bool good=1;
    bool trouble=0;
    double num;

    do
    {
        if(good==0)
        {
            std::cout<<std::endl<<"-> Saisie incorrecte, ressaisissez: ";
        }

        std::cin>>saisie;

        found=saisie.find_first_of(",");
        while (found!=std::string::npos)
        {
            saisie[found]='.';// les virgules françaises seront automatiquement transformées en point.
            found=saisie.find_first_of(",",found+1);
        }

        std::istringstream iss(saisie);// conversion du type string en type double.
        iss>>num;
        if(iss.fail())
        {
            good=0;
            trouble=1;
        }
        else
        {
            std::ostringstream oss;
            oss<<num;
            verif=oss.str();

            if(verif.size() < saisie.size())
            {
                good=0;
                trouble=1;
            }
            else{good=1;}
        }

        if(good==1 && trouble==1)
        {
            std::cout<<"-> OK!"<<std::endl;
        }

    }while(good==0);

    return num;
}

int main()
{
    std::cout<<">-------------------- CONVERTISSEUR D'ARGENT --------------------<"<<std::endl<<std::endl;

    int quitter=0;
    int choix;
    double money;
    double val;

    std::cout<<"-> Etalonnage du programme <-"<<std::endl;
    std::cout<<"-> Donner la correspondance d'un euro en dollar: ";
    money=reel();
    std::cout<<std::endl<<"<--------------------------->"<<std::endl<<std::endl;

    do//pour le "quitter" de fin
    {
        std::cout<<"--------------------  MENU  --------------------"<<std::endl<<std::endl;

        std::cout<<"     1. Conversion euros -> dollars"<<std::endl;
        std::cout<<"     2. Conversion dollars -> euros"<<std::endl<<std::endl;
        std::cout<<"     0. ) Quitter ("<<std::endl;

        std::cout<<std::endl<<"--> Choix: ";
        do
        {
            choix=entier();
            if(choix<0 || choix>2){std::cout<<std::endl<<"-> Le choix "<<choix<<" n'existe pas, ressaisissez: ";}
        }while(choix<0 || choix>2);

        if(choix==0)
        {
            std::cout<<std::endl<<">----------------------------------------------------------------<"<<std::endl<<std::endl;
            return 0;
        }

        std::cout<<std::endl<<"Entrez la valeur que vous voulez convertir: ";
        val=reel();

        if(choix==1)
        {
            std::cout<<std::endl<<val<<" euros = "<<val*money<<" dollars";
        }
        else
        {
            std::cout<<std::endl<<val<<" dollars = "<<val/money<<" euros";
        }

        std::cout<<std::endl<<std::endl<<">----------------------------------------------------------------<"<<std::endl;
        std::cout<<std::endl<<"--> Faire une autre conversion? (1=oui/0=non): ";
        quitter=entier();
        std::cout<<std::endl<<">----------------------------------------------------------------<"<<std::endl<<std::endl;
    }while(quitter>0);
    return 0;
}

Commentaire de thebroyeur le 16/03/2010 19:39:19

Tu pourrait mettre quelques commentaires ainsi que les spécifications des fonctions ( pré-requis, résultat, par exemple) Ceci facilite grandement la lecture et évite de se casser la tete lorsque l'on veu reprendre le code aprés une période d'inactivitée ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

débutant butant... [ par grboss ] Avec Dev C++, des programmes bidons ne fonctionnent pas, car ils utilisent la fonction getch(); par exemple.avec turbo c++, ca passe, mais, il y a une Calcul du temps de chargement d'un prog... [ par MorZong ] Salut,Encore moi, je suis partout, là c'est pour me dire comment faire pour calculer le temps (en millisecondes si c'est possible) qu'a prit un progr débutant MFC : pb avec editbox multiline [ par robby ] bonjour,J'aimerais savoir comment faire pour rajouter des lignes dans une editbox multiline sans récupérer à chaque fois l'ancien contenu parce que mo débutant MFC : comment faire pour "enable/disable" des contrôles [ par robby ] Bonjour!J'ai vu qu'en MFC certaines API ont une autre syntaxe et je n'arrive pas à trouver comment on peut activer/ désactiver un contrôle.Avant je f Est-ce seulement moi ou il y a des sources dont on se passerait volontier [ par MeltedMind ] Je me demande si je suis le seul débile à croire ça ou bien si il y a de nombreux sources qui laissent à désirer. Les calculatrices de XPand, Affiche Librairies mathématiques VS matlab [ par devilinside ] Devant coder une interface graphique en visual C++ pour un logiciel de calcul, je suis fort dépourvu.Le code original du coeur de calcul tourne sous m Probleme de duree de calcul [ par Stubbornman ] Je suis actuellement, et maintenant depuis presque deux mois (je suis un debutant alors c'est long!!) sur une source sencee resoudre les carres magiqu Je uis un débutant en c++ quel livre me conseillez vous? [ par Youyou0214 ] Bonjour à tout le monde,Je suis un débutent en C++ est je voudrais savoir quel livre pourrais m'apprendre les bases du C++.Merci implicit declaration of function `int getchar(...)' [ par cognac ] À chaque fois que j'utilise getch(); j'obtien le message suivant:getch();Voici mon programme (en fait mon exercice):#include &lt;iostream.h&gt; //bib Calcul d'une opération en millisecondes [ par Thanatos ] Bonjour,Comment peut-on estimer le temps d'un calcul en millisecondes sous Borland C++ ?Je fais un programme qui compare les différents tris et j'aime


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,420 sec (3)

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