public static void Main()
Banca Victoria = new Banca("Victoria");
Banca Maib = new Banca("Maib");
CardBancar VictoriaCardBancar = new CardBancar(1123, Victoria, 2000);
CardBancar MaibCardBancar = new CardBancar(8863, Maib, 4500);
Utilizator Natalita = new Utilizator("Natalita", VictoriaCardBancar, 340, 5000, 3);
Utilizator Valiusca = new Utilizator("Valiusca", MaibCardBancar, 28000, 30000, 4);
ATM VictoriaATM = new ATM(Victoria, true);
ATM MaibATM = new ATM(Maib, false);
Credit Credit1 = new Credit("Casa Noua");
Credit Credit2 = new Credit("Leasing");
Credit Credit3 = new Credit("Masina");
Valiusca.AddCredit(Credit1);
Valiusca.AddCredit(Credit2);
Valiusca.AddCredit(Credit3);
Valiusca.AddCredit(Credit2);
Valiusca.AddCredit(Credit1);
VictoriaATM.Extrage(Valiusca, 5000);
Console.WriteLine("----------------");
VictoriaATM.Extrage(Valiusca, 500);
Console.WriteLine("----------------");
MaibATM.Introducere(Natalita, 90);
Console.WriteLine("----------------");
VictoriaATM.Introducere(Natalita, 90);
Console.WriteLine("----------------");
VictoriaATM.Introducere(Valiusca, 30000);
Console.WriteLine("----------------");
VictoriaCardBancar.depozit(Natalita);
Console.WriteLine(Natalita.age);
Utilizator Natalia=new Utilizator ("Seica","Natalita","Alecsandri 35 ","Studenta","32344",060593952);
LucratorBanca Toby=new LucratorBanca("toby",34,"Director General ","Bodoni 45","439553");
Console.WriteLine("-------INTERFACE--------");
CreditAuto Masina=new CreditAuto(25000,78000,"CreditMasina",2);
CreditCasa Casa=new CreditCasa(45000,138500,"CreditCasa",4);
Console.WriteLine(Masina.SumaRamasa());
Console.WriteLine(Casa.SumaRamasa());
Console.WriteLine(Masina.ProcentulAchitat());
Console.WriteLine(Casa.ProcentulAchitat());
public static void Metode (ICredit metoda)
Console.WriteLine(metoda.SumaRamasa());
Console.WriteLine(metoda.ProcentulAchitat());
public interface ISediulCentral
public interface IFiliala
public decimal SumaRamasa();
public decimal ProcentulAchitat();
public class CreditAuto:ICredit
public decimal SumaAchitata{get;set;}
public decimal SumaCredit {get;set;}
public string DenumireCredit {get;set;}
public decimal DAE{get;set;}
public CreditAuto(decimal SumaAchitata,decimal SumaCredit,string DenumireCredit,decimal DAE)
this.SumaAchitata=SumaAchitata;
this.SumaCredit=SumaCredit;
this.DenumireCredit=DenumireCredit;
public decimal SumaRamasa()
return SumaCredit-SumaAchitata;
public decimal ProcentulAchitat()
return SumaAchitata*100/SumaCredit;
public class CreditCasa:CreditAuto
public CreditCasa(decimal SumaAchitata,decimal SumaCredit,string DenumireCredit,decimal DAE):base(SumaAchitata,SumaCredit,DenumireCredit,DAE)
this.SumaAchitata=SumaAchitata;
this.SumaCredit=SumaCredit;
this.DenumireCredit=DenumireCredit;
public Persoana (string Prenume,string Profesie,string Adresa,string IDNP)
public virtual void Print ()
Console.WriteLine($"Informatia : {Prenume} {Profesie} {Adresa} ,{IDNP}");
public int NumarCard { get; set; }
public Banca TipBanca { get; set; }
public decimal SumaValabila { get; set; }
public decimal Depozit { get; set; }
public CardBancar(int NewnumarCard, Banca NumeBanca, decimal SumaValabila)
this.NumarCard = NewnumarCard;
this.TipBanca = NumeBanca;
this.SumaValabila = SumaValabila;
Console.WriteLine("Datele bancare ,numar card:" + NumarCard + " Numele Bancii" + TipBanca.NumeBanca);
public void depozit(Utilizator user)
decimal m = SumaValabila;
SumaValabila = m + SumaValabila;
public class Utilizator:Persoana
Console.WriteLine("Indicati nume nou");
public int CodIDNP { get; set; }
public CardBancar Card { get; set; }
public Credit[] CreditArray {get; set;}
public decimal SumaCash { get; set; }
Console.WriteLine("Utilizatorul nu detine salariu");
public Utilizator (string Nume, CardBancar Card, decimal SumaCash, int Salariu, int CreditLength)
this.SumaCash = SumaCash;
this.CreditArray = new Credit[CreditLength];
public Utilizator (string Prenume,string Nume,string Adresa,string Profesie,string IDNP,int Salariu ):base(Prenume,Adresa,Profesie,IDNP)
public override void Print()
Console.WriteLine($"{Prenume}, {Nume} ,{Adresa}, {Profesie} ,{IDNP}, {Salariu}");
Console.WriteLine("Numele: " + this.Nume + " Suma Cash: " + this.SumaCash + " Suma Card " + this.Card.SumaValabila);
public void AddCredit(Credit nouCredit)
if(Credit.AcordareCredit(this))
for(int i = 0 ; i < this.CreditArray.Length; i++)
if(this.CreditArray[i] == null)
this.CreditArray[i] = nouCredit;
Console.WriteLine("Creditul a fost adaugat!");
Console.WriteLine("Limita de credite a fost depasita");
public void ExtragCredit ()
for (int i=this.CreditArray.Length-1;i>=0;i--)
if (this.CreditArray[i] != null)
Console.WriteLine(this.CreditArray[i]);
public void DenumirileCredite ()
for ( int i=0 ;i <CreditArray.Length;i++)
Console.WriteLine(CreditArray[i]);
public string NumeBanca { get; set; }
public Banca(string NumeBanca)
this.NumeBanca = NumeBanca;
public Banca Tipbanca { get; set; }
public bool CashIn { get; set; }
public ATM(Banca tipbanca, bool CashIn)
this.Tipbanca = tipbanca;
public void Introducere(Utilizator User, decimal SumaAlimentarii)
if (this.CashIn == false)
Console.WriteLine("Acest ATM nu este pentru alimentare ");
else if (User.SumaCash < SumaAlimentarii)
Console.WriteLine("Operatie imposibila");
else if (User.Card.TipBanca.NumeBanca != this.Tipbanca.NumeBanca)
User.SumaCash -= SumaAlimentarii;
User.Card.SumaValabila += SumaAlimentarii;
User.SumaCash -= SumaAlimentarii;
User.Card.SumaValabila += SumaAlimentarii;
public void Extrage( Utilizator User, decimal SumaExtragere)
if (User.Card.SumaValabila < SumaExtragere)
Console.WriteLine("Insufiecient");
else if (User.Card.TipBanca.NumeBanca == this.Tipbanca.NumeBanca)
User.Card.SumaValabila -= SumaExtragere;
User.SumaCash += SumaExtragere;
User.Card.SumaValabila -= SumaExtragere;
User.SumaCash += SumaExtragere;
public string Denumire {get; set;}
public static int NormaStabilita = 25000;
public Credit(string Denumire)
this.Denumire = Denumire;
public static bool AcordareCredit(Utilizator Utilizator)
if (Utilizator.Salariu < NormaStabilita)
Console.WriteLine("Nu se poate acorda credit ");
Console.WriteLine("Acord pentru primirea creditului ");
Console.WriteLine("Denumirea Creditului este: " + this.Denumire);
public class LucratorBanca:Persoana
Console.WriteLine("Introduceti virsta corecta ");
public int Salariu {get;set;}
public string PostVacant {get;set;}
public LucratorBanca (string Nume,int Virsta ,int Salariu ,string PostVacant )
this.PostVacant=PostVacant;
public LucratorBanca (string Prenume,int Virsta,string Profesie,string Adresa,string IDNP):base(Prenume,Profesie,Adresa, IDNP)
public override void Print ()
Console.WriteLine($"Informatia despre lucrator bancar :Prenumele {Prenume}, Virsta {Virsta },profesia {Profesie },adresa de trai {Adresa},IDNP{IDNP}" );