Fundamentos de programación/Simulador de un cajero automático

Con el fin de ejercitar los conceptos aprendidos durante este proyecto de aprendizaje, la presente actividad sugiere la creación de un pequeño programa que simule algunas de las funciones presentes frecuentemente en los cajeros automáticos de los bancos. El propósito de la actividad es demostrar una comprensión adecuada de los conceptos de programación estudiados durante este proyecto de aprendizaje y desarrollar la habilidad de integrar los diferentes conceptos en el desarrollo de una solución integral a un problema. Es importante enfatizar que el objetivo no es replicar exactamente el funcionamiento de este tipo de dispositivos.

El programa deberá capturar a través del teclado el número de cuenta del usuario, la operación que desea realizar y el monto de la operación, de ser necesario. Una vez capturada la información, el programa deberá cargar el registro de todas las cuentas y sus respectivos saldos, almacenados en un archivo de texto, realizar la operación solicitada por el usuario y luego almacenar la información modificada en el archivo.

En el archivo, cada línea corresponde a una cuenta, donde el número de la cuenta y el saldo de la misma están separados por una coma («,»). Los saldos están expresados exclusivamente en números enteros (no se permiten decimales) mayores o iguales a cero (no se permiten saldos negativos) y la cantidad de cuentas en el archivo es fija: 20. A continuación se muestran las tres primeras líneas de un archivo de ejemplo:

123,150
124,450
125,12000
...

Si se presentan errores durante la ejecución del programa, se le deberán informar oportunamente al usuario antes de terminar el programa. Estos incluyen problemas con el ambiente, como errores tratando de abrir o escribir en el archivo de datos, y problemas con el uso del programa, como un usuario tratando de realizar un retiro por un monto superior al saldo de su cuenta.

Para el desarrollo de esta actividad puede realizar las siguientes suposiciones:

  • Existe una biblioteca llamada funciones_útiles.bib donde están definidas las siguientes funciones:
    • cadena real_a_texto (real número): Recibe un número real y regresa su representación como una cadena de texto.
    • cadena entero_a_texto (entero número): Recibe una cadena de texto y regresa el número entero correspondiente.
    • entero texto_a_entero (cadena número): Recibe una cadena de carácteres y regresa el número entero que representa. La función lanza una excepción de tipo NúmeroInválido si la cadena que recibe no corresponde a un número entero.
    • real texto_a_real (cadena número): Recibe una cadena de carácteres y regresa el número real que representa. La función lanza una excepción de tipo NúmeroInválido si la cadena que recibe no corresponde a un número real.
  • Las siguientes funciones, que forman parte de la biblioteca archivos.bib lanzan una excepción de tipo ErrorProcesandoArchivo cuando no pueden realizar la acción solicitada:
    • abrir_archivo
    • leer_línea_de_archivo
    • escribir_línea_en_archivo
    • cerrar_archivo



Proyecto: Fundamentos de programación
Anterior: Evaluación final — Simulador de un cajero automático — Siguiente: Fundamentos de programación