Menu
Coddy logo textTech

Resumen - Gestor de cuentas bancarias

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy. Lección 22 de 110.

challenge icon

Desafío

Fácil

Construyamos un sistema de gestión de cuentas bancarias que reúna todos los conceptos de propiedades de clase que has aprendido en este capítulo. Crearás un sistema que realiza un seguimiento de los datos de cada cuenta y, al mismo tiempo, mantiene estadísticas de todo el banco.

Organizarás tu código en dos archivos:

  • bank_account.dart: Define una clase BankAccount que administre cuentas individuales y realice un seguimiento de las estadísticas generales del banco. Tu clase debe incluir:
    • Un final String accountNumber que no pueda cambiar después de su creación
    • Un String holderName para el nombre del titular de la cuenta
    • Un campo privado double _balance que comience en 0.0
    • Un static int totalAccounts que comience en 0 para llevar un registro de cuántas cuentas existen
    • Un static double totalDeposits que comience en 0.0 para llevar un registro de todos los depósitos realizados en el banco
    • Un constructor que reciba accountNumber y holderName, e incremente totalAccounts
    • Un getter balance que devuelva el saldo actual
    • Un método deposit(double amount) que añada dinero al saldo solo si el importe es positivo, y que también añada el importe a totalDeposits cuando la operación tenga éxito
    • Un método withdraw(double amount) que reste dinero del saldo solo si el importe es positivo y no supera el saldo actual
    • Un método displayInfo() que imprima los detalles de la cuenta
    • Un método estático getBankStats() que devuelva una cadena con las estadísticas de todo el banco
  • main.dart: Importa tu clase de cuenta bancaria y demuestra el sistema:
    • Crea una cuenta con el número 'ACC001' para 'Alice'
    • Crea una cuenta con el número 'ACC002' para 'Bob'
    • Deposita 500.0 en la cuenta de Alice
    • Deposita 300.0 en la cuenta de Bob
    • Retira 150.0 de la cuenta de Alice
    • Intenta retirar 1000.0 de la cuenta de Bob (debe ignorarse: fondos insuficientes)
    • Intenta depositar -50.0 en la cuenta de Alice (debe ignorarse: importe negativo)
    • Llama a displayInfo() en la cuenta de Alice y después en la cuenta de Bob
    • Imprime las estadísticas del banco usando BankAccount.getBankStats()

El método displayInfo() debe imprimir con este formato:

Account [accountNumber] | Holder: [holderName] | Balance: $[balance]

El método getBankStats() debe devolver:

Bank Stats - Total Accounts: [totalAccounts] | Total Deposits: $[totalDeposits]

Salida esperada:

Account ACC001 | Holder: Alice | Balance: $350.0
Account ACC002 | Holder: Bob | Balance: $300.0
Bank Stats - Total Accounts: 2 | Total Deposits: $800.0

Pruébalo tú mismo

import 'bank_account.dart';

void main() {
  // TODO: Crear una cuenta con el número 'ACC001' para 'Alice'
  
  // TODO: Crear una cuenta con el número 'ACC002' para 'Bob'
  
  // TODO: Depositar 500.0 en la cuenta de Alice
  
  // TODO: Depositar 300.0 en la cuenta de Bob
  
  // TODO: Retirar 150.0 de la cuenta de Alice
  
  // TODO: Intentar retirar 1000.0 de la cuenta de Bob (debe ser ignorado)
  
  // TODO: Intentar depositar -50.0 en la cuenta de Alice (debe ser ignorado)
  
  // TODO: Llamar a displayInfo() en la cuenta de Alice
  
  // TODO: Llamar a displayInfo() en la cuenta de Bob
  
  // TODO: Imprimir las estadísticas bancarias usando BankAccount.getBankStats()
}

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Dart online