Cours:PooTD heritage : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(TD 4 : héritage)
Ligne 75 : Ligne 75 :
 
* Un <code>ComptePayant</code> est un compte bancaire pour lequel chaque opération de retrait et de versement est payante et vaut 5 (euros).
 
* Un <code>ComptePayant</code> est un compte bancaire pour lequel chaque opération de retrait et de versement est payante et vaut 5 (euros).
 
* Un <code>compteEpargne</code> est un compte bancaire qui possède en plus un attribut <code>taux_interet</code> et une méthode <code>calcul_interet()</code> qui permet de mettre à jour le solde en tenant compte des intérêts.
 
* Un <code>compteEpargne</code> est un compte bancaire qui possède en plus un attribut <code>taux_interet</code> et une méthode <code>calcul_interet()</code> qui permet de mettre à jour le solde en tenant compte des intérêts.
 +
 +
== Travail à faire ==
 +
 +
# Faire le diagramme des classes
 +
# Définir la classe <code>Compte</code>
 +
# Définir la classe <code>CompteEpargne</code>.
 +
# Définir la classe <code>ComptePayant</code>.
 +
# Définir la fonction <code>main()</code> permettant de tester les classes :
 +
## Créer une instance de la classe <code>Compte</code> , une autre de la classe <code>CompteEpargne</code> et une instance de la classe <code>ComptePayant</code>
 +
## Faire appel à la méthode <code>depot()</code> de chaque instance pour déposer une somme quelconque dans ces comptes.
 +
## Faire appel à la méthode <code>retrait()</code> de chaque instance pour retirer une somme quelconque de ces comptes.
 +
## Faire appel à la méthode <code>calcul_interêt()</code> du compte Epargne.
 +
## Afficher le solde des 3 comptes

Version du 5 octobre 2020 à 13:30

TD 4 : héritage

On débute avec l'implémenation suivante d'un compte bancaire :

// compte.h
#ifndef COMPTE_H
#define COMPTE_H

#include <iostream>

class Compte {
    public:
        Compte(int _num);
        Compte(int _num, float somme);
        void set_solde(float somme);
        float get_solde();
        int get_numero();
        void depot(float somme);
        void retrait(float somme);
        std::string to_string();
    private:
        int num;
        float solde;
};

#endif // COMPTE_H
// compte.cpp
#include "compte.h"

using namespace std;

Compte::Compte(int _num) {
    num = _num;
    solde = 0;
}

Compte::Compte(int _num, float somme) {
    num = _num;
    solde = somme;
}

void Compte::set_solde(float somme)
{
    solde = somme;
}

float Compte::get_solde() {
    return solde;
}

int Compte::get_numero() {
    return num;
}

void Compte::depot(float somme) {
    solde = solde + somme;
}

void Compte::retrait(float somme) {
    solde = solde - somme;
}

string Compte::to_string() {
    return "Compte n°" + std::to_string(num) + " - solde = " + std::to_string(solde);
}

L'objectif est de créer deux classes héritant de Compte :

  • Un ComptePayant est un compte bancaire pour lequel chaque opération de retrait et de versement est payante et vaut 5 (euros).
  • Un compteEpargne est un compte bancaire qui possède en plus un attribut taux_interet et une méthode calcul_interet() qui permet de mettre à jour le solde en tenant compte des intérêts.

Travail à faire

  1. Faire le diagramme des classes
  2. Définir la classe Compte
  3. Définir la classe CompteEpargne.
  4. Définir la classe ComptePayant.
  5. Définir la fonction main() permettant de tester les classes :
    1. Créer une instance de la classe Compte , une autre de la classe CompteEpargne et une instance de la classe ComptePayant
    2. Faire appel à la méthode depot() de chaque instance pour déposer une somme quelconque dans ces comptes.
    3. Faire appel à la méthode retrait() de chaque instance pour retirer une somme quelconque de ces comptes.
    4. Faire appel à la méthode calcul_interêt() du compte Epargne.
    5. Afficher le solde des 3 comptes