[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]

7.5
  Banque - Corrigé
Niveau 2
 
 
Fichiers:
  Banque2.java, Banque3.java    

Le code complet est donné ci-dessous:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* Version orientée objets de Banque1. */

class Banque2 {

    public static void main(String[] args) {
        // Variables locales pour les taux d'intérets (afin d'éviter de
        // répéter les mêmes chiffres pour chaque client):
        double taux1 = 0.01;
        double taux2 = 0.02;

        // Construction des deux clients:
        Client c1 = new Client("Pedro", "Genève", taux1, 1000.0, taux2, 2000.0);
        Client c2 = new Client("Alexandra", "Lausanne", taux1, 3000.0, taux2, 4000.0);

        System.out.println("Donnees avant le bouclement des comptes:");
        c1.afficher();
        c2.afficher();

        // Bouclement des comptes des deux clients:
        c1.boucler();
        c2.boucler();

        System.out.println("Donnees apres le bouclement des comptes:");
        c1.afficher();
        c2.afficher();
    }
}

class Client {

    private String nom;
    private String ville;
    private Compte cpt1;
    private Compte cpt2;

    public Client(String nom, String ville, double taux1, double solde1,
                double taux2, double solde2) {
        this.nom = nom;
        this.ville = ville;
        // Construction d'un compte privé:
        cpt1 = new Compte(taux1, solde1);
        // Construction d'un compte d'épargne:
        cpt2 = new Compte(taux2, solde2);
    }

    public void afficher() {
        // Cette méthode affiche les données du client
        System.out.println("   Client " + nom + " de " + ville);
        System.out.println("      Compte prive:     "
                    + cpt1.getSolde() + " francs");
        System.out.println("      Compte d'epargne: "
                    + cpt2.getSolde() + " francs");
    }

    public void boucler() {
        // Cette méthode boucle les deux comptes du client
        cpt1.boucler();
        cpt2.boucler();
    }
}

class Compte {

    private double taux;
    private double solde;

    public Compte(double taux, double solde) {
        this.taux = taux;
        this.solde = solde;
    }

    public double getSolde() {
        return solde;
    }

    public void boucler() {
        // Cette méthode ajoute les intérets au solde
        double interets = taux * solde;
        solde = solde + interets;
    }
}


Banque avec des clientes (Niveau 1)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class Banque3 {

    public static void main(String[] args) {
        // ... comme avant

        // Construction des deux clients, notez l'argument booléen:
        // Nouveau (parmètre booléen)
        Client c1 = new Client("Pedro", "Geneve", taux1, 1000.0, taux2, 2000.0, true);
        Client c2 = new Client("Alexandra", "Lausanne", taux1, 3000.0, taux2, 4000.0, false);

        // ... comme avant
    }
}

class Client {

    private String nom;
    private String ville;
    private Compte cpt1, cpt2;
    // Nouvelle variable d'instance
    private boolean masculin;

    // Méthode constructeur, notez le paramètre booléen:
    public Client(String nom, String ville, double taux1, double solde1,
                double taux2, double solde2, boolean masculin) {  // Nouveau
        this.nom = nom;
        this.ville = ville;
        cpt1 = new Compte(taux1, solde1);
        cpt2 = new Compte(taux2, solde2);
        // Nouveau
        this.masculin = masculin;
    }

    public void afficher() {
        // Nouvelle instruction if..else
        if (masculin) {
            System.out.print("   Client ");
        } else {
            System.out.print("   Cliente ");
        }
        System.out.println(nom + " de " + ville);
        System.out.println("      Compte prive:     " +
                cpt1.getSolde() + " francs");
        System.out.println("      Compte d'epargne: " +
                cpt2.getSolde() + " francs");
    }
    // ... comme avant
}

class Compte {
    // ... comme avant
}

 


[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]