Está en la página 1de 7

Programacion

Prueba supletoria Implementación de una solución funcional

Presentado por

Presentado a

Universidad Nacional Abierta y a Distancia


Vicerrectoría Académica y de Investigación
Curso: Programación
Código: 213023
2023
Introducción

En la era digital actual, la simulación de sistemas complejos se ha vuelto esencial para

comprender y mejorar su funcionamiento. En este contexto, la Programación Orientada a Objetos

(POO) emerge como un enfoque poderoso que permite modelar y organizar sistemas de manera

eficiente y escalable. A través de la encapsulación, la herencia y el polimorfismo, la POO facilita la

creación de estructuras de software más flexibles y mantenibles.

En este ejercicio específico, exploraremos la aplicación de la POO en la creación de un

simulador de cajero automático. Este ejercicio no solo nos sumergirá en los principios

fundamentales de la POO, sino que también nos permitirá abordar situaciones prácticas, como la

autenticación de usuarios, la gestión de cuentas y la ejecución segura de transacciones financieras.

A medida que avanzamos, descubriremos cómo diseñar clases, utilizar métodos y gestionar

excepciones para construir un sistema coherente y funcional.


Codigo
#include <iostream>
#include <vector>

// Definición de la clase CuentaBancaria


class CuentaBancaria {
private:
std::string numeroCuenta;
std::string pin;
double saldo;
double topeDiarioRetiros;

public:
CuentaBancaria(std::string numCuenta, std::string clave, double saldoInicial, double topeDiario)
: numeroCuenta(numCuenta), pin(clave), saldo(saldoInicial), topeDiarioRetiros(topeDiario) {}

// Métodos para acceder y modificar la información de la cuenta


std::string getNumeroCuenta() const {
return numeroCuenta;
}

double getSaldo() const {


return saldo;
}

void setSaldo(double nuevoSaldo) {


saldo = nuevoSaldo;
}

double getTopeDiarioRetiros() const {


return topeDiarioRetiros;
}

// Función para realizar retiros


void realizarRetiro(double cantidad) {
if (cantidad > 0 && saldo >= cantidad && cantidad <= topeDiarioRetiros) {
saldo -= cantidad;
std::cout << "Retiro exitoso. Nuevo saldo: " << saldo << std::endl;
} else {
std::cout << "Error al realizar el retiro." << std::endl;
}
}

// Función para realizar transferencias


void realizarTransferencia(CuentaBancaria& cuentaDestino, double cantidad) {
if (cantidad > 0 && saldo >= cantidad) {
saldo -= cantidad;
cuentaDestino.setSaldo(cuentaDestino.getSaldo() + cantidad);
std::cout << "Transferencia exitosa. Nuevo saldo: " << saldo << std::endl;
} else {
std::cout << "Error al realizar la transferencia." << std::endl;
}
}
};

int main() {
// Crear instancias de cuentas bancarias
CuentaBancaria cuenta1("123456", "1234", 5000.0, 2000000.0);
CuentaBancaria cuenta2("789012", "5678", 10000.0, 2000000.0);
// Simular autenticación
std::string numeroCuenta;
std::string pin;

std::cout << "Ingrese el número de cuenta: ";


std::cin >> numeroCuenta;

std::cout << "Ingrese el PIN: ";


std::cin >> pin;

// Verificar autenticación
if (numeroCuenta == cuenta1.getNumeroCuenta() && pin == cuenta1.getPin()) {
// Operaciones para la cuenta1
double cantidadRetiro;
std::cout << "Ingrese la cantidad a retirar: ";
std::cin >> cantidadRetiro;
cuenta1.realizarRetiro(cantidadRetiro);

double cantidadTransferencia;
std::cout << "Ingrese la cantidad a transferir: ";
std::cin >> cantidadTransferencia;
cuenta1.realizarTransferencia(cuenta2, cantidadTransferencia);
} else {
std::cout << "Autenticación fallida. Cuenta no reconocida." << std::endl;
}

return 0;
}
Conclusiones

En la culminación de este ejercicio práctico centrado en la Programación Orientada a

Objetos (POO) mediante la creación de un simulador de cajero automático, hemos transitado un

camino enriquecedor hacia la comprensión y aplicación de los principios fundamentales de este

paradigma de programación.

Durante este proceso, hemos experimentado la potencia de la encapsulación, la herencia y

el polimorfismo al modelar las complejidades de un sistema realista. La creación de clases como

"CuentaBancaria" nos ha permitido estructurar la información de manera modular, facilitando la

gestión y manipulación de los datos asociados a una cuenta. La utilización de métodos nos ha

brindado la capacidad de definir acciones específicas, desde realizar retiros hasta ejecutar

transferencias entre cuentas.

Asimismo, hemos abordado situaciones prácticas como la autenticación de usuarios y la

gestión segura de transacciones financieras. La implementación de excepciones ha elevado la

robustez del simulador, permitiéndonos gestionar posibles errores de manera controlada y

proporcionando una experiencia más confiable para el usuario.

Este ejercicio no solo ha sido una inmersión técnica en la POO, sino también una

oportunidad para apreciar su utilidad en la resolución de problemas complejos. Al aplicar estos

conceptos en un contexto práctico, hemos fortalecido nuestra capacidad para diseñar sistemas más

flexibles, mantenibles y orientados a objetos.


Referencias bibliográficas

También podría gustarte