Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// ESTE ES EL NUEVO
- #include <stdio.h>
- #include <stdlib.h>
- const int maxF=2;
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- typedef struct
- {
- int id;
- char nombre[30];
- char domicilio[30];
- char localidad[30];
- int eliminado; /// Indica 1 o 0 si el cliente fue eliminado.
- } stCliente;
- typedef struct
- {
- int id_cliente;
- char usuario[20];
- int pass[2][5];
- int eliminado; /// Indica 1 o 0 si el cliente fue eliminado.
- } stUsuario;
- typedef struct
- {
- int id_Cliente;
- char usuario[20];
- char pass[10];
- } stUsuarioListado;
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- int main()
- {
- system("color 0B");
- /// ESTOS SON LOS ARCHIVOS.
- char nombrearchivo[]= "Cliente.dat";
- char nombre2[]= "Usuarios.dat";
- char nombre3[]= "Listado.dat";
- /// VARIABLES
- int opcion=0;
- char pass[10];
- int matriz_testigo[2][2]= {2,3,-1,1};
- float matriz_inversa[2][2]= {0.2,-0.6,0.2,0.4};
- int contra[2][5];
- int contraEncriptada[2][5];
- float contraDesencriptada[2][5];
- int i=0;
- int cantidad;
- /// MENU
- while(opcion!=5)
- {
- system("cls");
- gotoxy(1, 0);
- printf("____________________________________\n");
- gotoxy(1, 1);
- printf("|____________BIENVENIDO____________|\n");
- gotoxy(1, 2);
- printf("\n");
- printf(" 1)Registrarse\n");
- gotoxy(1, 4);
- printf("2)Iniciar sesion\n");
- gotoxy(1, 5);
- printf("3)Buscar usuario\n");
- gotoxy(1, 6);
- printf("4)Mostrar clientes\n");
- gotoxy(1, 7);
- printf("5)Salir\n");
- gotoxy(1, 8);
- scanf("%d", &opcion);
- switch(opcion)
- {
- case 1:
- system("cls");
- printf("registro\n");
- registrar(nombrearchivo, nombre2);
- cantidad=cargar(pass);
- numero_letra(pass);
- pasarAnumeros(pass,25,contra, cantidad);
- printf("Matriz contra:\n");
- mostrarMatriz(contra);
- encriptar(matriz_testigo,contra,contraEncriptada, nombre2);
- mostrarGuardada(nombre2);
- printf("Matriz contraEncriptada:\n");
- mostrarMatrizEncriptada(contraEncriptada, nombre2);
- desencriptar(matriz_inversa,contraEncriptada,contraDesencriptada);
- printf("Matriz contraDesencriptada:\n");
- mostrarMatrizDesencriptada(contraDesencriptada);
- system("pause");
- break;
- case 2:
- system("cls");
- printf("Aca podra iniciar sesion\n");
- system("pause");
- break;
- case 3:
- system("cls");
- printf("Buscar usuario\n");
- system("pause");
- break;
- case 4:
- system("cls");
- printf("mostrar todos\n");
- system("pause");
- break;
- case 5:
- system("cls");
- printf("Hasta luego!\n");
- break;
- }
- }
- return 0;
- }
- /// FUNCIONES
- void registrar (char cliente[], char usuario[]) /// FUNCION PARA REGISTRARSE
- {
- stCliente c;
- stUsuario u;
- /// ARCHIVO ES PARA CLIENTES | nombrearchivo | Cliente.dat
- /// ARCHI ES PARA USUARIOS | nombre2 | Usuario.dat
- /// ARCHIVITO ES PARA USUARIOS LISTADO | nombre3 | Listado.dat
- /// ACA SE REGISTRA PIDIENDO SUS DATOS PERSONALES
- FILE * archivo = fopen(cliente, "ab");
- if (archivo==NULL)
- {
- archivo = fopen(cliente, "wb");
- }
- if (archivo!=NULL)
- {
- printf("Ingrese nombre:\n");
- fflush(stdin);
- gets(c.nombre);
- printf("\n");
- printf("Ingrese su domicilio:\n");
- fflush(stdin);
- gets(c.domicilio);
- printf("\n");
- printf("Ingrese su localidad:\n");
- fflush(stdin);
- gets(&c.localidad);
- printf("\n");
- fseek(archivo, 0, SEEK_END);
- c.id=ftell(archivo)/sizeof(stCliente);
- printf("Su ID sera la numero: %d\n", c.id);
- fwrite(&c, sizeof(stCliente), 1, archivo);
- }
- fclose(archivo);
- /// ACA LE PIDE USUARIO
- FILE * archi = fopen(usuario, "ab");
- if (archi==NULL)
- {
- archi = fopen(usuario, "wb");
- }
- if (archi!=NULL)
- {
- printf("Ingrese su nombre de usuario:\n");
- fflush(stdin);
- gets(u.usuario);
- fseek(archi, 0, SEEK_END);
- u.id_cliente=ftell(archi)/sizeof(stUsuario);
- fwrite(&u, sizeof(stUsuario), 1, archi);
- }
- fclose(archi);
- }
- int numero_letra(char letra[])
- {
- char abc[]= {' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
- int i=0;
- while(i<=26)
- {
- if(letra==abc[i])
- {
- return i;
- }
- i++;
- }
- }
- void pasarAnumeros(char pass[],int cant_letras,int contra[][5], int cantidad)
- {
- int j=0;
- int k=0;
- int i=0;
- for(k=0; k<5; k++)
- {
- for(j=0; j<2; j++)
- {
- if(i<cantidad)
- {
- contra[j][k]=numero_letra(pass[i]);
- }
- else
- {
- contra[j][k]=0;
- }
- i++;
- }
- j=0;
- }
- }
- int cargar (char pass[])
- {
- printf("Ingrese su contrasenia:\n ");
- gets(pass);
- int cantidad=0;
- cantidad=strlen(pass);
- return cantidad;
- }
- void mostrarMatriz(int contra[][5])
- {
- int i=0;
- int j=0;
- for (i=0; i<2; i++)
- {
- printf ("(");
- for (j=0; j<5; j++)
- {
- printf(" %d ", contra[i][j]);
- }
- printf(")\n");
- }
- }
- void encriptar(int matriz_testigo[][2], int contra[][5],int contraEncriptada[][5], char usuario[])
- {
- stUsuario aux;
- FILE * archivo = fopen(usuario, "ab");
- if(archivo!=NULL)
- {
- ///-------------------------------------------(Primera fila)----------------------------------------///
- contraEncriptada[0][0]=(matriz_testigo[0][0]*contra[0][0])+(matriz_testigo[0][1]*contra[1][0]);
- contraEncriptada[0][1]=(matriz_testigo[0][0]*contra[0][1])+(matriz_testigo[0][1]*contra[1][1]);
- contraEncriptada[0][2]=(matriz_testigo[0][0]*contra[0][2])+(matriz_testigo[0][1]*contra[1][2]);
- contraEncriptada[0][3]=(matriz_testigo[0][0]*contra[0][3])+(matriz_testigo[0][1]*contra[1][3]);
- contraEncriptada[0][4]=(matriz_testigo[0][0]*contra[0][4])+(matriz_testigo[0][1]*contra[1][4]);
- ///-------------------------------------------(Segunda fila)----------------------------------------///
- contraEncriptada[1][0]=(matriz_testigo[1][0]*contra[0][0])+(matriz_testigo[1][1]*contra[1][0]);
- contraEncriptada[1][1]=(matriz_testigo[1][0]*contra[0][1])+(matriz_testigo[1][1]*contra[1][1]);
- contraEncriptada[1][2]=(matriz_testigo[1][0]*contra[0][2])+(matriz_testigo[1][1]*contra[1][2]);
- contraEncriptada[1][3]=(matriz_testigo[1][0]*contra[0][3])+(matriz_testigo[1][1]*contra[1][3]);
- contraEncriptada[1][4]=(matriz_testigo[1][0]*contra[0][4])+(matriz_testigo[1][1]*contra[1][4]);
- ///-------------------------------------------(Primera fila)----------------------------------------///
- aux.pass[0][0]=(matriz_testigo[0][0]*contra[0][0])+(matriz_testigo[0][1]*contra[1][0]);
- aux.pass[0][1]=(matriz_testigo[0][0]*contra[0][1])+(matriz_testigo[0][1]*contra[1][1]);
- aux.pass[0][2]=(matriz_testigo[0][0]*contra[0][2])+(matriz_testigo[0][1]*contra[1][2]);
- aux.pass[0][3]=(matriz_testigo[0][0]*contra[0][3])+(matriz_testigo[0][1]*contra[1][3]);
- aux.pass[0][4]=(matriz_testigo[0][0]*contra[0][4])+(matriz_testigo[0][1]*contra[1][4]);
- ///-------------------------------------------(Segunda fila)----------------------------------------///
- aux.pass[1][0]=(matriz_testigo[1][0]*contra[0][0])+(matriz_testigo[1][1]*contra[1][0]);
- aux.pass[1][1]=(matriz_testigo[1][0]*contra[0][1])+(matriz_testigo[1][1]*contra[1][1]);
- aux.pass[1][2]=(matriz_testigo[1][0]*contra[0][2])+(matriz_testigo[1][1]*contra[1][2]);
- aux.pass[1][3]=(matriz_testigo[1][0]*contra[0][3])+(matriz_testigo[1][1]*contra[1][3]);
- aux.pass[1][4]=(matriz_testigo[1][0]*contra[0][4])+(matriz_testigo[1][1]*contra[1][4]);
- fwrite(&aux, sizeof(stUsuario), 1, archivo);
- }
- fclose(archivo);
- }
- void mostrarGuardada (char usuario[])
- {
- int i=0;
- int j=0;
- stUsuario u;
- FILE * archivo = fopen(usuario, "rb");
- printf("\nESTA ES LA CONTRASENIA EN EL ARCHIVO:\n");
- if(archivo!=NULL)
- {
- while(fread(&u, sizeof(stUsuario), 1, archivo)>0)
- {
- printf("\n----------------------\n");
- interfazGuardada(u);
- printf("\n----------------------\n");
- }
- }
- fclose(archivo);
- }
- void interfazGuardada(stUsuario u)
- {
- int i=0;
- int j=0;
- for(i=0; i<2; i++)
- {
- printf("(");
- for(j=0; j<5; j++)
- {
- printf(" %d ", u.pass[i][j]);
- }
- printf(")\n");
- }
- }
- void mostrarMatrizEncriptada(int contraEncriptada[][5])
- {
- int i=0;
- int j=0;
- printf("CONTRASENIA SIN GUARDAR:\n");
- for (i=0; i<2; i++)
- {
- printf ("(");
- for (j=0; j<5; j++)
- {
- printf(" %d ", contraEncriptada[i][j]);
- }
- printf(")\n");
- }
- }
- void desencriptar(float matriz_inversa[][2], int contraEncriptada[][5], float contraDesencriptada [][5])
- {
- ///-------------------------------------------------------------(Primera fila)----------------------------------------------------------///
- contraDesencriptada[0][0]=(matriz_inversa[0][0]*(float)contraEncriptada[0][0])+(matriz_inversa[0][1]*(float)contraEncriptada[1][0]);
- contraDesencriptada[0][1]=(matriz_inversa[0][0]*(float)contraEncriptada[0][1])+(matriz_inversa[0][1]*(float)contraEncriptada[1][1]);
- contraDesencriptada[0][2]=(matriz_inversa[0][0]*(float)contraEncriptada[0][2])+(matriz_inversa[0][1]*(float)contraEncriptada[1][2]);
- contraDesencriptada[0][3]=(matriz_inversa[0][0]*(float)contraEncriptada[0][3])+(matriz_inversa[0][1]*(float)contraEncriptada[1][3]);
- contraDesencriptada[0][4]=(matriz_inversa[0][0]*(float)contraEncriptada[0][4])+(matriz_inversa[0][1]*(float)contraEncriptada[1][4]);
- ///-------------------------------------------------------------(Segunda fila)----------------------------------------------------------///
- contraDesencriptada[1][0]=(matriz_inversa[1][0]*(float)contraEncriptada[0][0])+(matriz_inversa[1][1]*(float)contraEncriptada[1][0]);
- contraDesencriptada[1][1]=(matriz_inversa[1][0]*(float)contraEncriptada[0][1])+(matriz_inversa[1][1]*(float)contraEncriptada[1][1]);
- contraDesencriptada[1][2]=(matriz_inversa[1][0]*(float)contraEncriptada[0][2])+(matriz_inversa[1][1]*(float)contraEncriptada[1][2]);
- contraDesencriptada[1][3]=(matriz_inversa[1][0]*(float)contraEncriptada[0][3])+(matriz_inversa[1][1]*(float)contraEncriptada[1][3]);
- contraDesencriptada[1][4]=(matriz_inversa[1][0]*(float)contraEncriptada[0][4])+(matriz_inversa[1][1]*(float)contraEncriptada[1][4]);
- }
- void mostrarMatrizDesencriptada(float contraDesencriptada[][5])
- {
- int i=0;
- int j=0;
- for (i=0; i<2; i++)
- {
- printf ("(");
- for (j=0; j<5; j++)
- {
- printf(" %0.f ", contraDesencriptada[i][j]);
- }
- printf(")\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement