HubobelsPython/Test.py

81 lines
No EOL
2.9 KiB
Python

class VerwalteterGeldbetrag:
def __init__(self, anfangsbetrag):
self.Betrag = anfangsbetrag
def einzahlenMoeglich(self, betrag):
return True
def auszahlenMoeglich(self, betrag):
return True
def einzahlen(self, betrag):
if betrag < 0 or not self.einzahlenMoeglich(betrag):
return False
else:
self.Betrag += betrag
return True
def auszahlen(self, betrag):
if betrag < 0 or not self.auszahlenMoeglich(betrag):
return False
else:
self.Betrag -= betrag
return True
def zeige(self):
#print("Betrag: {:.2f}".format(self.Betrag))
class AllgemeinesKonto(VerwalteterGeldbetrag):
def __init__(self,kundendaten, kontostand):
super().__init__(kontostand)
self.Kundendaten = kundendaten
def geldtransfer(self, ziel, betrag):
if self.auszahlenMoeglich(betrag) and ziel.einzahlenMoeglich(betrag):
self.auszahlen(betrag)
ziel.einzahlen(betrag)
return True
else:
return False
def zeige(self):
self.Kundendaten.zeige()
VerwalteterGeldbetrag.zeige(self)
class AllgemeinesKontoMitTagesumsatz(AllgemeinesKonto):
def __init__(self, kundendaten, kontostand, max_tagesumsatz=1500):
super().__init__(kundendaten, kontostand)
self.MaxTagesumsatz = max_tagesumsatz
self.UmsatzHeute = 0.0
def transferMoeglich(self, betrag):
return (self.UmsatzHeute + betrag <= self.MaxTagesumsatz)
def auszahlenMoeglich(self, betrag):
return self.transferMoeglich(betrag)
def einzahlenMoeglich(self, betrag):
return self.transferMoeglich(betrag)
def einzahlen(self, betrag):
if AllgemeinesKonto.einzahlen(self, betrag):
self.UmsatzHeute += betrag
return True
else:
return False
def auszahlen(self, betrag):
if AllgemeinesKonto.auszahlen(self, betrag):
self.UmsatzHeute += betrag
return True
else:
return False
def zeige(self):
AllgemeinesKonto.zeige(self)
#print("Heute schon {:.2f} von {:.2f} Euro umgesetzt".format(self.UmsatzHeute, self.MaxTagesumsatz))
class GirokontoKundendaten:
def __init__(self, inhaber, kontonummer):
self.Inhaber = inhaber
self.Kontonummer = kontonummer
def zeige(self):
print("Inhaber:", self.Inhaber)
print("Kontonummer:", self.Kontonummer)
class GirokontoMitTagesumsatz(AllgemeinesKontoMitTagesumsatz):
def __index__(self, inhaber, kontonummer, kontostand, max_tagesumsatz=1500):
kundendaten = GirokontoKundendaten(inhaber, kontonummer)
super().__init__(kundendaten, kontostand, max_tagesumsatz)
k1=GirokontoMitTagesumsatz("Carsten", 5678, 1234.78)
k2=GirokontoMitTagesumsatz("Johanna", 1234, 1000.78)
k1.geldtransfer(k2, 1000)
k2.zeige()