Easy-Micro

LANGAGE Intro POO PHP
Bank Account

La programmation orientée objet en PHP

Exercice PHP orienté objet :
Réaliser l'application d'un compte en banque

Sujet : Des utilisateurs de compte bancaires ont la possibilité d'effectuer des dépôt et des retraits et d'afficher leurs soldes. Les banquiers peuvent créer des comptes, les afficher, les supprimer et octroyer des prêts.

Le front n'est pas demandé. L'objectif est de réaliser les classes, propriétés et méthodes nécessaires à la gestion de base d'un compte courant.

Nous avons besoin de trois classes :
  1. Une classe mère Utilisateur
  2. Une classe fille Titulaire
  3. Une classe fille Banquier
Le fichier classes/utilisateur.class.php
<?php

abstract class Utilisateur {
    protected $user_titre;
    protected $user_name;
    protected $user_pass;
    protected $user_balance;
    protected $user_num_compte;

    public function getTitre(){
        return $this -> user_titre;
    }

    public function getNom(){
        echo $this -> user_name;
    }

    public function getNumCompte(){
        echo $this -> user_num_compte;
    }

    // Afficher le solde (soit la valeur de user_balance)
    public function getBalance(){
        echo '<p>Solde du  compte n° '.$this->user_num_compte.' : ';
        echo $this -> user_balance.' &euro;</p>';
    }
}
Notre classe Utilisateur ne définie que les choses communes à tous les utilisateurs et nous allons définir les spécificités de chaque type d'utilisateur dans des classes étendues Titulaire et Banquier.
Le fichier classes/titulaire.class.php
<?php
class Titulaire extends Utilisateur {

    public function __construct($n, $nc) {
        $this->user_name = strtoupper($n);
        $this->user_num_compte = $nc;
    }

    // Gestion des deposit (dépôts)
    public function depot($somme) {
        echo 'Dépôt de '.$somme.' &euro; ';
        echo 'sur le compte n° '.$this->user_num_compte;
        $this -> user_balance += $somme ;
        return $this -> getBalance();
   }

   // Gestion des withdrawal (retrait)
   public function retrait($somme) {
        echo 'Retrait de '.$somme.' &euro; ';
        echo 'sur le compte n° '.$this->user_num_compte;
        $this -> user_balance -= $somme ;
        return $this -> getBalance();
   }
}
Le fichier classes/banquier.class.php
<?php
class Banquier extends Utilisateur {

    public function __construct($n) {
        $this->user_name = strtoupper($n);
    }

    public function creation_compte($num, $titre, $nom) {
        echo '<p>Création du compte n° '.$num.' pour '.$titre.' '.$nom.'</p>';
   }

   public function suppression_compte($num) {
        $this -> getNumCompte($num); // a finir
   }

   public function pret($nump, $montant, $num) {
    echo '<p>Création d\'un prêt bancaire n° '.$nump.' de '.$montant.' &euro;';
    echo 'pour le compte n°'.$num.'</p>';
    // rajouter le dépôt
}

}
A noter qu'avec une base de donnée, la classe banquier deviendra probablement une classe manager (le CRUD)
Le fichier index.php
<?php
require 'classes/utilisateur.class.php';
require 'classes/titulaire.class.php';
require 'classes/banquier.class.php';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>Application Bank Account</title>
</head>
<body>

<?php
$Banquier1 = new banquier('Robert');
$Banquier1 -> creation_compte(555, 'Monsieur', 'Fernand');
$Banquier1 -> creation_compte(666, 'Madame','Marie Chantal');

$Titulaire1 = new titulaire('Fernand', 555);
$Titulaire1 -> depot(20).'<br>';
$Titulaire1 -> depot(120).'<br>';
$Titulaire1 -> retrait(20).'<br>';

$Titulaire2 = new titulaire('Marie Chantal', 666);
$Titulaire2 -> depot(2000).'<br>';

$Titulaire1 -> depot(200).'<br>';
?>
</body>
</html>




Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]