Les tableaux - constructeur [Résolu]

axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention - 15 mars 2012 à 16:00 - Dernière réponse : axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention
- 15 mars 2012 à 16:22
Bonjour,

J'ai un exercice où il s'agit de calculer la moyenne de plusieurs factures d'un même client. (Les montants des factures sont à mettre dans un tableau à remplir à l'aide du constructeur "Facture". Le remplissage se fait au clavier dans le main.) Ca donne :

class Facture{

private String nom;
double  tabMont []  = new double [4];



public Facture(String nom){
this.nom=nom;
}

public Facture(double element,int i){
this.tabMont[i]=element;
}

public void  Moyenne(){
int som=0;
double moy;
for(int i=0;i<tabMont.length;i++)
{
som += tabMont[i];
}
moy=(som/tabMont.length);
System.out.println("Le montant moyen des factures de monsieur "+ nom +" est  : "+som);
}	
}

C'était la classe du constructeur et j'ajoute celle du main :
class TstFacture{
public static void main (String [] args){

System.out.println("Entrer le nom du client");
Facture a = new Facture(Clavier.lireString());

System.out.println("Entrer le montant de la première facture");
Facture b = new Facture(Clavier.lireDouble(),0);
for (int i = 0;  i<3 ; i++){
System.out.println("Entrer le montant de la facture suivante");
Facture c = new Facture(Clavier.lireDouble(),i+1);
}

a.Moyenne();
}

}

Le problème est que le tableau du constructeur tabMont ne se rempli pas et j'obtiens comme moyenne : 0.

Comment encoder les données dans le tableau ?

Merci à ceux qui prendront la peine de me lire,

Axel


Les petits ruisseaux font les grands fleuves...
Afficher la suite 

2 réponses

Répondre au sujet
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 15 mars 2012 à 16:10
+3
Utile
Salut,

Je ne comprend pas ce que tu fais, tu as 4 nombres à mettre dans un tableau c'est ca ?

public class Facture{

private String nom;
private double[] tabMont;;

public Facture(String nom){
this.nom=nom;
this.tabMont = new double[4];
}

public void setMont(double montant, int position){
tabMont[position]=montant;
}

public double moyenne(){
double somme=0;
double moy;
for(int i=0;i<tabMont.length;i++){
som+=tabMont[i];
}
return somme/tabMont.length;
}
}


public class TstFacture{
public static void main (String [] args){
System.out.println("Entrer le nom du client");
Facture a = new Facture(Clavier.lireString());	
System.out.println("Entrer le montant de la première facture");
a.setMont(Clavier.lireDouble(), 0);
for (int i = 0;  i<3 ; i++){
System.out.println("Entrer le montant de la facture suivante");
a.setMont(Clavier.lireDouble(), i+1);
}
System.out.println(a.moyenne());
}

}

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Julien39
axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention - 15 mars 2012 à 16:22
0
Utile
Un grand merci pour le code et la rapidité de réponse ! ça tourne parfaitement !

A plus,

Axel






Les petits ruisseaux font les grands fleuves...
Commenter la réponse de axelvdk

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.