CAJERO AUTOMÁTICO PROBLEMA Se plantea modelar el funcionamiento de un cajero automático. El objetivo principal es el de definir las funciones básicas de un cajero automático, así como también las operaciones de mantenimiento de cuentas bancarias. Para cargar o guardar la información de las cuentas se debe emplear un archivo llamado “cajero.txt”, el cual debe contener por cada cuenta los siguientes datos: • • • • Número de Cuenta (21 dígitos alfanuméricos) Clave (6 dígitos alfanuméricos) Nombre del Titular de la Cuenta Saldo Actual Para alimentar el archivo con los datos de las cuentas, es necesario que Usted implemente las siguientes funciones de mantenimiento: int CuentaNueva(char, char, char, float) { … … } Esta función recibe como parámetros el número de la nueva cuenta, la clave, el nombre del titular y el monto de apertura de la cuenta. La función debe retornar “1” si la cuenta fue creada con éxito. En caso contrario debe retornar “0”. float Depositar(char, float){ … … } Esta función recibe como parámetros el número de cuenta y el monto a depositar. Debe retornar el saldo de la cuenta después de realizar el depósito. int CancelarCuenta(char) { … … } Esta función recibe como parámetro el número de cuenta a cancelar. Debe retornar “1” si la cuenta fue cerrada con éxito. “0” en caso contrario. Una cuenta es cerrada si tiene saldo 0.00 pesos. Para simular el funcionamiento del cajero automático, Usted debe implementar las siguientes funciones: int Usuario(char, char) { … … } Esta función recibe como parámetros el número de cuenta y la clave de acceso de usuario. La misma debe retornar “1” si la clave concuerda con el número de cuenta. En caso que no exista tal cuenta o la clave sea incorrecta, debe retornar “0”. float Retirar(char, float) { … … } Esta función recibe como parámetros el número de cuenta y el monto a retirar. Debe retornar el saldo de la cuenta después del retiro o un número negativo si el monto del retiro es superior al saldo actual. float ConsultaSaldo(char) { … … } Esta función recibe como parámetro el número de cuenta y debe retornar el saldo actual de la cuenta. int CambiarClave(char, char, char) { … … } Esta función recibe como parámetros el número de cuenta, la clave actual y la nueva clave. Debe retornar “1” si la clave actual es válida para el número de cuenta indicado y asociar la nueva clave a dicho número de cuenta en el archivo. Cuando se cambia la clave no se puede colocar la misma. Su proyecto deberá ser capaz de: 1. Programar las funciones definidas anteriormente. (NOTA: Es importante que los nombres de las funciones sean escritos exactamente como se indican para efectos de la corrección). 2. Permitir que el usuario ingrese el nombre del archivo que contiene la información de las cuentas (cajero.txt), y se realicen la verificación de los datos en dicho archivo para saber si es correcto. 3. Programar una función llamada MenuCajero que simule el funcionamiento de un cajero automático, partiendo de las funciones definidas anteriormente y las funciones de Entrada/Salida que usted considere necesarias para definir la interfaz del cajero. 4. Crear un archivo de texto final llamado "cajeroN.txt" que tiene el mismo formato del archivo cajero, pero este refleja todos los cambios ocurridos al finalizar el programa. Este archivo se deberá guardar ordenado ascendentemente por saldo de la cuenta. Usted deberá entregar en forma individual o en grupo de dos personas lo siguiente: 1. Análisis detallado del problema: explicación en lenguaje natural sobre cuál es el problema planteado y la solución encontrada (no se desea una transcripción de este proyecto). 2. Definición de variables, procedimientos, funciones, constantes, tipos de datos, etc. Debe explicar que significa cada una de las variables (constantes, acumulador, contador, etc.) y una breve descripción de qué realiza cada una de las funciones y procedimientos de su programa principal. 3. Listado del programa en lenguaje ANSI C (bien documentado), el cual debe reflejar la solución encontrada. 4. Un disquete libre de virus que contenga el código fuente de su programa en Lenguaje ANSI C (<archivo>.c) y el archivo ejecutable (<archivo>.exe) correspondiente. Fecha de entrega: El día del examen ordinario.