Translate

viernes, 4 de octubre de 2013

Cajero automatico en C

Este es un ejercicio propuesto en clase sobre el funcionamiento de un cajero con n clientes 

Actualizado!!!

Para visualizar mejor este codigo clik aqui.

  1. /*EJERCIO PARCIAL(CAJERO AUTOMATICO)
  2. Se debe partir de la existencia de una base de datos de clientes identificados por un login una
  3. contraseña y un sueldo en pesos, por lo tato se deben almacer los datos de al menos 100
  4. clientes(todos los datos son numericos y enteros ).
  5.  
  6. 1.Se debe implementar una funcion que valide login y contraseña. La funcion recibe la base de
  7. datos, el tamaño,el login y la contraseña digitados por el usuario, los verifica contra la base de
  8. datos para luego retornar 1 que indica la validacion exitosa de datos, o un 0 que indica el ingreso
  9. delogin o contraseña incorrectos.
  10.  
  11. 2. Se debe implementar una funcion que permita modificar la contraseña.la funcion recibe la base
  12. de datos, el tamaño, y el login, pide la contraseña nueva realiza la modificacio en la base de
  13. datos.
  14.  
  15. 3.Se debe implementar una funcion que permita realizar una operacion de retiro o consignacion
  16. en la cuenta. La funcion recibe la base de datos, el tamaño el login, el tipo de operacion a realizar
  17. y el valor de la transaccion, realizando la modificacion correspondiente en la base de
  18. datos(sumarle o restarle al sueldo) y retornando para el caso del retiro o la consignacion un 1 si
  19. fue posible de realizar, o para el caso del retiro un 0 si no fue posible.
  20.  
  21. Es necesario contruir el programaprincipal que
  22. -Permita ingresar los datos iniciales,segun la cantidas de clientes indicada por el usario
  23. funcion que recibe la base de datos,el tamaño y la llena)
  24. -Luego, permita el ingreso de un cliente(login y contraseña), validando los datos (llamando a
  25. funcion).
  26.  
  27. -Luego en caso de que los datos sean validados, muestre un menu con las opciones de
  28. *cambio de contraseña,consignacion,retiro,salir)
  29. -luego segun la opcion escogida por el usuario permita capturar los datos, ejecutar las funciones y
  30. presentar los resultados solicitados*/


#include <stdio.h>
#include <stdlib.h>


void IngresarDatos(int t,int m[100][3])
{ int f;

    for(f=0;f<t;f++){

            printf("Ingrese el id para el cliente: %d\n",f+1);
            scanf("%d",&m[f][0]);

            printf("Ingrese la password para el cliente: %d\n",f+1);
            scanf("%d",&m[f][1]);

            printf("Ingrese sueldo para el cliente: %d\n",f+1);
            scanf("%d",&m[f][2]);

    }

}
///_______________________________________________________________________________________________________________________

int ValidarCliente(int t,int idCliente,int password,int m[100][3]){
int f,c,estado,cont=0;

for(f=0;f<t;f++){
    for(c=0;c<3;c++){
        if(m[f][c]==idCliente && m[f][1]== password){
            cont=cont+1;
        }
    }
}
if(cont!=0){
    estado=1;
}
return estado;
}

void ModificarPassword(int t,int idCliente,int m[100][3]){
int f,c,newpass;
for(f=0;f<t;f++){
    for(c=0;c<3;c++){
        if(m[f][c]==idCliente){
            printf("Ingrese nueva contraseña:\n");
            scanf("%d",&newpass);
            m[f][1]=newpass;
            printf("La contraseña ha sido cambiada!!!\n ");
        }
    }
}

}

int RetiroConsignacion(int t,int idCliente,int operacion,int valor,int m[100][3]){
    int estado,f,c,bande;

    switch(operacion){

    case 1:

          for(f=0;f<t;f++){
            for(c=0;c<3;c++){
                if(m[f][c]==idCliente && m[f][2]>valor){
                    m[f][2]=m[f][2]-valor;
                    bande=1;
                }
                }
          }

          if(bande==1){
            estado=1;
          }


        break;


    case 2:
        for(f=0;f<t;f++){
            for(c=0;c<3;c++){
                if(m[f][c]==idCliente ){
                    m[f][2]=m[f][2]+valor;
                    bande=1;
                }
            }
          }
          if(bande==1){
            estado=1;
          }
        break;

    }

    return estado;
}
    ///____________________________________________________________________________________________________________________


int main(){

    int matriz[100][3],numC,idC,password,ope,opc,valor;


    printf("Ingrese el numero de clientes a procesar:\n");
    scanf("%d",&numC);
    IngresarDatos(numC,matriz);
    printf("\n");



    printf("Iniciar sesion\n");
    printf(" ");
    printf("Ingrese id cliente:\n");
    scanf("%d",&idC);
    printf(" ");
    printf("Ingrese id password:\n");
    scanf("%d",&password);

    int login=ValidarCliente(numC,idC,password,matriz);

    printf("%d\n",login);
    if(login==1){
        do{
           printf("1.Cambiar contraseña.\n");
           printf("2.Consignar/Retirar.\n");
           printf("3.Salir.\n");
           scanf("%d",&opc);


           switch(opc){
           case 1:
               ModificarPassword(numC,idC,matriz);

               printf("\n");
            break;

           case 2:
               printf("Que desea hacer?\n");
               printf(" \n");
               printf("1.Para retirar.\n");
               printf("2.Para consignar.\n");
               scanf("%d",&ope);
               printf("ingrese el monto:\n");
               scanf("%d",&valor);
               int estadoRC=RetiroConsignacion(numC,idC,ope,valor,matriz);
               if(estadoRC==1){
                printf("La transaccion ha sido realizada exitosamente\n");


               }///Fin si
               if(estadoRC!=1){
                printf("Error,el monto supera el saldo actual!!!!\n");

               }///Fin si
            break;

           case 3:
               printf("HASTA LUEGO!!!");
            break;
           }///fin segun

        }while(opc!=3);
    }else {printf("id o contraseña incorrectos\n");}
    return 0;
}

No hay comentarios:

Publicar un comentario