using System; using System.Runtime.InteropServices; namespace Test { class Program { static void Main(string[] args) { Racun r = new Racun("170-00001-12", new Osoba() { Ime = "Marko", Prezime = "Markovic", TipKorisnika = Tip.Fizicko }); Console.WriteLine(r.Opis()); r.Uplata(1000); Console.WriteLine($"Stanje je {r.ProveraStanja()}."); Console.WriteLine(r.Opis()); r.Isplata(300); Console.WriteLine(r.Opis()); r.Vlasnik.PromeniPrezime("Stankovic"); Console.WriteLine(r.Opis()); Console.ReadKey(); } } public class Racun { public Racun(string broj, Osoba vlasnik) { Broj = broj; Vlasnik = vlasnik; Stanje = 0; } public string Broj { get; set; } private decimal Stanje { get; set; } public Osoba Vlasnik { get; set; } public void PromeniVlasnika(Osoba o) { Vlasnik = o; } public decimal Uplata(decimal iznos) { Stanje += iznos; return Stanje; } public decimal Isplata(decimal iznos) { Stanje -= iznos; return Stanje; } public decimal ProveraStanja() { Console.WriteLine($"Izvrsena provera stanja za racun {Broj} - {DateTime.Now}"); return Stanje; } public string Opis() { return $"Broj racuna je {Broj} vlasnik je {Vlasnik.PunoIme} {Vlasnik.TipKorisnika} lice. Stanje na racunu je {Stanje}."; } } public class Osoba { public string Ime { get; set; } public string Prezime { get; set; } public string PunoIme { get { return $"{Ime} {Prezime}"; } } public Tip TipKorisnika { get; set; } public void PromeniPrezime(string prezime) { Prezime = prezime; } } public enum Tip { Pravno, Fizicko } }