Está en la página 1de 5

#include<stdio.

h>
#include<string.h>
//para strlen
#include<stdlib.h> //exit
struct contacto{
char nombre[50];
char celular[11];
char casa[11];
char correo[50];
};

//
//
//
;

void leer_contacto(struct contacto *c, int num);


void imprimir_contacto(struct contacto *c, int num);
void codificar(struct contacto *c, int num);
void imprimir_codificado(struct contacto *c, int num);
void grabar_archivo(FILE *archivo,struct contacto *c,int num);
int cargar_archivo(FILE *archivo, struct contacto *c);
void decodificar(struct contacto *c, int num);
void grabar_decodificado(FILE *archivo_decod,struct contacto *c,int num)

int main(int argc, char*argv[])


{
int numCont=0;
FILE *archivo=NULL; //apuntador para el archivo
FILE *archivo_decod=NULL;
struct contacto c[10]; //arreglo de estructuras
struct contacto *apuntador=NULL;
apuntador=&c[0];
printf("\nIngresa el numero de contactos que quieres guardar (maximo 10)
: ");
scanf("%d", &numCont);
fflush(stdin);
leer_contacto(apuntador,numCont);
imprimir_contacto(apuntador,numCont);
codificar(apuntador,numCont);
imprimir_codificado(apuntador,numCont);
grabar_archivo(archivo,apuntador, numCont);
cargar_archivo(archivo,apuntador);
decodificar(apuntador,numCont);
grabar_decodificado(archivo_decod,apuntador,numCont);
fflush(stdin);
getchar();
return 0;
}
void leer_contacto(struct contacto *c, int num) //num es el nuevo nombre
de la variable en la funcion principal "numCont"
{
int conde=0;
for(conde=0;conde<num;conde++)
{
printf("\nDame tu nombre: ");
gets(c[conde].nombre);

printf("Dame tu numero de celular (max. 10 digitos): ");


gets(c[conde].celular);
fflush(stdin);
printf("Dame tu numero de casa (max. 10 digitos): ");
gets(c[conde].casa);
fflush(stdin);
printf("Dame tu numero de correo electronico: ");
gets(c[conde].correo);
fflush(stdin);
}
}
void imprimir_contacto(struct contacto *c, int num)
{
int conde=0;
printf("\n\n\tCONTACTO(S):");
for(conde=0;conde<num;conde++)
{
printf("\nNombre:%s \nCelular:%s \nCasa:%s \nCorreo:%s", c[conde
].nombre, c[conde].celular, c[conde].casa, c[conde].correo);
}
}
void codificar(struct contacto *c, int num)
{
int conde=0, lnombre=0, lcelular=0, lcasa=0, lcorreo=0, i=0;
lnombre=strlen(c[conde].nombre);

//longitud del nombre o

nombres
lcelular=strlen(c[conde].celular);
lcasa=strlen(c[conde].casa);
lcorreo=strlen(c[conde].correo);
for(conde=0;conde<lnombre;conde++)
{
for(i=0;i<num;i++)
{
c[i].nombre[conde]=c[i].nombre[conde]+3;
}
}
for(conde=0;conde<lcelular;conde++)
{
for(i=0;i<num;i++)
{
c[i].celular[conde]=c[i].celular[conde]+3;
}
}
for(conde=0;conde<lcasa;conde++)
{
for(i=0;i<num;i++)
{
c[i].casa[conde]=c[i].casa[conde]+3;
}
}

for(conde=0;conde<lcorreo;conde++)
{
for(i=0;i<num;i++)
{
c[i].correo[conde]=c[i].correo[conde]+3;
}
}
}
void imprimir_codificado(struct contacto *c, int num)
{
int conde=0, i=0;
printf("\n\n\tCODIFICADO(S)");
for(i=0;i<num;i++)
{
printf("\nNombre:%s \tCelular:%s \tCasa:%s \tCorreo:%s", c[i].no
mbre, c[i].celular, c[i].casa, c[i].correo);
}
fflush(stdin);
}
void grabar_archivo(FILE *archivo,struct contacto *c,int num)
{
int i=0;
if((archivo=fopen("codificado.txt","w"))==NULL)
{
printf("Error al abrir");
getchar();
exit(0);
}
else
{
for(i=0;i<num;i++)
{
fprintf(archivo,"\n%s \t%s \t%s \t%s",c[i].nombre, c[i].
celular, c[i].casa, c[i].correo);
}
fclose(archivo);
printf("\n\n Archivo de destino guardado!");
}
}
int cargar_archivo(FILE *archivo, struct contacto *c)
{
int datos=0, i=0;
if((archivo=fopen("codificado.txt","r"))==NULL)
{
printf("Error al abrir");
getchar();
exit(0);
}
else
{
while(feof(archivo)==0)
datos=fscanf(archivo, "%30s

%10s

%10s

%30s", c

[i].nombre, c[i].celular, c[i].casa, c[i].correo);


}
}
void decodificar(struct contacto *c, int num)
{
int conde=0, lnombre=0, lcelular=0, lcasa=0, lcorreo=0, i=0;
lnombre=strlen(c[conde].nombre);

//longitud del nombre o

nombres
lcelular=strlen(c[conde].celular);
lcasa=strlen(c[conde].casa);
lcorreo=strlen(c[conde].correo);
for(conde=0;conde<lnombre;conde++)
{
for(i=0;i<num;i++)
{
c[i].nombre[conde]=c[i].nombre[conde]-3;
}
}
for(conde=0;conde<lcelular;conde++)
{
for(i=0;i<num;i++)
{
c[i].celular[conde]=c[i].celular[conde]-3;
}
}
for(conde=0;conde<lcasa;conde++)
{
for(i=0;i<num;i++)
{
c[i].casa[conde]=c[i].casa[conde]-3;
}
}
for(conde=0;conde<lcorreo;conde++)
{
for(i=0;i<num;i++)
{
c[i].correo[conde]=c[i].correo[conde]-3;
}
}
}
void grabar_decodificado(FILE *archivo_decod,struct contacto *c,int num)
{
int i=0;
if((archivo_decod=fopen("decodificado.txt","w"))==NULL)
{
printf("Error al abrir");
getchar();
exit(0);
}
else
{
for(i=0;i<num;i++)
{

fprintf(archivo_decod,"\n%s \t%s \t%s \t%s",c[i].nombre,


c[i].celular, c[i].casa, c[i].correo);
}
fclose(archivo_decod);
printf("\n\n Archivo de destino guardado!");
}
}

También podría gustarte