Cuentas Bancarias

Imagina que eres un ingeniero de software en un banco de primer nivel. El banco está trabajando para mejorar su sistema backend, y tu tarea es diseñar e implementar nuevas clases para representar diferentes tipos de cuentas bancarias.
El banco ofrece dos tipos de cuentas: corriente y de ahorros. Ambos tipos de cuentas permiten a los clientes depositar y retirar dinero, pero cada una tiene sus propias características. Las cuentas corrientes tienen un límite de sobregiro, que permite a los clientes retirar dinero más allá de su saldo actual hasta ese límite. Las cuentas de ahorros generan intereses basados en un rendimiento porcentual anual.
Tu tarea es crear tres clases en Python: BankAccount, CheckingAccount y SavingsAccount. Todas se inicializan con un balance inicial.
  1. La clase BankAccount debe tener dos métodos: deposit y withdraw. El método deposit debe aumentar el balance por el monto del depósito. El método withdraw debe disminuir el balance por el monto del retiro. Ambos deben imprimir el balance final después de la operación en el formato Balance: <X>. Si no hay fondos suficientes, el programa debe imprimir Insufficient funds..
  1. La clase CheckingAccount debe heredar de BankAccount y agregar un atributo adicional: overdraft_limit. El método withdraw en CheckingAccount debe ser sobrescrito para permitir que los clientes retiren dinero más allá de su saldo actual hasta el límite de sobregiro. En caso de exceder el límite de sobregiro, el programa debe imprimir Withdrawal exceeds overdraft limit..
  1. La clase SavingsAccount también debe heredar de BankAccount. Debe añadir un atributo adicional en la inicialización: annual_percentage_yield, y agregar un método calculate_returns que calcule los rendimientos por ahorrar dinero basado en el annual_percentage_yield. El método calculate_returns debe imprimir los rendimientos en el formato Returns: X.
El balance en cualquier cuenta nunca debe ser negativo (excepto en CheckingAccount, donde puede llegar hasta el límite negativo del sobregiro).
Entrada
Salida
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