public static class Identifiant
private static int compteur;
compteur = new Random().Next(50);
public static string Fabriquer()
string numero = DateTime.Now.ToString("hhmmss") + compteur.ToString("0000");
return (numero + CalculerCle(numero));
static private char CalculerCle(string numero)
int longueur = numero.Length;
for (int i = 0; i < longueur; i++)
int d = numero[longueur - i - 1] - '0';
if (i % 2 == 0) d = d * 2;
return (char)('0' + ((somme * 9) % 10));
public static bool Verifier(string numero)
return (CalculerCle(numero.Substring(0,numero.Length-1))== numero[numero.Length-1]);
private DateTime Naissance;
public Compte(string Nom, DateTime Naissance) : this(Nom, Naissance, 0)
public Compte(string Nom, DateTime Naissance, decimal SoldeInitial)
this.Naissance = Naissance;
numero = Identifiant.Fabriquer();
return Nom + " (" + Naissance.ToString("dd-MM-yyyy") + ")" + "\n" + "Vous avez " + Solde + " € sur votre compte.";
public override string ToString()
return $"{Nom} ({Naissance.ToString("dd-MM-yyyy")})\nVous avez {Solde} € sur votre compte {numero}";
public Resultat Créditer(int montant)
return Resultat.MontantNul;
return Resultat.MontantInvalide;
else if (montant > Maximum)
return Resultat.MontantExcessif;
public bool Retirer(int montant)
throw new InvalidOperationException("Vous avez seulement " + Solde + "€ sur votre compte.");
public static void Main()
Console.WriteLine("Bienvenue sur notre automate.");
bool verif = Identifiant.Verifier("02104700139");
Console.WriteLine("Nombre valide");
Console.WriteLine("Nombre invalide");
Compte client1 = new Compte("Walter", new DateTime(1997, 7, 14));
Console.WriteLine(client1);
var client2 = new Compte("Maude", new DateTime(1997, 7, 14), 300);
Console.WriteLine(client2);
Console.WriteLine(client2);
bool resultat = client2.Retirer(250);
Console.WriteLine("Réussi");
Console.WriteLine(ex.Message);
switch (client2.Créditer(200))
case Compte.Resultat.Reussi:
Console.WriteLine("réussi");
case Compte.Resultat.MontantNul:
Console.WriteLine("Montant nul");
case Compte.Resultat.MontantExcessif:
Console.WriteLine("Montant excessif");
case Compte.Resultat.MontantInvalide:
Console.WriteLine("Montant invalide");
Console.WriteLine("Code de retour inconnu");
Console.WriteLine(client2);