Menu
Coddy logo textTech

Finalização do Projeto: Loop Principal

Parte da seção Programação Orientada a Objetos do Journey de C da Coddy. Lição 27 de 61.

challenge icon

Desafio

Fácil

Parabéns: você criou uma biblioteca completa de Conta Bancária! Agora é hora de trocar de papel. Em vez de ser o criador da biblioteca, você se tornará o usuário da biblioteca. Sua tarefa é escrever um programa principal que coloque seu módulo Account à prova.

Pense nisso como um cliente entrando em um banco e realizando uma série de transações. Você criará uma conta, fará depósitos e saques, verificará o saldo ao longo do processo e, finalmente, encerrará a conta quando terminar.

Você trabalhará com três arquivos:

  • account.h: Seu arquivo de cabeçalho completo com o tipo opaco Account e todos os protótipos de função: create_account, destroy_account, deposit, withdraw e get_balance.
  • account.c: Sua implementação completa com a struct oculta contendo id e balance, além de todas as implementações das funções que você criou ao longo deste projeto.
  • main.c: É aqui que você brilha! Escreva um programa que demonstre todo o ciclo de vida de uma conta bancária por meio de uma sequência realista de transações.

Você receberá cinco entradas: o ID da conta (um inteiro), um primeiro depósito, um saque, um segundo depósito e uma tentativa de saque a descoberto (um saque que deve falhar devido a fundos insuficientes).

Seu programa principal deve contar a história da vida desta conta:

  1. Crie a conta e anuncie sua criação
  2. Mostre o saldo inicial
  3. Faça o primeiro depósito e mostre o novo saldo
  4. Faça um saque e mostre o saldo atualizado
  5. Faça outro depósito e mostre o saldo
  6. Tente fazer um saque que exceda o saldo. Isso deve falhar
  7. Mostre o saldo final (inalterado após o saque malsucedido)
  8. Encerre a conta

Imprima a saída neste formato:

Account 2001 created
Balance: 0.00
Deposited 1000.00
Balance: 1000.00
Withdrew 250.00
Balance: 750.00
Deposited 500.00
Balance: 1250.00
Withdrawal failed: insufficient funds
Balance: 1250.00
Account 2001 closed

Onde 2001 é o ID da conta e os valores refletem suas entradas. Formate todos os valores monetários com duas casas decimais usando %.2f. A mensagem de falha no saque deve ser impressa quando withdraw retornar 0.

Este encerramento demonstra tudo o que você aprendeu sobre encapsulamento. Seu programa principal interage com Account exclusivamente por meio de sua interface pública, sem nunca acessar diretamente os dados internos ocultos.

Experimente você mesmo

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

int main() {
    // TODO: Leia account_id, deposit1, withdraw_amount, deposit2 e overdraft da entrada

    // TODO: Crie a conta e imprima "Account <id> created"

    // TODO: Imprima o saldo inicial

    // TODO: Faça o primeiro depósito, imprima "Deposited <amount>" e o novo saldo

    // TODO: Saque os fundos, imprima "Withdrew <amount>" e o saldo atualizado

    // TODO: Faça o segundo depósito, imprima "Deposited <amount>" e o novo saldo

    // TODO: Attempt the overdraft withdrawal; if it fails, print "Withdrawal failed: insufficient funds"
    // TODO: Imprima o saldo final

    // TODO: Imprima "Account <id> closed" e destrua a conta

    return 0;
}

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de C online