Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
mockmock dummy mioche

Inscrit le: 17 Déc 2003 Messages: 1
|
Posté le: Mer Déc 17, 2003 8:09 pm Sujet du message: A l'aide! Questions sur appel méthodes |
|
|
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!
Mockmock |
|
Revenir en haut |
|
 |
hfarid59 dummy mioche

Inscrit le: 25 Déc 2003 Messages: 1
|
Posté le: Jeu Déc 25, 2003 1:32 pm Sujet du message: correction |
|
|
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 |
|
 |
|
|
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
|
|