Stworzenie listy klientów zawierającej listę kont

0

Cześć. W tytułowym zadaniu napotkałem problem z napisaniem metody wypisującej łączne środki na kontach wszystkich firm (klas Firma).

     class Konto
    {
        private string nr;
        private double saldo;
        public Konto(string nr)
        {
        }
        public double getSaldo()
        {
            return saldo;
        }
        public string getNr()
        {
            return nr;
        }
        public double wplac(double kwota)
        {
            return saldo=saldo+kwota;
        }
        public double wyplac(double kwota)
        {
            return saldo=saldo-kwota;
        }
    }

    class Klient 
    {
        public Klient() { }
        public ArrayList klient = new ArrayList();
        public Klient(string nr) {}
        public void dodajKonto(Konto k)
        {
            klient.Add(k);
        }
        public Object getKonta()
        {
            return klient;
        }
        public double getSaldo()
        {
            return Konto.getSaldo(); //Zupełnie brak pomysłu jak dobrać się do salda
        }
    }
    class Firma : Klient
    {
        private string nazwa;
        private string KRS;       
        public Firma(string nr) : base (nr) {}
        public double suma() 
        {
            foreach (Object f in klient)
            {
                Klient k = (Klient)f;
                sum += k.getSaldo();//Tu zmienię zależnie od rozwiązania w/w problemu z saldem
            }
        } 
    }
   class Bank //Tę klasę chyba powinienem zrobić analogicznie do Klient
    {
        public ArrayList bank = new ArrayList(); 
        public void dodajKlienta(Klient kl)
        {
            if (bank.Contains(kl) == false) 
            {
                bank.Add(kl); 
            }
            else Console.WriteLine("Ten Klient juz istnieje");
        }
        public Object getKlienci()
        {
            return bank;
        }
    }
  • Firma ma dziedziczyć po Klient (koniecznie), Klient ma klasę Konto(koniecznie jako agregacja częściowa).
  • Firma ma posiadać pola -nazwa, KRS:String
  • Klient ma posiadać metody +dodajKonto(Konto),+getKonta:List<Konto>
  • Konto ma posiadać pola -nr:String,-saldo:double i metody +Konto(nr:String),+getSaldo():double,+getNr():String,+wplac(kwota:double),+wyplac(kwota:double)
  • Bank ma posiadać metody +dodajKlienta(Klient),+getKlienci():List<Klient>
    Reszta to wytwór mojej, nawiasem zbyt długiej jak na takie coś, zabawy.

dodanie znaczników wypunktowania - @furious programming

1
public double suma()
{
    double saldo;
    foreach(Konto foo in klient)
    {
        saldo += foo.getSaldo();
    }
    return saldo;
}

To przy okazji powiem ci co możesz poprawić w kodzie.

  1. Po co tworzysz konstruktory jak są puste?
  2. Są takie operatory jak += oraz -=.
  3. W C# są właściwości i możesz je śmiało stosować ;)
  4. Nazywaj poprawnie zmienne.
  5. W każdym przypadku wiesz jaki typ będzie zwrócony/podany to po co stosujesz Object?
0

Dzięki wielkie. Puste konstruktory tworzę, bo mistrz na wykładach stwierdził, że to dobry nawyk, bo bez tego czasem może się krzaczyć, a nic się nie stanie jak taki zrobię. Właściwości c# mogę stosować tyle, ile poznam :P A Object również wzorowałem na wykładzie - w sumie, jak już powiedziałeś, to nie widzę sensu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1