Bonsoir, je suis en Ts option ISN , j'ai un programme a faire qui correspond a la simulation d'un client qui rentre dans un magasin, voici l'énoncer :
Cahier des charges : 5 produits en vente : pain , eau , fruits, savon, pâtes prix respectifs : 1€, 0,50€, 2€50, 2€, 0,75€ quantités : 50, 40, 20,10, 60. Le client choisit ce qu'il veut, avec des quantités variées. À chaque produit acheté, le vendeur lui propose s'il veut autre chose. Un ticket sort avec les produits, les quantités, le prix à l'unité et le prix total. Il paie et on doit lui rendre la monnaie. Sécurité : ne peut acheter plus que le stock du magasin. 1
Pour le moment voici mon programme :
import java.util.Scanner; // N'ayant pas réussit la boucle de ré-édition de demande, notre programme se limite à la demande d'un produit, mais nous n'avont pas arreté de chercher.
do {System.out.println("Voulez-vous quelque chose?" ); choix3=dlc.nextLine();} while(!choix3.equalsIgnoreCase(oui)&&!choix3.equalsIgnoreCase(non)); if (choix3.equalsIgnoreCase(oui)){{
do {System.out.println("Choisissez un produit à acheter parmi les suivants:" ); for (int i=0;i<5;i++){ double [] quantites; quantites=new double[5]; quantites[0]=50; quantites[1]=40; quantites[2]=20; quantites[3]=10; quantites[4]=60;
/*if (choix1==1){quantites[0]=(quantites[0]-choix2);} else{ if (choix1==2){quantites[1]=(quantites[1]-choix2);} else{if(choix1==3){quantites[2]=(quantites[2]-choix2);} else{if(choix1==4){quantites[3]=(quantites[3]-choix2);} else{quantites[4]=(quantites[4]-choix2);}}}} -----> Etait ma solution pour bloquer les quantités, cependant ces dernières sont fermer par les crochets et ne sont donc pas reconnut.*/
maxi=max*choix2;
System.out.println("vous allez payez: "+maxi+" euros pour ce(s) article(s)" );
System.out.println("Voulez-vous autre chose? \n" ); choix4=dlc.nextLine(); } while(choix4.equalsIgnoreCase(oui));}
// après plusieurs essaie je ne vois pas comment faire marcher ma boucle de ré-édition de la demande. vous verrez dans la sortie de commande la question Voulez-vous autre chose? suivit directement la suite du programme...
System.out.println(" Entrez le montant avec lequel vous allez payer:" ); double montantapayer=dlc.nextDouble(); System.out.println(montantapayer); double rendu=montantapayer-maxi; System.out.println("rendu (En euros):"+rendu ); System.out.println("Merci, bonne fin de journée à vous, et à bientôt dans notre magasin" );}
else System.out.println("Vous avez dit de rien vouloir acheter. \n Merci d'être venu, au revoir et à bientôt" );}
}
Cependant, j'ai plusieurs choses que je n'arrive pas a comprendre, ( géneralement ce qui est en commentaire ), Pourquoi ma boucle do while ne fonctionne pas? Comment faire pour gerer la sécurité des stocks? et si jamais ces deux questions résolus, Comment doit-je faire pour que Si le client souhaite racheter quelque chose, ma variable maxi s'additionne pour pouvoir la mettre dans le ticket de caisse final?
Le 1er problème est que tu initialise les quantités, le stock et les prix dans la boucle. C'est pour ça que plus tard tu ne peux pas mettre à jour les quantités.
Marsh Posté le 15-01-2015 à 23:03:42
Bonsoir, je suis en Ts option ISN ,
j'ai un programme a faire qui correspond a la simulation d'un client qui rentre dans un magasin,
voici l'énoncer :
Cahier des charges :
5 produits en vente : pain , eau , fruits, savon, pâtes
prix respectifs : 1€, 0,50€, 2€50, 2€, 0,75€
quantités : 50, 40, 20,10, 60.
Le client choisit ce qu'il veut, avec des quantités variées. À chaque produit acheté, le vendeur lui
propose s'il veut autre chose.
Un ticket sort avec les produits, les quantités, le prix à l'unité et le prix total.
Il paie et on doit lui rendre la monnaie.
Sécurité : ne peut acheter plus que le stock du magasin.
1
Pour le moment voici mon programme :
import java.util.Scanner;
// N'ayant pas réussit la boucle de ré-édition de demande, notre programme se limite à la demande d'un produit, mais nous n'avont pas arreté de chercher.
public class LEPICERIE {
static void Hello(){
System.out.println("-------------------------------------------------------------------" );
System.out.println("Bonjour ! bienvenue dans notre magasin" );
System.out.println("-------------------------------------------------------------------" );
}
public static void main(String[] args) {
Hello();
Scanner dlc=new Scanner(System.in);
String oui="oui";
String non="non";
String choix3;
String choix4;
double max;
double maxi;
double maximum;
do {System.out.println("Voulez-vous quelque chose?" );
choix3=dlc.nextLine();}
while(!choix3.equalsIgnoreCase(oui)&&!choix3.equalsIgnoreCase(non));
if (choix3.equalsIgnoreCase(oui)){{
do {System.out.println("Choisissez un produit à acheter parmi les suivants:" );
for (int i=0;i<5;i++){
double [] quantites;
quantites=new double[5];
quantites[0]=50;
quantites[1]=40;
quantites[2]=20;
quantites[3]=10;
quantites[4]=60;
double [] tarif;
tarif= new double[5];
tarif[0]=1.00;
tarif[1]=0.50;
tarif[2]=2.50;
tarif[3]=2.00;
tarif[4]=0.75;
String []stock;
stock= new String[5];
stock[0]="pain ";
stock[1]="eau ";
stock[2]="fruits";
stock[3]="savon ";
stock[4]="pâtes ";
{
System.out.println((i+1)+":"+stock[i]+" prix: "+tarif[i]+"euros quantite: "+quantites[i]);
}}
double choix1=dlc.nextDouble();
System.out.println("votre choix: \n"+ choix1);
if (choix1==1){max=1.00;}
else{ if (choix1==2){max=0.50;}
else{if(choix1==3){max=2.50;}
else{if(choix1==4){max=2.00;}
else{max=0.75;}}}}
System.out.println("quelle quantitée en voulez_vous?" );
double choix2=dlc.nextDouble();
System.out.println("votre choix: \n"+ choix2);
/*if (choix1==1){quantites[0]=(quantites[0]-choix2);}
else{ if (choix1==2){quantites[1]=(quantites[1]-choix2);}
else{if(choix1==3){quantites[2]=(quantites[2]-choix2);}
else{if(choix1==4){quantites[3]=(quantites[3]-choix2);}
else{quantites[4]=(quantites[4]-choix2);}}}} -----> Etait ma solution pour bloquer les quantités, cependant ces dernières sont fermer par les crochets et ne sont donc pas reconnut.*/
maxi=max*choix2;
System.out.println("vous allez payez: "+maxi+" euros pour ce(s) article(s)" );
System.out.println("Voulez-vous autre chose? \n" );
choix4=dlc.nextLine(); }
while(choix4.equalsIgnoreCase(oui));}
// après plusieurs essaie je ne vois pas comment faire marcher ma boucle de ré-édition de la demande. vous verrez dans la sortie de commande la question Voulez-vous autre chose? suivit directement la suite du programme...
System.out.println(" Entrez le montant avec lequel vous allez payer:" );
double montantapayer=dlc.nextDouble();
System.out.println(montantapayer);
double rendu=montantapayer-maxi;
System.out.println("rendu (En euros):"+rendu );
System.out.println("Merci, bonne fin de journée à vous, et à bientôt dans notre magasin" );}
else System.out.println("Vous avez dit de rien vouloir acheter. \n Merci d'être venu, au revoir et à bientôt" );}
}
Cependant, j'ai plusieurs choses que je n'arrive pas a comprendre, ( géneralement ce qui est en commentaire ), Pourquoi ma boucle do while ne fonctionne pas?
Comment faire pour gerer la sécurité des stocks? et si jamais ces deux questions résolus, Comment doit-je faire pour que Si le client souhaite racheter quelque chose, ma variable maxi s'additionne pour pouvoir la mettre dans le ticket de caisse final?
Merci pour quiquonce qui pourrait m'aider !