Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme simulant une caisse

problème

Sujet résolu
    26 janvier 2006 à 22:09:11

    Bonsoir,

    pour les cours, j'ai un TP à faire dont le but est de simuler une caisse d'un hypermarché.
    Voilà le sujet:

    Citation : sujet


    Un magasin dispose de caisses automatiques dont le fonctionnement est le suivant :
    - la caissière rentre le prix et la quantité de chaque article
    - la caisse effectue la somme
    - la caissière frappe la somme donnée par le client avec le nombre et le type de pièces et/ou billets
    - la machine doit calculer la somme à rendre et déterminer avec quelles pièces et/ou quels billets elle devra rendre la monnaie.

    Les billets disponibles ont pour valeur (en Euros) 5, 10, 50, 100. 200, 500.
    Les pièces disponibles ont pour valeur (en Euros) 0.01, 0.02, 0.05, 0.10, 0.20, 0.50, 1.00, 2.00.

    En outre, la machine connaît, pour chaque type de pièces et de billets, le stock dont dispose la caissière. Il faudra donc prévoir une mise à jour du stock de pièces et de billets, et prévoir, le cas échéant, l'impossibilité de rendre la monnaie (dans ce cas, le réapprovisionnement du stock est obligatoire).

    Plusieurs clients peuvent se présenter dans une journée à la caisse. On affichera en fin de programme, et après chaque client, l'état final de la caisse.

    T.A.F. :
    Réaliser le programme correspondant.



    Voilà donc mon problème, c'est au niveau de déterminer avec quelles pièces et/ou quels billets on rend la monnaie.
    J'avais, au départ, dans l'idée d'utiliser des modulo, cependant, si le montant à rendre est un nombre à virgule (genre 2.20€), cela ne peut pas fonctionner vu que le modulo ne marche que sur les entiers.

    Pouvez-vous m'aider à trouver comment faire s'il vous plaît ?

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2006 à 22:18:16

      tu sépares le nombre en 2 entier et tu fais le modulo sur chaque ;)
      • Partager sur Facebook
      • Partager sur Twitter
        26 janvier 2006 à 22:21:28

        Citation : minirop

        tu sépares le nombre en 2 entier et tu fais le modulo sur chaque ;)


        Si j'ai bien compris, si j'ai 2.20, j'aurai une variable de type int qui aura pour valeur 2 et une variable du même type qui aura pour valeur 20 ?

        Il y a une fonction pour faire ça ? Car je ne vois pas trop comment faire. ^^;
        • Partager sur Facebook
        • Partager sur Twitter
          26 janvier 2006 à 22:29:42

          http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)
          • Partager sur Facebook
          • Partager sur Twitter
            26 janvier 2006 à 22:35:49

            Il n'y a pas un autre moyen plus simple ?
            Mon prof risque de me démolir si je lui mets un truc comme ça.Image utilisateur
            En plus, c'est pas du C, si ?
            • Partager sur Facebook
            • Partager sur Twitter
              26 janvier 2006 à 22:36:11

              Plus simple, tu utilises fmod().
              Et c'est du _C_ ici hum...
              • Partager sur Facebook
              • Partager sur Twitter
                26 janvier 2006 à 22:52:36

                Ok, merci.

                J'ai une erreur (je dois mal l'utiliser à mon avis ^^;):

                Citation : Pas de titre

                c:\Documents and Settings\Dark Angel\Mes documents\caisse\caisse.cpp(230): error C3861: 'fmod': identificateur introuvable, même avec une recherche qui dépend de l'argument



                Et voici une petite partie du code:

                if(fmod(arendre, 0.01) < arendre)
                {
                        piecerendue[0][1]=(arendre-fmod(arendre,0.01))/0.01;
                        arendre=fmod(arendre,0.01);
                }

                Ce n'est pas bien ce que je fais ? :euh:

                • Partager sur Facebook
                • Partager sur Twitter
                  26 janvier 2006 à 22:56:05

                  #include <math.h>
                  ?

                  ps : C'est chercher les coups que d'utiliser une extension .cpp pour du C. <_<
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 janvier 2006 à 23:00:30

                    Citation : rz0

                    #include <math.h>
                    ?


                    Ok, merci.

                    Citation : Pas de titre

                    ps : C'est chercher les coups que d'utiliser une extension .cpp pour du C. <_<


                    Bah, je fais comme on m'a appris. ^^;
                    Mais faut dire que mon prof n'est pas un bon prof...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 janvier 2006 à 8:07:39

                      je pense que l'astuce, serait de tout multiplier par 100. comme ça toutes tes sommes sont entiere et tu peux utiliser le modulo. Sinon tu peut rentrer le resultat de la division dans un entier comme àça tu aurais l'inverse du modulo.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Programme simulant une caisse

                      × 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