Partage
  • Partager sur Facebook
  • Partager sur Twitter

CONVERTISSEUR

    6 décembre 2006 à 18:40:19

    Voila ça fait un peu plus d'un mois que je suis les cours du site du zéro sur la programmation en C. Voilà mon premier projet est un convertisseur qui convertit les monnaies des pays européens.
    J'aimerait avoir un avis et que pourrait faire pour l'améliorer
    Voilà le code source

    //Programme realise par Louison
    //Programme realise le 4/11/2006

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {

    long choixMonnaie;

    printf("*** CONVERTISSEUR EUROPEEN ***\n");
    printf("1.Mark(Allemagne)\n");
    printf("2.Schilling(Autriche) \n");
    printf("3.Francs Belgique) \n");
    printf("4.Livres chypriote(Chypre) \n");
    printf("5.Couronnes danoise(Danemark) \n");
    printf("6.Pesetas(Espagne) \n");
    printf("7.Couronnes estonienne(Estonie)\n");
    printf("8.Markka(Finlande)\n");
    printf("9.Francs(France)\n");
    printf("10.Drachme(Grece)\n");
    printf("11.Forint(Hongrie)\n");
    printf("12.Livres(Irlande)\n");
    printf("13.Lires(Italie\n");
    printf("14.Lats(Letton)\n");
    printf("15.Litas(Lituanie\n");
    printf("16.Francs(Luxembourg)\n");
    printf("17.Livres(Malte)\n");
    printf("18.Florin(Pays-Bas)\n");
    printf("19.Zloty(Pologne)\n");
    printf("20.Escudo(Portugal)\n");
    printf("21.Couronnes tcheque(Republique tcheque\n");
    printf("22.Livres Sterling(Royaume-Uni\n");
    printf("23.Couronne(Slovaquie)\n");
    printf("24.Tolar(Slovenie)\n");
    printf("25.Couronne(Suede)\n");
    printf("Quel monnaie voulez-vous convertir ?\n");
    scanf(" %ld", &choixMonnaie);

    switch (choixMonnaie)
    {
    case 1 :
    printf("Vous voulez convertir des Mark en Euros\n");
    break ;

    case 2 :
    printf("Vous voulez convertir des Schilling en Euros\n");
    break ;

    case 3 :
    printf("VOus voulez convertir des Francs Belges en Euros\n");
    break;

    case 4 :
    printf("Vous voulez convertir des Livres chypriotes en Euros\n");
    break;

    case 5 :
    printf("Vous voulez convertir des Couronnes en Euros\n");
    break;

    case 6 :
    printf("VOus voulez convertir des Pesetas en Euros\n");
    break;

    case 7 :
    printf("Vous voulez convertir des Couronnes en Euros\n");
    break;

    case 8 :
    printf("Vous voulez convertir des Markka en Euros\n");
    break;

    case 9 :
    printf("Vous voulez convertir des Francs en Euros\n");
    break;

    case 10 :
    printf("Vous voulez convertir des Drachme en Euros\n");
    break;

    case 11 :
    printf("Vous voulez convertir des Forints en Euros\n");
    break;

    case 12 :
    printf("Vous voulez convertir des Livres en Euros\n");
    break;

    case 13 :
    printf("Vous voulez convertir des Lires en Euros\n");
    break;

    case 14 :
    printf("Vous voulez convertir des Lats en Euros\n");
    break;

    case 15 :
    printf("Vous voulez convertir des Litas en Euros\n");
    break;

    case 16 :
    printf("Vous voulez convertir des Francs en Euros\n");
    break;

    case 17 :
    printf("Vous voulez convertir des Livres en Euros\n");
    break;

    case 18 :
    printf("Vous voulez convertir des Florints en Euros\n");
    break;

    case 19 :
    printf("Vous voulez convertir des Zloty en Euros\n");
    break;

    case 20 :
    printf("Vous voulez convertir des Escudo en Euros\n");
    break;

    case 21 :
    printf("Vous voulez convertir des Couronnes en Euros\n");
    break;

    case 22 :
    printf("Vous voulez convertir des Livres Sterling en Euros\n");
    break;

    case 23 :
    printf("Vous voulez convertir des Couronnes en Euros\n");
    break;

    case 24 :
    printf("Vous voulez convertir des Tolar en Euros\n");
    break;

    case 25 :
    printf("Vous voulez convertir des Couronnes en Euros\n");
    break;
    } //Jai zappé un nombre dans la liste (à revoir)

    double conversion, nombre1=0, nombre2=1.95583, nombre3=13.7603,
    nombre4=0.58028, nombre5=7.4574, nombre6=166.386,
    nombre7=15.6466, nombre8=5.94573, nombre9=6.55957,
    nombre10=340.750, nombre11=245.45, nombre12=0.787564,
    nombre13=1936.27, nombre14=0.6246, nombre15=3.458,
    nombre16=40.3399, nombre17=0.4215, nombre18=2.20371,
    nombre19=4.1610, nombre20=200.482, nombre21=31.387,
    nombre22=0.6689, nombre23=41.972, nombre24=231.2224,
    nombre25=9.1656;


    printf("Entrez la somme a convertir\n");
    scanf(" %lf", &nombre1);

    if(choixMonnaie==1)
    { conversion = nombre2 * nombre1;
    printf("%lf Euros vaut %lf Mark\n", nombre1, conversion);}

    if(choixMonnaie==2)
    { conversion = nombre3 * nombre1;
    printf("%lf Euros vaut %lf Schillings\n", nombre1, conversion);}

    if(choixMonnaie==3)
    { conversion = nombre16 * nombre1;
    printf("%lf Euros vaut %lf Francs\n", nombre1, conversion);}

    if(choixMonnaie==4)
    { conversion = nombre4 * nombre1;
    printf("%lf Euros vaut %lf Livres\n", nombre1, conversion);}

    if(choixMonnaie==5)
    { conversion = nombre5 * nombre1;
    printf("%lf Euros vaut %lf Couronnes\n", nombre1, conversion);}

    if(choixMonnaie==6)
    { conversion = nombre6 * nombre1;
    printf("%lf Euros vaut %lf Pesetas\n", nombre1, conversion);}

    if(choixMonnaie==7)
    { conversion = nombre7 * nombre1;
    printf("%lf Euros vaut %lf Couronnes\n", nombre1, conversion);}

    if(choixMonnaie==8)
    { conversion = nombre8 * nombre1;
    printf("%lf Euros vaut %lf Markkas\n", nombre1, conversion);}

    if(choixMonnaie==9)
    { conversion = nombre9 * nombre1;
    printf("%lf Euros vaut %lf Francs\n", nombre1, conversion);}

    if(choixMonnaie==10)
    { conversion = nombre10 * nombre1;
    printf("%lf Euros vaut %lf Drachme\n", nombre1, conversion);}

    if(choixMonnaie==11)
    { conversion = nombre11 * nombre1;
    printf("%lf Euros vaut %lf Forint\n", nombre1, conversion);}

    if(choixMonnaie==12)
    { conversion = nombre12 * nombre1;
    printf("%lf Euros vaut %lf Livres\n", nombre1, conversion);}

    if(choixMonnaie==13)
    { conversion = nombre13 * nombre1;
    printf("%lf Euros vaut %lf Lires\n", nombre1, conversion);}

    if(choixMonnaie==14)
    { conversion = nombre14 * nombre1;
    printf("%lf Euros vaut %lf Lats\n", nombre1, conversion);}

    if(choixMonnaie==15)
    { conversion = nombre15 * nombre1;
    printf("%lf Euros vaut %lf Litas\n", nombre1, conversion);}

    if(choixMonnaie==16)
    { conversion = nombre16 * nombre1;
    printf("%lf Euros vaut %lf Francs\n", nombre1, conversion);}

    if(choixMonnaie==17)
    { conversion = nombre17 * nombre1;
    printf("%lf Euros vaut %lf Livres\n", nombre1, conversion);}

    if(choixMonnaie==18)
    { conversion = nombre18 * nombre1;
    printf("%lf Euros vaut %lf Florin\n", nombre1, conversion);}

    if(choixMonnaie==19)
    { conversion = nombre19 * nombre1;
    printf("%lf Euros vaut %lf Zloty\n", nombre1, conversion);}

    if(choixMonnaie==20)
    { conversion = nombre20 * nombre1;
    printf("%lf Euros vaut %lf Escudo\n", nombre1, conversion);}

    if(choixMonnaie==21)
    { conversion = nombre21 * nombre1;
    printf("%lf Euros vaut %lf Couronnes \n", nombre1, conversion);}

    if(choixMonnaie==22)
    { conversion = nombre22 * nombre1;
    printf("%lf Euros vaut %lf Livres Sterling\n", nombre1, conversion);}

    if(choixMonnaie==23)
    { conversion = nombre23 * nombre1;
    printf("%lf Euros vaut %lf Couronnes\n", nombre1, conversion);}

    if(choixMonnaie==24)
    { conversion = nombre24 * nombre1;
    printf("%lf Euros vaut %lf Tolars\n", nombre1, conversion);}

    if(choixMonnaie==25)
    { conversion = nombre25 * nombre1;
    printf("%lf Euros vaut %lf Couronnes\n", nombre1, conversion);}



    system("PAUSE");
    return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2006 à 18:43:31

      Les balises "code" tu connaîs ? :-°
      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2006 à 18:47:54

        Et les titres explicites? et l'interêt d'un titre en majuscule?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          6 décembre 2006 à 18:54:42

          Utilises des balises < code type="c" > et </ code > pour présenter ton code.

          Ensuite, je ne sait pas si tu as vu le chapître sur les tableaux, mais je pense qu'ils pourraient simplifier vachement ton code en évitant tous les ifs. Déjà,

          double conversion, nombre1=0, nombre2=1.95583, nombre3=13.7603,
          nombre4=0.58028, nombre5=7.4574, nombre6=166.386,
          nombre7=15.6466, nombre8=5.94573, nombre9=6.55957,
          nombre10=340.750, nombre11=245.45, nombre12=0.787564,
          nombre13=1936.27, nombre14=0.6246, nombre15=3.458,
          nombre16=40.3399, nombre17=0.4215, nombre18=2.20371,
          nombre19=4.1610, nombre20=200.482, nombre21=31.387,
          nombre22=0.6689, nombre23=41.972, nombre24=231.2224,
          nombre25=9.1656;

          /* Peut s'écrire aussi */

          double conversion;
          double nombres[24] = {0, 1.95583, ... , 9.1656 };

          /* Après, t'a plus qu'a te servir des variables nombre[0], nombre[1], ... COmme normalement */


          Peut être qu'un tableau de chaînes pourrait s'avérer utile pour éviter cet énorme collection de ifs :

          char *monnaies[25] = { "francs", "livres", ..., "pesetas" };

          /* ... */
          conversion = nombres[choixMonnaie-1] * nombre[0];
          printf("%lf Euros vaut %lf %s\n", nombre1, conversion, monnaies[choixMonnaie]);


          Déjà, rien qu'avec ça, on obtiens :


          /*NON TESTE, contient probablement encore des erreurs*/

          #include <stdio.h>
          #include <stdlib.h>

          int main(int argc, char *argv[])
          {

          long choixMonnaie;
          char *monnaies[25] = { "francs", "pesetas", ..., "livres sterling"};

          printf("*** CONVERTISSEUR EUROPEEN ***\n");
          printf("1.Mark(Allemagne)\n");
          printf("2.Schilling(Autriche) \n");
          printf("3.Francs Belgique) \n");
          printf("4.Livres chypriote(Chypre) \n");
          printf("5.Couronnes danoise(Danemark) \n");
          printf("6.Pesetas(Espagne) \n");
          printf("7.Couronnes estonienne(Estonie)\n");
          printf("8.Markka(Finlande)\n");
          printf("9.Francs(France)\n");
          printf("10.Drachme(Grece)\n");
          printf("11.Forint(Hongrie)\n");
          printf("12.Livres(Irlande)\n");
          printf("13.Lires(Italie\n");
          printf("14.Lats(Letton)\n");
          printf("15.Litas(Lituanie\n");
          printf("16.Francs(Luxembourg)\n");
          printf("17.Livres(Malte)\n");
          printf("18.Florin(Pays-Bas)\n");
          printf("19.Zloty(Pologne)\n");
          printf("20.Escudo(Portugal)\n");
          printf("21.Couronnes tcheque(Republique tcheque\n");
          printf("22.Livres Sterling(Royaume-Uni\n");
          printf("23.Couronne(Slovaquie)\n");
          printf("24.Tolar(Slovenie)\n");
          printf("25.Couronne(Suede)\n");
          printf("Quel monnaie voulez-vous convertir ?\n");
          scanf(" %ld", &choixMonnaie);


          printf("Vous voulez convertir des %s en Euros\n", monnaies[choixMonnaie-1] );

          double conversion;
          double nombres[25] = {0, 1.95583, ... , 9.1656 }; //TODO : trouver un nom plus explicite pour cette variable

          printf("Entrez la somme a convertir\n");
          scanf(" %lf", &nombres[0]); //TODO : trouver une meilleure méthode que scanf pour demander à l'utilisateur de taper du texte

          conversion = nombres[choixMonnaie-1] * nombre[0];
          printf("%lf Euros vaut %lf %s\n", &nombres[0], conversion, monnaies[choixMonnaie]);

          #ifdef __WIN32__ //Car n'est utile que sous windows
          system("PAUSE");
          #endif

          return 0;
          }

          Edit : j'ai rajouté quelques 'TODO' (choses à faire sur ce code).
          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2006 à 19:26:00

            Ok merci et non je connais pas les balises codes
            J'ai pas encore vu les tableau j'ai fini la premiere partie mais avant de passer à la seconde je m'entraine un peu
            • Partager sur Facebook
            • Partager sur Twitter

            CONVERTISSEUR

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown