Fragmentez un code en créant des méthodes

Signaler
Messages postés
4
Date d'inscription
lundi 12 mars 2012
Statut
Membre
Dernière intervention
14 mars 2012
-
Messages postés
4
Date d'inscription
lundi 12 mars 2012
Statut
Membre
Dernière intervention
14 mars 2012
-
Bonjour,
Je suis étudiant en 1bac en informatique de gestion.
J'ai un travail qui est difficile pour moi.
Si vous pouvez m'aider.

Je dois pour le programme d'un distributeur de boisson (ci-dessous) fragmentez le code en créant des méthodes de manière à ce que la méthode main se résume à un appel des méthodes:
- d'affichage des boissons disponible
- de gestion de l'introduction des pièces de monnaie
- de la remise de la monnaie
Merci d'avance à ceux qui m'auront aidé.




public class Devoir4DistributeurDeBoisson
{

public static void main(String[] args)
{
// information sur les boissons
int [] numBoissons = {1, 2, 3, 4, 5};
String [] boissons = {"Coca cola", "Coca light", "Fanta", "Sprite","Eau minerale"};
int [] prixBoissons = {100, 110, 100, 100, 80};
int [] qteBoissons = {1, 1, 1, 1, 1};
// les pièces de monnaie en centimes d'euros
int [] pieces = {1, 2, 5, 10, 20, 50, 100, 200};
boolean autreBoisson false , appareilPasVide true, choixIncorrect = false;
String reponse;
int choix, solde, paiement;
// menu
do
{
System.out.println("Boissons disponibles");
System.out.println("--------------------");
for(int i = 0; i < boissons.length; i++)
{
if(qteBoissons[i] > 0)
{
System.out.print(numBoissons[i] + "... " + prixBoissons[i]);
System.out.println(" cents ... " + boissons[i] + "... " + qteBoissons[i]);
}
}
do
{
System.out.print("\nVotre choix: ");
choix = Clavier.lireInt();
// le choix correspond à une boisson disponible?
if ((choix >= numBoissons[0]) && (choix <= numBoissons[numBoissons.length -1]))

{
if (qteBoissons[choix - 1] > 0)
{
choixIncorrect = false;
}
else
{
choixIncorrect = true;
System.out.println("Choix incorrect, recommencez!");
}
}
else
{
choixIncorrect = true;
System.out.println("Choix incorrect, recommencez!");
}
} while (choixIncorrect);

qteBoissons[choix - 1] -= 1;
// l'appareil est-il vide?
appareilPasVide = false;
for(int i = 0; i < qteBoissons.length; i++)
{
if (qteBoissons[i] > 0)
appareilPasVide = true;
}
//**************************************************
// paiement

solde = prixBoissons[choix - 1];

// affichage des pièces autorisées
System.out.println("Pieces de monnaie admises");
for (int i = 0; i < pieces.length ; i++)
System.out.print(pieces[i] + "\t");
System.out.println();
do
{
System.out.println("A payer: " + solde);
System.out.println("Introduisez une piece de monnaie: ");
paiement = Clavier.lireInt();

// recherche existence de la pièce
boolean existePiece = false;
for(int i = 0; i < pieces.length; i ++)
if (paiement == pieces[i])
existePiece = true;
if (existePiece)
{
solde -= paiement;
}
else
System.out.println("Piece inexistante");
} while(solde > 0);
//**************************************************
// S'il faut remettre de l'argent
solde = Math.abs(solde);
// recherche de la plus grande pièce inférieure au montant
// exemple:
// s'il faut remettre 195 cents, il faut d'abord remettre
// une pièce de 100
if(solde > 0)
{
System.out.println("Je vous dois: " + solde);
System.out.println("Je vous remets: ");
}
while (solde > 0)
{
int i, nbPieces;
for(i = pieces.length - 1; pieces[i] > solde; i --);
nbPieces = solde / pieces[i];
solde %= pieces[i];
System.out.println(nbPieces + " piece(s) de: " + pieces[i] + " (" + nbPieces * pieces[i] + ")");
}
//**************************************************
if(appareilPasVide)
{
System.out.println("Autre boisson? (o/n)");
reponse = Clavier.lireString();
if ((reponse.equals ("o")) || (reponse.equals ("O")))
autreBoisson = true;
else
autreBoisson = false;
}

} while (autreBoisson && appareilPasVide) ; // fin du menu
}
}

5 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
362
Bonjour,

Qu'est ce qui te pose problème exactement ?

Tu ne sais pas comment découper ton code ? Si c'est ca, la réponse est dans la question : tu dois faire trois méthodes et après, ce n'est que tu copier coller.
Messages postés
4
Date d'inscription
lundi 12 mars 2012
Statut
Membre
Dernière intervention
14 mars 2012

SALUT,

Au fond, je sais pas par quel bout commencer.
Exemple: a quel endroit je doit écrire public static?
et ce que je doit y écrire dedans si vous pouvez me donner un tutoriel avec des exemples.
J'ai loupé ce cours et je ne m'en sort pas.
Merci
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
362
Voilà qui explique tout !

Tu dois toujours récrire public static quand tu écris une méthode (tu n'utilises pas de fonctions objet il me semble)

alors toutes les entetes de tes méthodes seront :

public static void nomMethode
Messages postés
4
Date d'inscription
lundi 12 mars 2012
Statut
Membre
Dernière intervention
14 mars 2012

Bonjour,

Je pense y être arrivée mais j'ai juste une erreur que j'arrive pas a trouver pouvez vous m'orienter car je dois rendre ce travail aujourd'hui. et je bûche depuis plus de 2h juste sur cet erreur et pas moyen de trouver.

public class Devoir4DistributeurDeBoisson
{
//variable globale
static int[]qteBoissons={1,1,1,1,1};
public static void main(String[] args)
{
//Methode
int leChoix,leSolde;
boolean autreBoisson=true,appareilPasVide;

do
{

leChoix=affichageBoissons();
leSolde = introductionPieces(leChoix);
appareilPasVide()=appareilVideTest();
remettreArgent(leSolde);


if (appareilPasVide)
{
autreBoisson=continuer();
}
else
System.out.println("Appareil vide!");
}
while (autreBoisson&&appareilPasVide);
}

// information sur les boissons
public static int affichageBoissons()
{
int [] numBoissons = {1, 2, 3, 4, 5};
String [] boissons = {"Coca cola", "Coca light", "Fanta", "Sprite","Eau minerale"};
int[] prixBoissons={100,110,100,100,80};
int choix;
boolean appareilPasVide true, choixIncorrect false;
System.out.println("Boissons disponibles");
System.out.println("--------------------");
for(int i = 0; i < boissons.length; i++)
{
if(qteBoissons[i] > 0)
{
System.out.print(numBoissons[i] + "... " + prixBoissons[i]);
System.out.println(" cents ... " + boissons[i] + "... " + qteBoissons[i]);
}
}
do
{
System.out.print("\nVotre choix: ");
choix = Clavier.lireInt();
// le choix correspond à une boisson disponible?
if ((choix >= numBoissons[0]) && (choix <= numBoissons[numBoissons.length -1]))
{
if (qteBoissons[choix - 1] > 0)
{
choixIncorrect = false;
}
else
{
choixIncorrect = true;
System.out.println("Choix incorrect, recommencez!");
}
}
else
{
choixIncorrect = true;
System.out.println("Choix incorrect, recommencez!");
}
}
while (choixIncorrect);
qteBoissons[choix-1]-=1;
return choix;
}
//**************************************************
public static boolean appareilVideTest()
{
boolean appareilPasVide=false;
for(int i=0;i<qteBoissons.length;i++)
{
if(qteBoissons[i]>0)
{
appareilPasVide=true;
}
}
return appareilPasVide;
}
//**************************************************
// paiement
public static int introductionPieces(int choix)
{
int solde,paiement;
int [] prixBoissons = {100, 110, 100, 100, 80};
int [] pieces = {1, 2, 5, 10, 20, 50, 100, 200};
solde = prixBoissons[choix- 1];
System.out.println("Pieces de monnaie admises");
for (int i = 0; i < pieces.length ; i++)
{
System.out.print(pieces[i] + "\t");
System.out.println();
}
do
{
System.out.println("A payer: " + solde);
System.out.println("Introduisez une piece de monnaie: ");
paiement = Clavier.lireInt();
boolean existePiece = false;
for(int i = 0; i < pieces.length; i ++)
{
if (paiement == pieces[i])
existePiece = true;
}
if (existePiece)
{
solde -= paiement;
}
else
System.out.println("Piece inexistante");
} while(solde > 0);
return solde;
}
//**************************************************
// S'il faut remettre de l'argent
public static void remettreArgent(int solde)
{
int [] pieces = {1, 2, 5, 10, 20, 50, 100, 200};
solde = Math.abs(solde);

if(solde > 0)
{
System.out.println("Je vous dois: " + solde);
System.out.println("Je vous remets: ");
}
while (solde > 0)
{
int i, nbPieces;
for(i = pieces.length - 1; pieces[i] > solde; i --);
nbPieces = solde / pieces[i];
solde %= pieces[i];
System.out.println(nbPieces + " piece(s) de: " + pieces[i] + " (" + nbPieces * pieces[i] + ")");
}
}
//**************************************************

public static boolean continuer()
{
boolean autreBoisson;
String reponse;
System.out.println("Autre boisson? (o/n)");
reponse = Clavier.lireString();
if ((reponse.equals ("o")) || (reponse.equals ("O")))
{
autreBoisson = true;
}
else
{
autreBoisson = false;
}
return autreBoisson;
}
}
Messages postés
4
Date d'inscription
lundi 12 mars 2012
Statut
Membre
Dernière intervention
14 mars 2012

Ok j'ai enfin trouvé lol
merci quand même .