Menu
Coddy logo textTech

Finalização do Projeto: Loop Principal

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

challenge icon

Desafio

Fácil

Parabéns — você construiu uma biblioteca completa de Conta Bancária! Agora é hora de mudar 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 caminho e, finalmente, fechará 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 de função que você construiu ao longo deste projeto.
  • main.c: É aqui que você brilha! Escreva um programa que demonstre o ciclo de vida completo de uma conta bancária através de uma sequência realista de transações.

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

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

  1. Criar a conta e anunciá-la
  2. Mostrar o saldo inicial
  3. Realizar o primeiro depósito e mostrar o novo saldo
  4. Sacar alguns fundos e mostrar o saldo atualizado
  5. Realizar outro depósito e mostrar o saldo
  6. Tentar um saque que exceda o saldo — isso deve falhar
  7. Mostrar o saldo final (inalterado após o saque com falha)
  8. Fechar 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 final demonstra tudo o que você aprendeu sobre encapsulamento — seu programa principal interage com a Account puramente através de sua interface pública, nunca tocando nos dados internos ocultos diretamente.

Experimente você mesmo

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

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

    // TODO: Criar a conta e imprimir "Account <id> created"

    // TODO: Imprimir o saldo inicial

    // TODO: Realizar o primeiro depósito, imprimir "Deposited <amount>" e o novo saldo

    // TODO: Sacar fundos, imprimir "Withdrew <amount>" e o saldo atualizado

    // TODO: Realizar o segundo depósito, imprimir "Deposited <amount>" e o novo saldo

    // TODO: Tentar o saque de cheque especial; se falhar, imprimir "Withdrawal failed: insufficient funds"
    // TODO: Imprimir o saldo final

    // TODO: Imprimir "Account <id> closed" e destruir a conta

    return 0;
}

Todas as lições de Object Oriented Programming