Bankkonten

Stellen Sie sich vor, Sie sind Softwareingenieur bei einer erstklassigen Bank. Die Bank arbeitet daran, ihr Backendsystem zu verbessern, und Ihre Aufgabe ist es, neue Klassen zu entwerfen und zu implementieren, die verschiedene Arten von Bankkonten darstellen.
Die Bank bietet zwei Arten von Konten an: Girokonten und Sparkonten. Beide Kontotypen erlauben es Kunden, Geld einzuzahlen und abzuheben. Aber jeder Kontotyp hat seine eigenen Merkmale. Girokonten haben ein Überziehungslimit, das es Kunden ermöglicht, Geld über ihr aktuelles Guthaben hinaus bis zum Überziehungslimit abzuheben. Sparkonten erwirtschaften Zinsen basierend auf einer jährlichen prozentualen Rendite.
Ihre Aufgabe ist es, drei Python-Klassen zu erstellen: BankAccount, CheckingAccount und SavingsAccount. Alle werden mit einem anfänglichen balance-Betrag initialisiert.
  1. Die Klasse BankAccount sollte zwei Methoden haben: deposit und withdraw. Die Methode deposit sollte das Guthaben um den Einzahlungsbetrag erhöhen. Die Methode withdraw sollte das Guthaben um den Abhebungsbetrag verringern. Beide sollten das Endguthaben nach der Operation im Format Balance: <X> ausgeben. Wenn nicht genügend Mittel vorhanden sind, sollte das Programm Insufficient funds. ausgeben.
  1. Die Klasse CheckingAccount sollte von BankAccount erben und ein zusätzliches Attribut hinzufügen: overdraft_limit. Die Methode withdraw in CheckingAccount sollte überschrieben werden, um Kunden zu erlauben, Geld über ihr aktuelles Guthaben hinaus bis zum Überziehungslimit abzuheben. Im Falle einer Überschreitung des Überziehungslimits sollte das Programm Withdrawal exceeds overdraft limit. ausgeben.
  1. Die Klasse SavingsAccount sollte ebenfalls von BankAccount erben. Sie sollte ein zusätzliches Initialisierungsattribut hinzufügen: annual_percentage_yield, und eine Methode calculate_returns, die die Rendite für das Sparen von Geld basierend auf dem annual_percentage_yield berechnet. Die Methode calculate_returns sollte die Rendite im Format Returns: X ausgeben.
Das Guthaben in jedem Konto sollte niemals negativ werden (außer beim CheckingAccount, bei dem es bis zum negativen Überziehungslimit gehen kann).
Eingabe
Ausgabe
check = CheckingAccount(500, 100); check.deposit(200); check.withdraw(800); saving = SavingsAccount(500, 0.05); saving.calculate_returns()
Balance: 700 Balance: -100 Returns: 25
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue