Exercice Java corrigé transformer un programme donné en un programme orienté objet – Banques

Exercice Java transformer un programme donné en un programme orienté objet – Banques, tutoriel & guide de travaux pratiques en pdf.

Le fichier Banque1.java contient un programme bancaire qui est modularisé sous forme de méthodes auxiliaires. Transformez-le en programme orienté objet sous le nom de Banque2.java en suivant les étapes suivantes :

  • Etudiez le fonctionnement du programme. La banque a 2 clients. Chaque client a un compte privé et un compte d’épargne avec des soldes différents. Le taux d’intérêt d’un compte d’épargne est plus élevé que celui d’un compte privé. Les données de chaque client (nom, ville et soldes) sont affichées avant et après le bouclement des comptes.
  • Réfléchissez aux objets que vous aimeriez utiliser dans votre programme et ajoutez les classes correspondantes. Il peut s’agir d’objets concrets (client, maison, billet, etc.) ou d’objets abstraits (compte, relation bancaire, etc.). N’oubliez pas que la modularisation n’est pas une science exacte. Chaque programmeur décide des classes qu’il trouve utiles pour son programme. C’est souvent l’étape la plus difficile d’un projet de programmation.
  • Transférez le code concernant les objets dans les classes. Utilisez le mot-clé private pour encapsuler les variables et les méthodes d’instance qui ne seront pas utilisées à l’extérieur de la classe. Chaque méthode (auxiliaire ou d’instance) devrait être courte et sans trop d’instructions détaillées. Les identificateurs (noms des variables et des méthodes) devraient être parlants.

Exemple d’exécution du programme:

Données avant le bouclement des comptes:
   Client Pedro de Genève
      Compte privé:     1000.0 francs
      Compte d'épargne: 2000.0 francs
   Client Alexandra de Lausanne
      Compte privé:     3000.0 francs
      Compte d'épargne: 4000.0 francs
Données après le bouclement des comptes:
   Client Pedro de Genève
      Compte privé:     1010.0 francs
      Compte d'épargne: 2040.0 francs
   Client Alexandra de Lausanne
      Compte privé:     3030.0 francs
      Compte d'épargne: 4080.0 francs

Code donné:

class Banque1 {
    public static void main(String args[]) {
        // Données pour tous les comptes privés (taux d'intérêt):
        double taux1 = 0.01;
        // Données pour tous les comptes d'épargne (taux d'intérêt):
        double taux2 = 0.02;
        // Données pour le premier client (nom et ville):
        String nom1 = "Pedro";
        String ville1 = "Genève";
        // Données pour le compte privé du premier client (solde):
        double solde1PremierClient = 1000.0;
        // Données pour le compte d'épargne du premier client (solde):
        double solde2PremierClient = 2000.0;
        // Données pour le deuxième client (nom et ville):
        String nom2 = "Alexandra";
        String ville2 = "Lausanne";
        // Données pour le compte privé du deuxième client (solde):
        double solde1DeuxiemeClient = 3000.0;
        // Données pour le compte d'épargne du deuxième client (solde):
        double solde2DeuxiemeClient = 4000.0;

        // Afficher les données du premier client:
        afficherClient(nom1, ville1, solde1PremierClient, solde2PremierClient);
        // Afficher les données du deuxième client:
        afficherClient(nom2, ville2, solde1DeuxiemeClient, solde2DeuxiemeClient);

        // Bouclement du compte privé du premier client:
        solde1PremierClient = bouclerCompte(solde1PremierClient, taux1);
        // Bouclement du compte d'épargne du premier client:
        solde2PremierClient = bouclerCompte(solde2PremierClient, taux2);
        // Bouclement du compte privé du deuxième client:
        solde1DeuxiemeClient = bouclerCompte(solde1DeuxiemeClient, taux1);
        // Bouclement du compte d'épargne du deuxième client:
        solde2DeuxiemeClient = bouclerCompte(solde2DeuxiemeClient, taux2);

        // Afficher les données du premier client:
        afficherClient(nom1, ville1, solde1PremierClient, solde2PremierClient);
        // Afficher les données du deuxième client:
        afficherClient(nom2, ville2, solde1DeuxiemeClient, solde2DeuxiemeClient);
    }

    static void afficherClient(String nom, String ville,
                               double solde1, double solde2) {
        // Cette méthode affiche les données du client *
        System.out.println("Client " + nom + " de " + ville);
        System.out.println("   Compte privé:     " + solde1 + " francs");
        System.out.println("   Compte d'épargne: " + solde2 + " francs");
    }

    static double bouclerCompte(double solde, double taux) {
        // Cette méthode ajoute les intérêts au solde */
        double interets = taux * solde;
        double nouveauSolde = solde + interets;
        return nouveauSolde;
    }
}

Banque avec des clientes (Niveau 1)

Vous avez bien noté que l’affichage du programme Banque1 ne fait pas de différence entre les clientes et les clients. Ceci est facile à corriger dans la version orientée objets du programme, par exemple en ajoutant une variable d’instance booléenne masculin à la classe Client (si vous en avez une) et en testant sa valeur dans la méthode d’affichage. Modifiez votre programme, par exemple sous le nom de Banque3, pour qu’il affiche « cliente » au lieu de « client » comme suit:

Données avant le bouclement des comptes:
   Client Pedro de Genève
      Compte privé:     1000.0 francs
      Compte d'épargne: 2000.0 francs
   Cliente Alexandra de Lausanne
      Compte privé:     3000.0 francs
      Compte d'épargne: 4000.0 francs
Données après le bouclement des comptes:
   Client Pedro de Genève
      Compte privé:     1010.0 francs
      Compte d'épargne: 2040.0 francs
   Cliente Alexandra de Lausanne
      Compte privé:     3030.0 francs
      Compte d'épargne: 4080.0 francs

La correction exercice Java (voir page 2 en bas)

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *