Universidad Autónoma de
Nuevo León
Facultad de Ingeniería Mecánica y Eléctrica
Materia: Algoritmos Computacionales
Hora de clase: V3 1:40- 2:30
Salon: 3302
Grupo: 005
PIA
Dra. Selene Guadalupe Pinal Gómez
Integrantes
Nombre Matricula Carrera
Roberto Carlos 2222950 ITS
Lozano Páez
Jonathan Antonio 2222990 IAS
Rodríguez Martínez
Introducion:
En el ámbito de la programación donde las soluciones tecnológicas están
cada vez más alineadas con las necesidades de la sociedad, es fundamental
comprender profundamente las estructuras de datos y las herramientas de
control que permiten abordar problemas específicos con precisión y
eficiencia. En este trabajo, exploraremos la implementación de un sistema
para la gestión de cuentas de banco en un cajero automático, un desafío
donde la seguridad y la organización de los datos son fundamentales.
Para resolver este problema, se recurre a una serie de conceptos y técnicas
que constituyen el núcleo de la programación. En particular, se utilizarán
estructuras de datos como las listas enlazadas para gestionar dinámicamente
los registros de transacciones y los saldos de las cuentas. Además, se
emplearán estructuras de control, como los bucles 'for', 'switch', 'if' y 'while',
para dirigir el flujo del programa y tomar decisiones en función de las
necesidades específicas de cada transacción.
En este análisis detallado del código, se desglosará cada componente del
programa para explicar por qué se seleccionaron ciertas estructuras de datos
y control, considerando factores como la eficiencia y la adaptabilidad a los
requerimientos del problema. Se resaltará la utilidad de las listas enlazadas
para registrar transacciones y la búsqueda lineal para localizar cuentas
específicas de forma rápida y segura.
Además, se proporcionará un algoritmo, pseudocódigo y un diagrama de
flujo que representarán la lógica del programa. Finalmente, se entregará la
versión ejecutable del software, que resuelve el problema planteado,
demostrando la aplicación práctica de los conceptos discutidos.
Este trabajo ilustra cómo las estructuras de datos y las técnicas de control
pueden combinarse de manera efectiva para diseñar soluciones a problemas
reales en el ámbito de la programación, proporcionando una herramienta
valiosa para la gestión de cuentas bancarias en un cajero automático.
Planeamiento del Problema:
En una empreza bancaria se necesita un sistema para controlar los
movimientos, como lo son los despsitos en cada cuenta, los retiros de dinero
en cada cuenta, las consultas de saldo para que cada cliente que dese
consultar su saldo en el banco pueda hacerlo en las cuentas bancarias de
dicho banco, de una forma eficiente.
Posible solucion:
Para resolver el problema de la gestión de cuentas en un cajero automático,
se propone un sistema que utiliza una lista enlazada para administrar las
cuentas de los clientes de manera flexible y segura. Este sistema permite
realizar operaciones bancarias básicas como depósitos, retiros y consultas de
saldo, además de simplificar el manejo de cuentas activas. La lista enlazada
es una estructura que facilita el acceso dinámico a las cuentas, permitiendo
modificaciones sin necesidad de reorganizar toda la estructura de datos
cada cuenta bancaria en este sistema está representada por un nodo en la
lista enlazada, que incluye el número de cuenta, el saldo actual y un
identificador para el cliente. Esta estructura de datos permite agregar,
eliminar y modificar cuentas eficientemente, lo cual es esencial en un cajero
automático donde la rapidez y la precisión son fundamentales.
El programa ofrece las siguientes funcionalidades:
*Crear Cuenta: Permite registrar una nueva cuenta bancaria con un número
único y un saldo inicial. Esto asegura que cada cliente tenga un registro
bancario en el sistema.
*Cerrar Cuenta: Facilita la eliminación de una cuenta, manteniendo la lista
actualizada y sin cuentas inactivas.
*Depósito de Dinero: Permite agregar fondos a una cuenta específica,
incrementando el saldo de acuerdo con la cantidad ingresada por el cliente.
*Retiro de Dinero: Permite retirar fondos de una cuenta, validando que haya
suficiente saldo disponible para realizar la operación.
*Consultar Saldo: Permite al cliente ver el saldo disponible en su cuenta,
brindando transparencia y facilidad de acceso a su información financiera.
Para buscar una cuenta en la lista enlazada, se realiza una búsqueda lineal, lo
cual es adecuado para este tipo de sistema. Este diseño garantiza la
flexibilidad y seguridad que se requieren en un cajero automático, ofreciendo
a los clientes una experiencia de usuario simple y eficiente.
Algoitmo:
(Algoritmo de Administración de Cuentas en Cajero Automático)
1. Definir una estructura llamada "Cuenta" que representa cada cuenta
bancaria. Cada cuenta tiene un número único, un saldo y un puntero al
siguiente nodo en la lista enlazada.
2. Implementar una función "crearCuenta" que permite agregar una nueva
cuenta al sistema. La función toma el número de cuenta y el saldo inicial
como parámetros, y luego enlaza la nueva cuenta al final de la lista existente.
3. Crear una función "cerrarCuenta" que elimina una cuenta específica de la
lista. La función busca la cuenta por número y, si se encuentra, la elimina y
libera la memoria ocupada por el nodo correspondiente.
4. Desarrollar una función "depositarDinero" que toma el número de cuenta
y la cantidad a depositar. La función encuentra la cuenta deseada y aumenta
su saldo en la cantidad especificada.
5. Crear una función "retirarDinero" que permite a un cliente extraer fondos
de su cuenta, asegurando que el saldo disponible sea suficiente antes de
completar la operación.
6. Implementar una función "consultarSaldo" que muestra el saldo actual de
una cuenta específica, brindando al usuario acceso a la información de su
saldo de manera instantánea.
7. Crear una función "liberarCuentas" que recorre la lista de cuentas y libera
la memoria asignada a cada nodo antes de finalizar el programa.
8. En la función principal "main", inicializar la lista de cuentas como vacía y
establecer las variables necesarias para controlar las opciones del usuario.
9. Iniciar un bucle que presenta un menú de opciones al usuario. Estas
opciones permiten al cliente crear una cuenta, cerrar una cuenta, realizar
depósitos, hacer retiros, consultar el saldo y salir del sistema.
10. Según la opción seleccionada por el usuario, se llama a la función
correspondiente para ejecutar la acción solicitada.
11. Continuar en el bucle hasta que el usuario decida finalizar (seleccionando
la opción de salida).
12. Antes de salir del programa, se utiliza la función (liberarCuentas) para
liberar la memoria asignada a la lista enlazada de cuentas.
Pseudocodigo:
Diarama de flujo:
Codigo en C:
Ejecución del programa en C:
Intentos de inicio de sesión:
Desposito en la cuenta:
Retiro de dinero de la cuenta:
Mostrar saldo de la cuenta:
Salir:
Conclusion Grupal:
Referencias:
EBAC. (1 de Junio de 2023). EBAC. Obtenido de EBAC:
[Link]
Openwebinars. (4 de Septiembre de 2019). Openwebinars. Obtenido de
Openwebinars: [Link]
VentajasyDesventajas. (28 de Abril de 2022). VentajasyDesventajas. Obtenido
de VentajasyDesventajas: [Link]