Ce projet est une application console développée en Java 8 qui simule un système de gestion de comptes bancaires pour une banque.
Elle permet d'automatiser et de gérer efficacement les comptes et leurs opérations.
L'objectif est de fournir un système informatisé simple pour gérer les opérations bancaires courantes telles que :
- Versements
- Retraits
- Virements
L'application distingue différents types de comptes (courants et épargne).
L'application est conçue en suivant une architecture en couches pour séparer les responsabilités et améliorer la maintenabilité :
- Couche Présentation (UI/Menu) : Gère toutes les interactions avec l'utilisateur via un menu interactif dans la console.
- Couche Métier (Service) : Contient la logique métier (création de compte, gestion des opérations, virements, etc.).
- Couche Données (DAO/Repository) : Simule la persistance des données en mémoire avec
HashMapouArrayList. - Couche Modèle (Entités) : Représente les objets principaux (
Compte,Operation, etc.). - Couche Utilitaire : Fournit des fonctions transversales (validation des entrées, etc.).
Voici le diagramme de classes UML illustrant la structure et les relations du projet :
- Attributs :
code : String→ Identifiant unique (CPT-XXXXX)solde : double→ Solde actuellisteOperations : List<Operation>→ Historique des opérations
- Méthodes abstraites :
retirer(double montant)calculerInteret()afficherDetails()
- Hérite de
Compte - Attribut :
decouvert : double - Règles métier :
- Retrait possible tant que
solde - montant >= -decouvert calculerInteret()retourne toujours 0
- Retrait possible tant que
- Hérite de
Compte - Attribut :
tauxInteret : double - Règles métier :
- Retrait uniquement si
solde >= montant calculerInteret()basé sur le solde et le taux
- Retrait uniquement si
- Attributs :
numero : UUIDdate : LocalDatemontant : double
- Hérite de
Operation - Attribut :
source : String(ex: "Salaire", "Dépôt espèces")
- Hérite de
Operation - Attribut :
destination : String(ex: "ATM", "Chèque")
- Créer un compte (courant ou épargne)
- Effectuer un versement
- Effectuer un retrait
- Effectuer un virement (retrait sur compte source + versement sur compte destination)
- Consulter le solde d’un compte
- Consulter l’historique des opérations
- Quitter l’application
- Langage : Java 8
- Stockage des données :
HashMapen mémoire (les données sont perdues à la fermeture) - Gestion des dates :
java.time.LocalDate - Gestion des erreurs :
try-catch(ex: soldes insuffisants, saisies invalides) - Validations :
- Montants > 0
- Format de compte (
CPT-XXXXX) validé avec regex - Vérification de l’existence d’un compte avant opération
javac --source-path src -d out src/com/banque/Main.java