A l'aide! Questions sur appel méthodes

 
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Java
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
mockmock
dummy mioche
dummy mioche


Inscrit le: 17 Déc 2003
Messages: 1

MessagePosté le: Mer Déc 17, 2003 8:09 pm    Sujet du message: A l'aide! Questions sur appel méthodes Répondre en citant

Bonjour à tous!

J'ai absolument besoin d'aide. Je dois avoir fini un code pour ce vendredi et j'ai quelques problèmes. Je suis un novice en java. Voici le code:

Code:
// programme 1 nommé : Personne.java
public class Personne {

// Age de cette personne

private int age;

// Nom de cette personne

private String nom ;

// Prénom de cette personne

private String prenom ;

public Personne(String nom,String prenom,int age){
this.nom=nom;
this.prenom=prenom;
this.age=age;
}

public String getnom(){
return nom;
}

public String getprenom(){
return prenom;
}

public int getage(){
return age;
}
public String toStringp(){
return "Cette personne de Nom complet "+prenom+" "+nom+" Et de Age: "+age+" ans";
}
}

// programme 2 nommé : Compte.java

public class Compte{

// Numéro du compte bancaire
private final int num;
private static int numeroCompte=1;

// Solde du compte bancaire

private double solde ;

// Client propriétaire de ce compte bancaire

private Personne personne ;

public Compte(double salaireInitiale,Personne personne){
num=numeroCompte;
solde=salaireInitiale;
this.personne=personne;
numeroCompte++;
}

// Déposer un montant sur le compte


void depot (double montant) {

solde = solde + montant ;

}

// Retirer un montant du compte

void retrait (double montant) {
if(solde>montant)
solde = solde - montant ;
else System.out.println("Votre solde est insufisant pour la montant q vous voulez retirez \n   L'operation ne peut etre effectué");

}


// Tester si le compte est a découvert


boolean estADecouvert () {

return solde < 0 ;

}
public int getNumeroCompte(){
return num;
}
public double getSolde(){
return solde;
}
public Personne getPersonne(){
return personne;
}
public String toStringCompte(){
return personne.toStringp()+"\nSon Solde: "+getSolde()+"  Son Numero de Compte: "+getNumeroCompte();
}

}


// programme 3 nommé :  banque.java
import java.util.Vector;
public class Banque{

private Vector v = new Vector();
private Compte c;




// La fonction qui cree les comptes

boolean creerCompte(int solde, Personne personne){
     boolean b = true;
     c = new Compte(solde,personne);
    if(!(v.contains(c))) {
    v.addElement(c);
    return b;
                         }
    else {  b=false;
            return b;
         }                       

                                                 }

//le fonction qui retourne le compte de de numero num   
Compte getCompte(int num){
int r=0;
    for(int i=0;i<v.size();i++) {
                     if(((Compte)v.elementAt(i)).getNumeroCompte()==num)
                         r=i;
                            }
                        if(r!=0)
       
                                 return (Compte) v.elementAt(r);

                        else {
                        System.out.println("\n-*** Ce Numero ne correspond a aucun Compte ***-\n");
                        return null;
                        }
                        }
                                       
// la fonction qui supprime les comptes :
                                                 
boolean supprimerCompte(int num){
    Compte o=getCompte(num);
     return v.removeElement(o) ;     
                               
                                }
             
                             
         
//retourne la liste de compte des personnes de nom nom 
Vector rechercheCompte(String nom) {
Personne p;
int i;
Vector v1=new Vector();

for(i=0;i<v.size();i++){
p=((Compte)v.elementAt(i)).getPersonne();
if(p.getnom()==nom)
v1.addElement((Compte)v.elementAt(i));

}
return v1;
}

public static void main(String[] args){
Banque b=new Banque();
Personne p1=new Personne("Titi","Toto",20);
Personne p2=new Personne("Tata","Tutu",22);
Personne p3=new Personne("Bibi","Bobo",22);
b.creerCompte(1000,p1); // creation du compte numero 1
b.creerCompte(2000,p2); // creation du compte numero 2
b.creerCompte(800,p3);  // creation du compte numero 3
b.creerCompte(4000,p1); // creation du compte numero 4
System.out.println(b.getCompte(2).toStringCompte());    // utiliser la fonction getCompte() et afficher les renseinements sur le compte 2
b.supprimerCompte(2); // la suppression du compte 2
System.out.println(b.getCompte(2).toStringCompte()); // tester encore getComte() apres suppression.

}

}


