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.
A classe
BankAccountdeve ter dois métodos:depositewithdraw. O métododepositdeve aumentar o saldo pelo montante do depósito. O métodowithdrawdeve diminuir o saldo pelo montante do levantamento. Ambos devem imprimir o saldo final após a operação no formatoBalance: <X>. Se não houver fundos suficientes, o programa deve imprimirInsufficient funds..A classe
CheckingAccountdeve herdar deBankAccounte adicionar um atributo adicional:overdraft_limit. O métodowithdrawemCheckingAccountdeve 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 imprimirWithdrawal exceeds overdraft limit..A classe
SavingsAccounttambém deve herdar deBankAccount. Deve adicionar um atributo de inicialização adicional:annual_percentage_yield, e adicionar um métodocalculate_returnsque calcula os rendimentos ao poupar dinheiro com base naannual_percentage_yield. O métodocalculate_returnsdeve imprimir os rendimentos no formatoReturns: 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 |
|---|---|
| Balance: 700 |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB