- Chileno Jefferson
- Narváez Jhoel
- Palma Darío
-
Para confirmar cualquier procedimiento
Se utilizará el cero
0
para confirmar en todo el programa.Para ingresar a un procedimiento se utilizará numeros. (Los numeros ingresados se usuara como tipo char, a menos que se diga lo contrario)
Realizar el prototipo de la aplicacion, esto nos servirá de guia para la creación del programa y poder visulizarlo antes de ser lanzado a producción.
- Interfaz de inicio.
- Interfaz de creación de usuario.
- Interfaz de Inicio de sesion.
- Realizar animación de entrada
El procedimiento inicioAnimacion()
ubicado en la carpeta lib/features.h
simula animación de entrada, esto se logra con un recorrido a cada char de las cadenas con un Ciclo For.
char lineas[94] = "----------------------------------------------------------------------------------------------";
char welcome[11] = "WELCOME TO:";
char nameBank[61] = "S I M U L A T I O N - I N T E R N A T I O N A L - B A N K";
char createUsssssssser[15] = "2. Crear Cuenta";
char iniciarSesssssion[17] = "1. Iniciar Sesion";
char salir[8] = "0. SALIR";
El procedimiento HEADER()
ubicado en la carpeta lib/features.h
es para dar el encabezado en el programa.
printf(" --------------------------------------------------------------------------------------------\n");
printf("\t\tS I M U L A T I O N - I N T E R N A T I O N A L - B A N K \n");
printf(" --------------------------------------------------------------------------------------------\n");
El metodo showBarrRotateCenter(int delay)
ubicado en la carpeta lib/features.h
es para simular un pantalla de carga.
El diagrama de flujo se encuentra en
resources/showBarrRotateCenter.drawio
o Click aquí
Estrucura general del programa (bucles, condicionales y switch)
Variables usadas:
char EnterOrExit;
const int DELAY = 100;
int positionUserFree;
DO WHILE :
Encargado de mantener en el ciclo hasta que el usuario decida abandonar el programa (como ya se explicó anteriormente usaremos 'cero' para validar operaciones).
IF :
Dependiendo de la elección del usuario, el programa puede INICIAR SESION, CREAR USUARIO o en su defecto ABANDONAR EL PROGRAMA.
-
INICIAR SESION
-
CREAR USUARIO
-
ABANDONAR
Estructura usuario
con las siguientes propiedades
typedef struct
{
int ID;
char user[20];
char password[20];
char email[30];
char county[20];
char city[20];
char phoneNumber[10];
char identificationCard[12];
float cash;
} usuario;
Nota: para el manejo del phoneNumber y identificationCard se usara en formato texto para evitar gasto inncesario de memoria.
SIMULATION BANK en su version 0.1.0 trabajara con estrucura dentro de la misma aplicacion, en su futura actulización se trabaja con ficheros para el manejo automático de datos.
Procedimiento searchPositionFree()
Para no equivocarnos en donde debe colocar al nuevo usuario o sobreescriba uno ya creado, creamos esta función para poder buscar una posición libre dentro de la estrucutura.
Esto se ha hecho recorriendo la estructura usuarios
con una estrucura For que tiene como limite dar 100 itereraciones. Luego con ayuda de un condicional IF preguntamos por una propiedad de la estructura y si el contenido de esa propiedad empieza con \0
es decir esta vacía, entonces encontramos una posición libre dentro de la estructura de estrucuturas. entonces guardamos el numero de iteración (posición libre) en la variable del MAIN
llamada positionUserFree
Una vez se haya encontrado la posición terminaremos el proceso con un break;
El procedimiento llamado createNewUser()
en el MAIN
lo primero que hacemos llamar a searchPositionFree()
para obtener la posición libre.
Enseguida vamos preguntado al usuario los respectivos datos para llenar la estructura. Antes de cada pregunta se uso fflush(stdin)
para limpiar el buffer, y evitar inconvenientes en la toma de datos del usuario.
Para indicar este ID lo primero es que generamos un numero aleatorio con ayuda de ran()
sin embargo esto no fue suficiente, para evitar que el ID de algún usuario se repitiera se implemento una estructura FOR que va iterando la estructura usuarios
y en cada iteracion pregunta por la propiedad ID
y si encuentra un ID igual, vuelve a ejecutar rand()
.
Pero no esto tampoco fue suficiente, porque lo unico que hizo es que la nueva posición que antes sea era igual, la cambio, pero existe la posibilidad que en iteraciones anteriores a esta se encuentre un ID igual al que recien se ha cambiado, es por esta razon que si encuentra un ID igual lo cambia pero la estrucura for se reinicia para volver a preguntar desde el principio de la estrucutura verificando que no haya ID iguales. Con esto hemos garantizado que el ID siempre sea UNICO y ahora estmos autorizados a guardar el ID en la estructura.
CREACION DE USUARIO
Llamamos al procedimiento createNewUser()
para crear un nuevo usuarios pero ante de salir preguntamos al usuario con un IF si desea guardar los datos o no, dado que si no desea entonces no debemos guardar la información ingresesa
!!! PARA LA PROXIMA ACTULIZACIÓN SE USARA VARAIBLES AUXILIARES PARA REALIZAR ESTE PROCESO
Si el usuario desea que se guarde los datos, entonces se guardara en un fichero externo.
Por último, si usuario haya o no guardado los datos, entonces se dirigen a la pantalla de inincio.
- Primero declaramos las variables buscar: buscarID; buscarpass y result que seran las principales variables a usar.
- Ya declaradas estas variables usaremos "system("cls")" para limpiar la consola para asi despues continuar con el programa.
- Presentaremos el encabezado "HEADER" y se presentara el espacio para que pueda escribir su " username" para que gracias a la funcionn "SCANF" lo que se escriba en la consola sea guardado en la variable "buscarID".
- A continuacion se presentara el espacio para que pueda escribir su "password" y de la misma manera la funcion "SCANF" pueda guardarlo en la funcion "buscarpass". -Una vez que ya se haya ingresado usuario como contraseña usaremos un if que sera el encargado de recorrer el arreglo donde se encuentran los usuarios y las contraseñas existentes en el programa(dicho arreglo se encuentra en la libreria "JeffTools.h"), si el usuario o la contraseña esta mal el programa no podra avanzar caso contrario le presentaran las opciones que posee el programa.
DEPOSITO
Realizamos la funcion deposito
a traves de codigos en lennguaje C. se utilizaron las siguientes variables:
- int positionUserFree
- float deposito.
Despues utilizamos un "system("cls")", para limpiar la consola.
Utilizamos lo siguiente:
PRINTF
: Utilizamos para que mande a imprimir en la consola.SCANF
: Para leer varios datos como los que utilizamos.usuarios[ ].cash += deposito
: Utlizamos esta funcion para calcular el valor total que tiene la cuenta.
Imprimimos en la consola el encabezado del procedimiento deposito
En esta parte pedimos al usurio que ingrese su numero de ID, toda la informacion esta en la libreria [feautures.h] en la parte de {usuario[]}.
Cuando encontramos el numero de cuenta procedemos al siguiente paso.
Pedimos el monto a depositar, con el mensaje dinero a ingresar
para almacenar el monto a depositar utilizamos la variable [deposito].Con la operacion usuarios[ ].cash += deposito
calculamos el deposito mas el dinero que tiene en la cuenta.
Al final se muestra el monton total del deposito. NOTA:
Toda la informacion de las cuentas esta en la libreria [feautures.h].