Mes questions:

1) Quelle commande faut-il exécuter dans la fonction MAIN de la classe Banque pour afficher tous les comptes appartenant à une certaine personne?

2) Comment écrire l'appel de la méthode "retrait" dans la fonction MAIN de la classe Banque pour effectuer un retrait sur un compte?

3) En écrivant:

System.out.println(b.getCompte(1).toStringCompte()); // utiliser la fonction getCompte() et afficher les renseinements sur le compte 1

Celui-ci me retourne "Ce numéro ne correspond à aucun compte" et me provoque une erreur "NullPointerException: null" dans la classe Banque. Cela marche cependant en mettant getCompte(2) ou getCompte(3), etc...

J'ai pourtant bien ce compte:

b.creerCompte(1000,p1); // création du compte numero 1 appartenant à Titi Toto


Merci d'avance pour votre aide!! Et d'avance, bonnes fêtes de fin d'année à tous! Wink
Mockmock
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
hfarid59
dummy mioche
dummy mioche


Inscrit le: 25 Déc 2003
Messages: 1

MessagePosté le: Jeu Déc 25, 2003 1:32 pm    Sujet du message: correction Répondre en citant

Il y avait une erreur dans ton code en effet r peut etre egal a 0 (pour le compte 1).

// programme 3 nommé : banque.java
import java.util.Vector;
public class Banque{

private Vector v = new Vector();
private Compte c;




// La fonction qui cree les comptes

boolean creerCompte(int solde, Personne personne){
boolean b = true;
c = new Compte(solde,personne);
if(!(v.contains(c)))
{v.addElement(c);}
else { b=false; }
return b;
}

//le fonction qui retourne le compte de de numero num
Compte getCompte(int num) throws NullPointerException {
int r=-1;
for(int i=0;i<v.size();i++) {

if(((Compte)v.elementAt(i)).getNumeroCompte()==num) r=i;
}
if(r!=-1)

return (Compte) v.elementAt(r);

else {
System.out.println("\n-*** Le Numero "+num+" ne correspond a aucun Compte ***-\n");
return null;
}
}

// la fonction qui supprime les comptes :

boolean supprimerCompte(int num){
Compte o=getCompte(num);
return v.removeElement(o) ;

}



//retourne la liste de compte des personnes de nom nom
Vector rechercheCompte(String nom) {
Personne p;
int i;
Vector v1=new Vector();

for(i=0;i<v.size();i++){
p=((Compte)v.elementAt(i)).getPersonne();
if(p.getnom()==nom)
v1.addElement((Compte)v.elementAt(i));

}
return v1;
}

public static void main(String[] args){
try {
Banque b=new Banque();
Personne p1=new Personne("Titi","Toto",20);
Personne p2=new Personne("Tata","Tutu",22);
Personne p3=new Personne("Bibi","Bobo",22);
b.creerCompte(1000,p1); // creation du compte numero 1
b.creerCompte(2000,p2); // creation du compte numero 2
b.creerCompte(800,p3); // creation du compte numero 3
b.creerCompte(4000,p1); // creation du compte numero 4
Personne name;
for (int j=0;j<b.v.size();j++)
{name=((Compte)b.v.elementAt(j)).getPersonne();
if (name.equals(p1)){
System.out.println(((Compte)b.v.elementAt(j)).getNumeroCompte());}
}

System.out.println(b.getCompte(1).toStringCompte()); // utiliser la fonction getCompte() et afficher les renseinements sur le compte 2
b.supprimerCompte(2); // la suppression du compte 2
System.out.println(b.getCompte(4).toStringCompte()); // tester encore getComte() apres suppression.

}
catch (Exception e) {}
}

}
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Java Toutes les heures sont au format CET (Europe)
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Affilzen SARL : Mention légale