Rescatar una escena es como apagar un incendio. Si puedes programar en lenguaje C, ¡entra! !
/*Cree una libreta de direcciones mediante programación, almacene categorías, nombres, números de teléfono y direcciones de correo electrónico, y luego busque, agregue, modifique y elimine la libreta de direcciones.
*/
#includelt; stdio.hgt;
#include lt; string.hgt
estructura persona
{
p>p>
char nombre[8];
char tel[15];
char correo electrónico[50] /*Agregar correo electrónico*/
char correo electrónico[50]; p>
char addr[50];
char clases[20]; /*amigos, familiares, colegas*/
}; nombre de archivo[ 20];
ARCHIVO *fp;
void creat();
salida nula();
void append();
void modificar();
void eliminar1()
int main(); /p >
{
int m;
creat();
mientras(1)
{
printf("\n\nPara agregar, presione 1");
printf("\nPara buscar, presione 2"); nModificar, presione 3");
printf("\nPara eliminar, presione 4");
printf("\nPara generar, presione 5"); p >
printf("\nPara salir, presione 0\n");
scanf("d",amp;m
if(mgt;= 0amp ;amp;mlt;=5)
{
interruptor(m)
{
caso 1: append();
romper;
caso 2: buscar();
romper
caso 3: modificar();
romper;
caso 4: eliminar1();
romper
caso 5: salida(); ;
caso 0: retorno 1;
}
printf("\n\nLa operación se completó, ¡seleccione nuevamente! ");
}
else
printf("\n\nSelección incorrecta, ¡seleccione nuevamente!");
}
}
void creat()
{
estructura persona uno
long s1
p>
printf("\nIngrese el nombre de la libreta de direcciones; de lo contrario, se creará una nueva: "); p >if((fp=fopen(filename, "a "))==NULL)
{
printf("\n¡No se puede crear la libreta de direcciones!"); >
return;
}
/*Volver al principio del archivo para determinar si es un archivo vacío*/
rewind( fp);
p>
fscanf(fp,"s",one.name);
if(strcmp(one.name,"name")==0)
{
fclose(fp);
salida();
retorno
}
/* está vacío; archivo, ahora agregue datos */
fprintf(fp, "-10s-10s-20s-20s-50s\n", "Nombre", "Categoría", "Número de teléfono", "Correo electrónico", "Dirección");
printf("\nIngrese su nombre, categoría, número de teléfono, correo electrónico y dirección (que termina en 0)\n"); ", one.name);
while(strcmp(one.name, "0"))
{
scanf("ssss", one. clases, one.tel, one.email, one.addr);
fprintf(fp, "-10s-10s-20s-20s-50s\n", one.name, one.classes, one .tel, un.correo electrónico, una.dirección);
scanf("s", un.nombre
}
fclose(fp);
}
salida nula()
{
estructura persona uno
if((fp= fopen(nombre de archivo, "r"))==NULL)
{
printf("\n¡No se puede abrir la libreta de direcciones!");
}
printf("\n\n20s\n","Libreta de direcciones");
while(!feof(fp))
{
fscanf(fp, "sssss\n", one.name, one.classes, one.tel, one.email, one.addr
); printf("\ns10s10s10s20s", uno.nombre, una.clases, un.tel, un.correo electrónico, una.dirección
}
fclose(fp); p> p>
}
void append()
{
estructura persona uno
if((fp= fopen( filename, "a"))==NULL)
{
printf("\n¡No se puede abrir la libreta de direcciones! ");
return;
}
printf("\nIngrese el nombre agregado, la categoría, el número de teléfono, el correo electrónico y la dirección\n") ;
scanf("sssss", one.name, one.classes, one.tel, one.email, one.addr
fprintf(fp, "-10s- 10s); -20s-20s-50s\n", un.nombre, una.clases, un.tel, un.correo electrónico, una.dirección);
fclose(fp);
}
>
búsqueda vacía()
{
int k=0
char nombreclave[8]
estructura persona; one;
printf("\nIngrese su nombre: ");
scanf("s",namekey
if((fp=fopen); (nombre de archivo, "rb"))==NULL)
{
printf("\n¡No se puede abrir la libreta de direcciones!"); /p>
}
while(!feof(fp))
{
fscanf(fp, "sssss\n", one.name , one.classes, one.tel, one.email, one.addr);
if(!strcmp(namekey, one.name))
{
printf("\n\n Encontrado, registrado como: ");
printf("\n-10s-10s-18s-18s-50s", one.name, one.classes, one. .tel, un.correo electrónico, una.dirección);
k=1
}
}
if( !k )
printf("\n\nLo sentimos, no hay ningún registro para esta persona en la libreta de direcciones.
");
fclose(fp);
}
void modificar()
{
int m, k=0;
desplazamiento largo;
char nombreclave[8];
estructura persona uno
printf(" \nPor favor ingrese su nombre: ");
scanf("s", namekey);
if((fp=fopen(filename, "r "))==NULL)
{
printf("\n¡No se puede abrir la libreta de direcciones!");
return
}
< p); > while(!feof(fp)){
offset=ftell(fp);
fscanf(fp, "sssss\n", uno . nombre, one.classes, one.tel, one.email, one.addr
if(!strcmp(namekey, one.name))
{
k=1;
romper
}
}
si(k)
{
printf("\n Encontrado, registrado como: ");
printf("\n-10s-10s-18s-18s-50s", uno. nombre, uno .classes, one.tel, one.email, one.addr);
printf("\nIngrese un nuevo nombre, categoría, número de teléfono, correo electrónico y dirección:
p); >scanf("sssss", one.name, one.classes, one.tel, one.email, one.addr
fseek(fp, offset, SEEK_SET
p>/*printf("ld", ftell(fp)); */
fprintf(fp, "-10s-10s-20s-20s-50s\n", uno. nombre, one.classes, one.tel, one.email, one.addr;
}
else
printf("\nLo siento, libreta de direcciones). No hay ningún registro de esta persona en .
");
fclose(fp);
}
void eliminar1()
{
int m, k=0, bandera;
long offset1, offset2;
char namekey[8], valid[4]; /p>
printf("\nPor favor ingrese su nombre: ");
scanf("s",namekey
if((fp=fopen(filename, "r "))==NULL)
{
printf("\n¡No se puede abrir la libreta de direcciones!");
}
mientras(!feof(fp))
{
offset1=ftell(fp); fp, "sssss\n", one.name, one.classes, one.tel, one.email, one.addr
if(!strcmp(namekey, one.name)) p>
p>
{
k=1
romper
}
}
if (k)
{
printf("\n Encontrado, registrado como "); 10s-18s -18s-50s", one.classes, one.name, one.tel, one.email, one.addr);
printf("\nSi realmente desea eliminar, presione 1 ; si no desea eliminar, presione 0: ");
scanf("d",amp; m);
if(m)
{
fseek (fp, offset1, SEEK_SET);
fprintf(fp, "-10s-10s-20s-20s-50s\n", "", "" , "", "", "");
}
}
else
printf("\nLo sentimos, hay no hay ningún registro para esta persona en la libreta de direcciones.");
fclose(fp);
}