// Backend complet pour un système bancaire simple en Java
import java.util.*;
// Classe Client
class Client {
private String id;
private String nom;
private String telephone;
public Client(String id, String nom, String telephone) {
this.id = id;
this.nom = nom;
this.telephone = telephone;
}
public String getId() {
return id;
}
public String getNom() {
return nom;
}
public String getTelephone() {
return telephone;
}
@Override
public String toString() {
return "Client[ID=" + id + ", Nom=" + nom + ", Téléphone=" + telephone +
"]";
}
}
// Classe Compte
class Compte {
private String numeroCompte;
private Client proprietaire;
private double solde;
public Compte(String numeroCompte, Client proprietaire, double solde) {
this.numeroCompte = numeroCompte;
this.proprietaire = proprietaire;
this.solde = solde;
}
public String getNumeroCompte() {
return numeroCompte;
}
public Client getProprietaire() {
return proprietaire;
}
public double getSolde() {
return solde;
}
public void deposer(double montant) {
if (montant > 0) {
solde += montant;
}
}
public boolean retirer(double montant) {
if (montant > 0 && solde >= montant) {
solde -= montant;
return true;
}
return false;
}
@Override
public String toString() {
return "Compte[Numéro=" + numeroCompte + ", Propriétaire=" +
proprietaire.getNom() + ", Solde=" + solde + "]";
}
}
// Classe principale pour la gestion
public class BankingSystem {
private static List<Client> clients = new ArrayList<>();
private static List<Compte> comptes = new ArrayList<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean continuer = true;
while (continuer) {
System.out.println("\n--- Menu Principal ---");
System.out.println("1. Ajouter un client");
System.out.println("2. Créer un compte");
System.out.println("3. Afficher les comptes");
System.out.println("4. Déposer de l'argent");
System.out.println("5. Retirer de l'argent");
System.out.println("6. Quitter");
System.out.print("Choisissez une option : ");
if (!scanner.hasNextInt()) {
System.out.println("Entrée invalide, veuillez entrer un nombre.");
scanner.next();
continue;
}
int choix = scanner.nextInt();
scanner.nextLine(); // Consommer la nouvelle ligne
switch (choix) {
case 1:
ajouterClient(scanner);
break;
case 2:
creerCompte(scanner);
break;
case 3:
afficherComptes();
break;
case 4:
deposerArgent(scanner);
break;
case 5:
retirerArgent(scanner);
break;
case 6:
continuer = false;
System.out.println("Merci d'avoir utilisé notre système
bancaire !");
break;
default:
System.out.println("Option invalide, veuillez réessayer.");
}
}
scanner.close();
}
private static void ajouterClient(Scanner scanner) {
System.out.print("Entrez l'ID du client : ");
String id = scanner.nextLine();
System.out.print("Entrez le nom du client : ");
String nom = scanner.nextLine();
System.out.print("Entrez le téléphone du client : ");
String telephone = scanner.nextLine();
clients.add(new Client(id, nom, telephone));
System.out.println("Client ajouté avec succès.");
}
private static void creerCompte(Scanner scanner) {
System.out.print("Entrez l'ID du client propriétaire : ");
String idClient = scanner.nextLine();
Client proprietaire = null;
for (Client client : clients) {
if (client.getId().equals(idClient)) {
proprietaire = client;
break;
}
}
if (proprietaire == null) {
System.out.println("Client introuvable. Veuillez ajouter le client
d'abord.");
return;
}
System.out.print("Entrez le numéro du compte : ");
String numeroCompte = scanner.nextLine();
if (trouverCompte(numeroCompte) != null) {
System.out.println("Un compte avec ce numéro existe déjà.");
return;
}
System.out.print("Entrez le solde initial : ");
if (!scanner.hasNextDouble()) {
System.out.println("Entrée invalide pour le solde initial.");
scanner.next();
return;
}
double solde = scanner.nextDouble();
scanner.nextLine();
comptes.add(new Compte(numeroCompte, proprietaire, solde));
System.out.println("Compte créé avec succès.");
}
private static void afficherComptes() {
if (comptes.isEmpty()) {
System.out.println("Aucun compte à afficher.");
return;
}
for (Compte compte : comptes) {
System.out.println(compte);
}
}
private static void deposerArgent(Scanner scanner) {
System.out.print("Entrez le numéro du compte : ");
String numeroCompte = scanner.nextLine();
Compte compte = trouverCompte(numeroCompte);
if (compte == null) {
System.out.println("Compte introuvable.");
return;
}
System.out.print("Entrez le montant à déposer : ");
if (!scanner.hasNextDouble()) {
System.out.println("Entrée invalide pour le montant.");
scanner.next();
return;
}
double montant = scanner.nextDouble();
scanner.nextLine();
compte.deposer(montant);
System.out.println("Dépôt effectué avec succès.");
}
private static void retirerArgent(Scanner scanner) {
System.out.print("Entrez le numéro du compte : ");
String numeroCompte = scanner.nextLine();
Compte compte = trouverCompte(numeroCompte);
if (compte == null) {
System.out.println("Compte introuvable.");
return;
}
System.out.print("Entrez le montant à retirer : ");
if (!scanner.hasNextDouble()) {
System.out.println("Entrée invalide pour le montant.");
scanner.next();
return;
}
double montant = scanner.nextDouble();
scanner.nextLine();
if (compte.retirer(montant)) {
System.out.println("Retrait effectué avec succès.");
} else {
System.out.println("Solde insuffisant ou montant invalide.");
}
}
private static Compte trouverCompte(String numeroCompte) {
for (Compte compte : comptes) {
if (compte.getNumeroCompte().equals(numeroCompte)) {
return compte;
}
}
return null;
}
}