Menu
Coddy logo textTech

Final del proyecto: Bucle principal

Parte de la sección Programación Orientada a Objetos del Journey de C de Coddy. Lección 27 de 61.

challenge icon

Desafío

Fácil

¡Felicidades: has creado una biblioteca completa de cuentas bancarias! Ahora es momento de cambiar de papel. En lugar de ser quien creó la biblioteca, te convertirás en el usuario de la biblioteca. Tu tarea es escribir un programa principal que ponga a prueba tu módulo Account.

Imagina que eres un cliente que entra en un banco y realiza una serie de transacciones. Crearás una cuenta, harás depósitos y retiros, consultarás el saldo durante el proceso y, finalmente, cerrarás la cuenta cuando hayas terminado.

Trabajarás con tres archivos:

  • account.h: Tu archivo de encabezado completo con el tipo opaco Account y todos los prototipos de funciones: create_account, destroy_account, deposit, withdraw y get_balance.
  • account.c: Tu implementación completa con la estructura oculta que contiene id y balance, además de todas las implementaciones de funciones que has creado a lo largo de este proyecto.
  • main.c: ¡Aquí es donde demostrarás lo que sabes! Escribe un programa que muestre el ciclo de vida completo de una cuenta bancaria mediante una secuencia realista de transacciones.

Recibirás cinco entradas: el ID de la cuenta (un entero), un primer depósito, un retiro, un segundo depósito y un sobregiro intentado (un retiro que debería fallar debido a fondos insuficientes).

Tu programa principal debe contar la historia de la vida de esta cuenta:

  1. Crear la cuenta y anunciarlo
  2. Mostrar el saldo inicial
  3. Hacer el primer depósito y mostrar el nuevo saldo
  4. Retirar algunos fondos y mostrar el saldo actualizado
  5. Hacer otro depósito y mostrar el saldo
  6. Intentar un retiro que supere el saldo. Esto debe fallar
  7. Mostrar el saldo final (sin cambios después del retiro fallido)
  8. Cerrar la cuenta

Imprime la salida con este 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

Donde 2001 es el ID de la cuenta y las cantidades reflejan tus entradas. Da formato a todos los valores monetarios con dos decimales usando %.2f. El mensaje de retiro fallido debe imprimirse cuando withdraw devuelva 0.

Este cierre demuestra todo lo que has aprendido sobre la encapsulación. Tu programa principal interactúa con Account únicamente a través de su interfaz pública, sin acceder nunca directamente a los datos internos ocultos.

Pruébalo tú mismo

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

int main() {
    // TODO: Lee account_id, deposit1, withdraw_amount, deposit2 y overdraft de la entrada

    // TODO: Crea la cuenta e imprime "Account <id> created"

    // TODO: Imprime el saldo inicial

    // TODO: Realiza el primer depósito, imprime "Deposited <amount>" y el nuevo saldo

    // TODO: Retira fondos, imprime "Withdrew <amount>" y el saldo actualizado

    // TODO: Realiza el segundo depósito, imprime "Deposited <amount>" y el nuevo saldo

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

    // TODO: Imprime "Account <id> closed" y destruye la cuenta

    return 0;
}

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de C online