Menu
Coddy logo textTech

Consultar Saldo

Parte da seção Object Oriented Programming do Journey de C da Coddy — lição 26 de 61.

challenge icon

Desafio

Fácil

Sua Conta Bancária está quase completa! Você construiu a capacidade de criar contas, depositar fundos e sacar dinheiro — mas falta uma peça crucial. No momento, o código externo não tem como ver o saldo atual. Vamos corrigir isso adicionando uma função getter.

Um getter é a maneira adequada de expor dados ocultos em um módulo encapsulado. Em vez de tornar o campo de saldo público (o que quebraria o encapsulamento), você fornece uma função de apenas leitura que retorna o valor. Isso mantém os dados protegidos, permitindo o acesso controlado.

Você continuará trabalhando com seus três arquivos:

  • account.h: Adicione um novo protótipo de função: get_balance. Esta função recebe um const Account * (já que ela apenas lê os dados, nunca os modifica) e retorna um double representando o saldo atual. Mantenha todas as suas declarações existentes.
  • account.c: Implemente a função get_balance. Ela simplesmente retorna o campo de saldo oculto da conta. Observe como esta função pode acessar os dados internos porque está definida no mesmo arquivo que a struct — o código externo ainda não pode espiar o interior diretamente.
  • main.c: Agora você finalmente pode ver o que está acontecendo dentro de suas contas! Crie uma conta, realize algumas transações e use seu novo getter para exibir o saldo em cada etapa.

Você receberá quatro entradas: o ID da conta (um número inteiro), um valor de depósito, um valor de saque e um segundo valor de depósito.

No seu arquivo principal, crie uma conta e imprima seu saldo inicial (deve ser 0.00). Deposite o primeiro valor e imprima o novo saldo. Saque o valor especificado e imprima o saldo novamente. Por fim, faça o segundo depósito e imprima o saldo final. Em seguida, destrua a conta.

Imprima a saída neste formato:

Account 1001 created
Balance: 0.00
Balance: 500.00
Balance: 200.00
Balance: 350.00
Account destroyed

Onde 1001 é o ID da conta, e os saldos refletem: inicial (0.00), após depositar 500.00, após sacar 300.00 e após depositar outros 150.00. Formate todos os valores de saldo com duas casas decimais usando %.2f.

Com este getter implementado, seu módulo de Conta Bancária agora fornece acesso completo e controlado aos dados da conta — os usuários podem ver o saldo, mas só podem modificá-lo através de suas funções validadas de depósito e saque.

Experimente você mesmo

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

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    double deposit1;
    scanf("%lf", &deposit1);
    
    double withdraw_amount;
    scanf("%lf", &withdraw_amount);
    
    double deposit2;
    scanf("%lf", &deposit2);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    // TODO: Imprimir o saldo inicial usando get_balance
    
    deposit(account, deposit1);
    // TODO: Imprimir o saldo após o primeiro depósito
    
    withdraw(account, withdraw_amount);
    // TODO: Imprimir o saldo após o saque
    
    deposit(account, deposit2);
    // TODO: Imprimir o saldo após o segundo depósito
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Todas as lições de Object Oriented Programming