In deze opdracht gaan we een eenvoudige simulatie van Electronic Funds Transfers (EFT) bouwen tussen bankrekeningen, waarin we een daglimiet verwerken. Dit betekent dat per dag slechts een bepaald maximaal bedrag kan worden opgenomen of overgeboekt vanaf een rekening.
Deel 2: Banktransacties (5 punten)
Lijst van Accounts (1 punt)
Definieer een variabele lijst accounts_list
waarin je BankAccount
-objecten opslaat. Voeg aan deze lijst
drie accounts toe, bijvoorbeeld:
- Account 1: “NL01BANK0123456789”, 1000.00
- Account 2: “BE68BANK12345678”, 500.00
- Account 3: “NL03BANK1357924680”, 1200.50
Functies (3 punten)
- Schrijf een functie transfer_funds (2 punten):
- Parameters:
- source_account (str): rekeningnummer van de bron.
- target_account (str): rekeningnummer van de ontvanger.
- amount (float): het over te boeken bedrag.
- accounts_list (list): de lijst met alle BankAccount-objecten.
- Werking:
- Zoek in de lijst naar beide Accounts. Als één van de twee niet wordt gevonden, geef je een foutmelding terug.
- Controleer of amount > 0. Als dat niet zo is, geef je een melding terug (bijvoorbeeld “Bedrag moet groter zijn dan 0.”).
- Probeer het bedrag af te boeken van de bronrekening. Als de withdraw-operatie niet lukt vanwege onvoldoende saldo, geef dan een melding terug (bijvoorbeeld “Onvoldoende saldo.”).
- Lukt de withdraw, dan voer je de deposit uit. Retourneer een stringboodschap die aangeeft dat de overboeking gelukt is, bijvoorbeeld: “Overboeking geslaagd.”
- Schrijf een functie new_day (1 punt):
- Parameters:
- accounts_list (list): de lijst met alle BankAccount-objecten.
- Werking:
- De functie zal voor alle BankAccount objecten in de lijst een nieuwe dag starten.
Testen (1 punt)
Test je twee functies aan de hand van volgende scenario’s:
- De transactie wordt correct uitgevoerd tussen twee BankAccounts.
- De transactie wordt niet correct uitgevoerd want 1 van de BankAccounts wordt niet gevonden.
- De transactie kan niet worden uitgevoerd want de daglimiet is overschreden.
- Een nieuwe dag start voor je BankAccounts