/*Vytvořte interface IUcet, který bude mít property Zustatek s get(bez set) a property Vlastnik s get(také bez set) * Vytvořte třídu Ucet, která bude dědit interface IUcet, implementovat properties Zustatek(get i set) a Vlastník, který bude nastaven jen z konstruktoru. * Vytvořte konstruktor Uctu, který bude brát jako parametry jméno vlastníka a počáteční zůstatek. * Vytvořte třídu Banka, která bude mít funkci ZalozUcet s parametry počátečního zůstatku a jména vlastníka. * Vytvořte bance funkci NajdiUcet, která vrátí IUcet podle jména vlastníka. * Vytvořte bance funkci UložPeníze, která přidá do účtu vlastníka odpovídající obnos. * Vytvořte program, který bude mít instanci Banky, vytvoří 3 účty (nemusíte dělat načítání z konzole, klidně v kodu vytvořit) * Vypište aktuální stav účtů v Bance * Uložte do jednoho účtu další peníze a opět vypište aktuální stav účtů * Získejte jeden účet z Banky do proměnné typu IUcet pomocí NajdiUcet.Nesmí mu jít změnit Zustatek, musí jít jedině přes příkaz v bance :) */ /* Jako pomůcku při rozhodování, kdy použít rozhraní a dědičnost, můžete použít: * Pokud třída A je B -> dědičnost (Pták je Zvíře) * Pokud třída A umožňuje B -> interface (ILetani - létat může pták, letadlo, ale i list) * Pokud chci omezit přístup k třídě -> interface*/ static void Main(string[] args) { Banka banka = new Banka(); banka.ZalozUcet("Pepa", 500); banka.ZalozUcet("Jarda", 8000); banka.ZalozUcet("Honza", 500000); banka.VypisSeznamUctu(); banka.NajdiUcet("Pepa"); banka.NajdiUcet("Bla"); banka.UlozPenize("Pepa", 600); banka.UlozPenize("Bla", 600); banka.VypisSeznamUctu(); IUcet ziskanyUcet = banka.NajdiUcet("Jarda"); // ziskanyUcet.Zustatek = 500; nelze, read only //(ziskanyUcet as Ucet).Zustatek = 0; Console.ReadKey(); }
static void Main(string[] args) { Banka banka = new Banka(); banka.ZalozUcet("Lada", 100000); banka.ZalozUcet("Angel", 200000); banka.ZalozUcet("Lucius", 50000); //Dictionary<string, Ucet> slovnikUctu = new Dictionary<string, Ucet>(); //Ucet ucet1 = new Ucet("Lada", 100000); //Ucet ucet2 = new Ucet("Angel", 200000); //Ucet ucet3 = new Ucet("Lucius", 50000); //slovnikUctu.Add(ucet1.Vlastnik, ucet1); //slovnikUctu.Add(ucet2.Vlastnik, ucet2); //slovnikUctu.Add(ucet3.Vlastnik, ucet3); //foreach (string vlastniciUctu in seznamUctu.Keys) //{ // Ucet ucet = slovnikUctu[vlastniciUctu]; // Console.WriteLine("Vlastník účtu: {0}, zůstatek: {1}", vlastniciUctu, ucet.Zustatek); //} //Console.WriteLine(); //Console.WriteLine("Aktuální stavy účtů:"); //foreach (Ucet ucet in seznamUctu.Values) //{ // Console.WriteLine("{0}", ucet.Zustatek); //} banka.ZobrazInformaceOUctech(); banka.ZalozUcetNačtenímZKonzole(); banka.ZobrazInformaceOUctech(); banka.NajdiUcet("Lada"); banka.UlozPenize("Angel", 500); banka.ZobrazInformaceOUctech(); // banka obsahuje ucty vsech lidi na svete // hackera pokousejiciho se hackovat Ladu se nepovedlo dohledat // banka ma nastesti nejlepsi zabezpeceni a hacker svuj umysl zvladl jen okomentovat IUcet hackovanyUcet = banka.NajdiUcet("Lada"); //hackovanyUcet.Zustatek = 0; // nejde, jde jen cist hodnota Console.ReadLine(); }
static void Main(string[] args) { var banka = new Banka(); List <Ucet> seznamUctu = banka.SeznamUctu; seznamUctu.Add(banka.ZalozUcet(100000, "Saxana")); seznamUctu.Add(banka.ZalozUcet(58000, "Pinokio")); seznamUctu.Add(banka.ZalozUcet(89000, "Popelka")); ZobrazZustatkyNaUctech(seznamUctu); banka.UlozPenize(seznamUctu[2], 58000); ZobrazZustatkyNaUctech(seznamUctu); IUcet iUcet = banka.NajdiUcet("Popelka"); Console.WriteLine($"Vybraný účet vlastní: {iUcet.Vlastnik} a je na něm zůstatek {iUcet.Zustatek} Eur"); Console.ReadLine(); }