Menu
Coddy logo textTech

Logica di deposito

Fa parte della sezione Programmazione orientata agli oggetti del percorso C di Coddy. Lezione 24 di 61.

challenge icon

Sfida

Facile

È il momento di aggiungere la prima vera operazione bancaria al tuo modulo Account: la possibilità di depositare fondi! Una funzione di deposito deve essere intelligente: dovrebbe accettare solo importi positivi, proteggendo il tuo conto da transazioni non valide.

Partendo dal tuo progetto Bank Account esistente, estenderai il modulo con la funzionalità di deposito. La tua funzione di deposito deve convalidare l’input prima di modificare il saldo nascosto. È l’incapsulamento che protegge l’integrità dei tuoi dati.

Lavorerai con tre file:

  • account.h: estendi il tuo header esistente aggiungendo un nuovo prototipo di funzione: deposit. Questa funzione deve ricevere un puntatore a Account e un importo double, e restituire un int (1 in caso di successo, 0 se l’importo non è valido). Mantieni le dichiarazioni esistenti per create_account e destroy_account.
  • account.c: implementa la funzione deposit insieme al costruttore e al distruttore esistenti. Il deposito deve riuscire solo se l’importo è positivo (maggiore di zero). Se è valido, aggiungi l’importo al saldo nascosto e restituisci 1. Se l’importo è zero o negativo, rifiutalo restituendo 0 senza modificare il saldo.
  • main.c: mostra la funzionalità di deposito creando un conto ed eseguendo più operazioni di deposito, alcune valide e altre non valide, per dimostrare che la convalida funziona correttamente.

Riceverai tre input: l’ID del conto (un numero intero), un importo valido del deposito (un numero positivo) e un importo non valido del deposito (zero o negativo).

Nel tuo file principale, crea un conto con l’ID fornito e stampa una conferma. Poi prova a depositare prima l’importo non valido: stampa se l’operazione è riuscita e indica che il saldo deve rimanere invariato. Successivamente, deposita l’importo valido: stampa il risultato dell’operazione. Infine, distruggi il conto e conferma la pulizia.

Stampa l’output in questo formato:

Account 1001 created
Deposit -50.00: 0
Deposit 200.00: 1
Account destroyed

Dove 1001 è l’ID del conto, -50.00 è l’importo non valido e 200.00 è l’importo valido. Formatta tutti gli importi con due cifre decimali usando %.2f.

La tua funzione di deposito agisce da guardiano. Garantisce che solo le transazioni valide possano modificare il saldo nascosto del conto. Anche se per ora non puoi vedere il saldo (aggiungeremo un getter in una lezione successiva), puoi fidarti del fatto che i depositi non validi vengano rifiutati correttamente.

Provalo tu

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C online