CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[L1] [JAVA] Distributeur de billets

jerome_2013
jerome_2013
Niveau 1
05 avril 2013 à 08:22:43

Bonjour,

dans le cadre d'un tp je dois réaliser une simulation de distributeur automatique de billets, tout en gérant le nombre de billets dans le distributeur :(

https://image.noelshack.com/fichiers/2013/14/1365142734-1.jpg
https://image.noelshack.com/fichiers/2013/14/1365142734-2.jpg

Voici ce que j'ai fait :
http://pastebin.com/W5g6mfGD

ca ne marche pas, comme vous vous en doutez c'est la fonction distribue qui pose problème, je ne vois pas où est-ce qu'il faut utiliser la fonction Math.max :(

Si quelqu'un pourrait m'aider svp !

_skip
_skip
Niveau 10
05 avril 2013 à 09:14:26

-Ton test dans vide() est à l'envers
-Tu peux dire à ton prof que les méthodes java commencent par des minuscules par convention.
-Ne pas utiliser "Boolean" mais "boolean"
- Il faut que tu testes si le montant qu'on veut retirer est divisible par 10 à l'aide d'un modulo.

Pour la distribution, il y a plusieurs solutions.

perso j'aurai

fait un truc du style

int resteADistribuer = somme;
int maxNb50 = this.nbBillets50;
int nb50 = 0;

while( resteADistribuer > 50 && maxNb50 > 0 )
{
maxNb50 - 1;
resteADistribuer -= 50;
nb50++;
}

Tu peux même factoriser cela sous forme de fonction.
Pourquoi ne pas décrémenter directement le membre de la classe? Parce que faut d'algo plus sophistiqué tu ne sais si à la fin tu auras assez de billets de 20 ou de 10 pour pouvoir distribuer.

Autre souci, il se peut que tu puisses pas livrer
2x50 + 10
mais que tu puisses livrer 50 + 2x20 + 2x10 mais vu le niveau de l'exercice je doute qu'on vous demande de gérer ça de façon sophistiquée.

jerome_2013
jerome_2013
Niveau 1
05 avril 2013 à 09:18:54

le test n'est pas à l'envers c'est bien écrit dans le tp que Vide() renvoie true s'il reste des billets et false sinon :(

Pour ta solution en fait on décrémente les attributs de la classe tout à la fin de la distribution ?

Pseudo supprimé
Pseudo supprimé 05 avril 2013 à 10:44:40

Demander que la méthode "vide" retourne "true" si le distributeur ne l'est pas est un non sens d'un point de vue conceptuel.
En Java, on ne met pas de majuscules aux méthodes, c'est pas du C# ou du C++ Microsoft.
Mettre les types de billets en attribut de classe est également un piètre choix au niveau de la conception : si le programme a besoin d'être utilisé pour un autre pays ? On doit tout réécrire ?
Au passage, rien que cette ligne "if (somme>(nbBillets50*50+nbBillets20*20+nbBillets10*
10))"
devrait inciter à utiliser une classe Billet plutôt que des valeurs magiques.

Bon, passons.

Déjà, tu devrais vérifier que ta somme est bien développable en produits de tes valeurs de billets (Si l'utilisateur demande 7€ ?).
D'un point de vue pratique, tu devrais, à l'instar des vrais distributeurs, veiller à distribuer les coupures pour optimiser tes stocks.

dark_drow
dark_drow
Niveau 15
05 avril 2013 à 17:01:36

en voyant le titre, je dirais Licence1 :hap:

dark_drow
dark_drow
Niveau 15
05 avril 2013 à 18:37:58

Toujours bloqué ? Perso j'ai du temps si tu as besoin :)

romane22
romane22
Niveau 5
05 avril 2013 à 22:51:22

L'auteur est banni :hap:

tititobby
tititobby
Niveau 1
02 février 2016 à 20:24:36

Si quelqu'un connait la solution je suis prenant, j'arrive pas à trouver le pb de son code.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment