Contas Bancárias

Imagine que é um engenheiro de software num banco de topo. O banco está a trabalhar para melhorar o seu sistema backend, e a sua tarefa é projetar e implementar novas classes para representar diferentes tipos de contas bancárias.
O banco oferece dois tipos de contas: à ordem e poupança. Ambos os tipos de contas permitem aos clientes depositar e levantar dinheiro, mas cada um tem as suas próprias características. As contas à ordem têm um limite de descoberto, que permite aos clientes levantarem dinheiro além do seu saldo atual até ao limite de descoberto. As contas poupança rendem juros com base numa taxa anual percentual.
A sua tarefa é criar três classes Python: BankAccount, CheckingAccount e SavingsAccount. Todas são inicializadas com um montante inicial de balance.
  1. A classe BankAccount deve ter dois métodos: deposit e withdraw. O método deposit deve aumentar o saldo pelo montante do depósito. O método withdraw deve diminuir o saldo pelo montante do levantamento. Ambos devem imprimir o saldo final após a operação no formato Balance: <X>. Se não houver fundos suficientes, o programa deve imprimir Insufficient funds..
  1. A classe CheckingAccount deve herdar de BankAccount e adicionar um atributo adicional: overdraft_limit. O método withdraw em CheckingAccount deve ser sobrescrito para permitir que os clientes levantem dinheiro além do seu saldo atual até ao limite de descoberto. No caso de exceder o limite de descoberto, o programa deve imprimir Withdrawal exceeds overdraft limit..
  1. A classe SavingsAccount também deve herdar de BankAccount. Deve adicionar um atributo de inicialização adicional: annual_percentage_yield, e adicionar um método calculate_returns que calcula os rendimentos ao poupar dinheiro com base na annual_percentage_yield. O método calculate_returns deve imprimir os rendimentos no formato Returns: X.
O saldo em qualquer conta nunca deve tornar-se negativo (exceto na CheckingAccount, onde pode ir até ao limite negativo de descoberto).
Entrada
Saída
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