Escribir un sistema de gestión de libreta de direcciones de estudiantes en C
#includelt;stdio.hgt;
#includelt;stdlib.hgt;
#includelt;string.hgt;
# define FORMATO "s\t\ts\t\ts\td\ts\n"
int count=0;
struct Dirección
{ p>
char Nombre[21];
int Edad;
char Sexo[6];
char ClassNum[11]; >
char PhonNum[12];
};
int Enterface();
int Add(Libreta de direcciones[]); >
int Modify(Libreta de direcciones[]);
int Delent(Libreta de direcciones[]);
int Insert(Libreta de direcciones[]);
int Buscar(Libreta de direcciones[]);
int Show(Libreta de direcciones[]);
int FindName(Libreta de direcciones[]);
int FindClassNum(Libreta de direcciones[]);
int DelName(Libreta de direcciones[]);
int DelClassNum(Libreta de direcciones[]);
int FindPhonNum (Libreta de direcciones[]);
int Readtxt(Libreta de direcciones[]);
int Writetxt(Libreta de direcciones[]);
int Search(Dirección book[], char str1[], int n);
int FSearch(Libreta de direcciones[], char str2[], int n);
int Taxis(Libreta de direcciones[ ]);
int Salir();
///////////////////////////// / //////////////////////////////////////////
void main()
{
Libreta de direcciones[100];
int elección
char or='m'; /p>
printf("\n");
printf("\n");
printf("\n"); > printf( "\n");
printf("\n");
printf("\n"); n") ;
printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\n");
p>
printf("\n");
printf(" !!! ¡¡¡Bienvenido al sistema de libreta de direcciones de la clase!!!\n");
printf( " \n");
printf(" ¡¡¡Presione cualquier tecla para ingresar al sistema!!!\n");
printf("\n"); /p>
printf(" !!!Administrador: ******!!!\n");
printf("\n"); printf( "///////////////////////////////////////////////// ///// //////\n");
sistema("pausa");
sistema("cls");
Readtxt(libro) ;
while(o=='m')
{
elección=Enterface();
cambiar(elección)
{
caso 1: Agregar(libro);
romper
caso 2: Modificar(libro) ;
descanso;
caso 3: Delent(libro);
descanso
caso 4: Insertar(libro); /p>
descanso;
caso 5: Buscar(libro);
descanso
caso 6: Mostrar(libro); >
break ;
caso 7: Salir();
break;
valor predeterminado: printf("!!! ¡¡¡Error de entrada!!!\ n");
Salir();
romper;
}
}
} p>
int Enterface()
{
int elección=0;
printf("*********** ******* ***\n");
printf(" 1. Agregar\n");
printf(" 2. Modificar\n") ;
printf("3.Delete\n");
printf("4.Insert\n");
printf("5.Buscar \n");
p>
printf(" 6. Mostrar\n");
printf(" 7. Salir\n");
printf("****** *************\n");
printf("Ingrese su elección:"); p>
scanf("d", amp; elección);
return elección;
}
int Add(Libreta de direcciones[])
{
char o='Y';
while('Y'==o)
{
printf("Ingrese su nombre: ");
scanf("s", & libro[recuento].Nombre ); p>
p>
flag1:
printf("Ingrese el número de teléfono:");
scanf("s",amp;book[count] .PhonNum);
p>
for(int i=0;ilt;count;i)
{
if(strcmp(libro[ count].PhonNum, book[i].PhonNum )==0)
{
printf("!!!¡¡¡El número ya existe!!!\n");
goto flag1;
}
}
flag2:
printf("Ingrese el número de estudiante: "
scanf(" s", & libro[count].ClassNum);
for(i=0; ilt; count; i)
{
if(strcmp (libro[recuento].ClassNum, libro[i].ClassNum)==0)
{
printf("!! !¡¡¡El número de estudiante ya existe!!!\n" );
goto flag2;
}
}
printf("Por favor ingresa tu edad: ");
scanf("d",amp;book[count].Age);
printf("Por favor ingresa el género:");
scanf("s",amp; libro[recuento].Sexo);
getchar();
recuento;
printf(" Si se debe continuar agregando (se agregó 'Y', se devolvieron otras claves Interfaz principal): ");
scanf("c", amp; or);
if('Y' !=o)
{
system("cls");
descanso
}
}
Taxis(libro);
Writetxt(libro);
// printf("sdfsdfsdf\n"); return 0;
} p>
int Modificar(Libreta de direcciones[])
{
char str[11];
int flag=0;
int ksd=0;
printf("Ingrese el número de estudiante del año pasado: "); s", amp; str);
for(int i=0; ilt; count; i )
{
if(strcmp(str, book [i].ClassNum)==0)
{
if(ksd==0)
{
printf(" Nombre\t Teléfono\t\tID del estudiante\tSexo \tEdad\n");
ksd=1;
}
printf("8s\t8s\ts\ts\td\n", libro[i].Nombre, libro[i].NumPhon,
libro[i].NumClase, libro[i].Sexo, libro[i].Edad);
// str[flag_num]=i;
bandera=1;
// i--;
romper
}
}
if(flag==0)
{
printf("!!!¡¡¡No existe tal registro!!!\n");
return 0;
}
printf("Ingrese su nombre: ");
scanf("s", amp; libro[i].Nombre ); p >
flag0:
printf("Ingrese su número de teléfono:");
scanf("s",amp;book[i].PhonNum);
for(int j=0;jlt;count;j)
{
if(j==i)
continuar;
p>if(strcmp(libro[i].PhonNum, libro[j].PhonNum)==0)
{
printf("! !!El número ya existe!!!\n");
goto flag0;
}
}
flag3:
printf("Ingrese el número de estudiante: ");
scanf("s", amp; book[i].ClassNum); j=0; jlt; contar; j )
{
si(j==i)
continuar;
si( strcmp(libro[i] .ClassNum, libro[j].ClassNum)==0)
{
printf("!!!¡¡¡El número de estudiante ya existe!!!\n ");
goto flag3;
}
}
printf("Ingrese su edad: ");
scanf(" d", amp; libro[i].Edad);
printf ("Ingrese el género:
scanf ("s", amp; libro[i]. Sexo);
getchar();
printf("¡Modificación completada!\n"); ;
system("pausa");
// printf("modificar\n"); }
int Delent(Libreta de direcciones[])
{
// printf("delent\n");
int elección=0;
printf("================\n
");
printf(" 1. Eliminar por nombre\n");
printf(" 2. Eliminar por número de estudiante\n");
printf("=================\n");
scanf("d",amp;choice);
switch(elección)
{
caso 1: DelName(libro);
descanso
caso 2: DelClassNum(libro) ;
romper;
predeterminado:
romper;
}
devolver 0;
}
int Insertar(Libreta de direcciones[])
{
Agregar(libro);
// printf( "insert\n");
return 0;
}
int Buscar(Libreta de direcciones[])
{ p>
int elección=0;
printf("================\n"); " 1. Buscar por nombre\n");
printf(" 2. Buscar por número de estudiante\n");
printf(" 3. Buscar por número de teléfono\n " );
printf("================\n");
scanf("d",amp;elección ) ;
cambiar(elección)
{
caso 1: BuscarNombre(libro);
romper;
caso 2: FindClassNum(libro);
descanso
caso 3: FindPhonNum(libro);
descanso
predeterminado:
descanso
}
// printf("buscar\n");
devolver
}
int FindName(Libreta de direcciones[])
{
char aname[30];
printf( " Introduzca el nombre que desea buscar: ");
scanf("s", aname
FSearch(book, aname, 3); p > return 0;
}
int FindClassNum(Libreta de direcciones[])
{
char anum[20];
p>printf("Ingrese el número de estudiante que está buscando: ");
scanf("s", amp; anum
FSearch); (libro, anum, 2);
return 0;
}
int FindPhonNum(Libreta de direcciones[])
{
char aphonnum[20];
pr
intf("Ingrese el número de estudiante que desea buscar:");
scanf("s", amp; aphonnum
FSearch(book, aphonnum, 1);
p>return 0;
}
int Show(Libreta de direcciones[])
{
int or=0 ;
if(count==0)
{
printf("!!!¡¡¡Sin registro!!!\n");
sistema("pausa");
sistema("cls");
}
más
{
p>printf("Nombre\t Teléfono\t\tID de estudiante\tGénero\tEdad\n");
for(int i=0; ilt; count; i)
printf("8s\t8s\ts\ts\td\n", libro[i].Nombre, libro[i].PhonNum,
libro[i] .ClassNum, libro[i].Sexo, libro[i].Edad);
system("pausa");
}
printf(" ¿Ordenar?" \n-=1. Ordenar=- -=2. Volver a la interfaz principal=-\n");
scanf("d", amp; or
);if( 1==o)
Taxis(libro);
return 0
}
int DelName( Libreta de direcciones[])
{
char aname[20];
printf("Ingrese el nombre que desea eliminar: "); >
scanf( "s",amp;aname);
Buscar(libro,aname,2);
devuelve 0;
}
int DelClassNum(Libreta de direcciones[])
{
char anum[20];
printf("Ingrese el número de estudiante a eliminar:");
scanf("s", amp; anum);
Buscar(libro, anum, 1);
return 0
}
int Readtxt(Libreta de direcciones[])
{
ARCHIVO *fp1;
fp1=fopen("númerosfotos. txt", "r");
if(fp1 == NULL)
{
printf("¡incorrecto!\ n");
system("pausa");
}
while(!feof(fp1))
{
if (!fscanf(fp1, "s\t\ts\t\ts\td\ts", libro[recuento].Nombre, libro[recuento].PhonNum,
libro[recuento].NumClase, amp;libro[recuento].Edad,libro
[recuento].Sexo))
printf("¡Error de lectura!");
recuento
}
recuento- - ;
fclose(fp1);
return 0;
}
int Writetxt(Libreta de direcciones[])
{
ARCHIVO *fp;
fp=fopen("númerosdefotos.txt", "w"); ; ilt; contar; i )
{
fprintf(fp, FORMATO, libro[i].Nombre, libro[i].PhonNum,
libro [i].NumClase, libro[i].Edad, libro[i].Sexo
}
fclose(fp); ;
}
int Search(Libreta de direcciones[], char str1[], int n)
{
int flag = 0;
int str[5];
int flag_num=0;
int j;
int gf;
p>
int ksd=0
for(int i=0; ilt; count; i )
{
si (n== 1)
{
if(strcmp(str1, libro[i].ClassNum)==0)
flag=2;
}
else if(n==2)
{
if(strcmp(str1,libro[i].Nombre) ==0)
bandera=2
}
if(bandera==2)
{
if( ksd==0)
{
printf("Nombre\t Teléfono\t\tID del estudiante\tGénero\tEdad\n");
ksd=1;
}
printf("8s\t8s\ts\ts\td\n", libro[i].Nombre, libro[i].NumPhon ,
libro[i].ClassNum, libro[i].Sexo, libro[i].Edad
str[flag_num]=i
bandera=1
}
}
si(bandera==0)
{
printf ("!!!¡¡¡Sin registro!!!\n");
system("pausa");
system("cls");
}
if(flag==1)
{
printf("-=1.Confirmar eliminación=-\t-=2.Cancel= - \n");
scanf("d",amp;j);
if(1==j)
{
gf=1;
for(int m=str[0]; mlt; count-flag_num; m )
{ p>
for(int j=gf-1; jlt; flag_num; j )
{
if((m gf)==str[j]) p>
gf;
}
strcpy(libro[m].Nombre, libro[m gf].Nombre
libro[m); ].Edad=libro[m gf].Edad;
strcpy(libro[m].ClassNum, libro[m gf].ClassNum);
strcpy(libro[m] .PhonNum, libro[m gf].PhonNum);
strcpy(libro[m].Sexo, libro[m gf].Sexo
}
<); p> count=count-flag_num;Writetxt(libro);
}
else if(2==j)
{
printf("!!! Operación cancelada!!!\n");
}
system("pausa");
}
return 0;
}
int FSearch(Libreta de direcciones[], char str2[], int n)
{
int flag=0;
int ksd=0;
for(int i=0; ilt; count; i ) p >
{
if(n==1)
{
if(strcmp(str2,book[i].PhonNum)== 0 )
bandera=2;
}
si no (3==n)
{
if(strcmp(str2,book[i].Name)==0)
flag=2
}
else if(2== n; )
{
if(strcmp(str2, book[i].ClassNum)==0)
flag=2;
}
si(flag==2)
{
si(0==ksd)
{
printf("Nombre\t Teléfono\t\tID de estudiante\tGénero\tEdad\n");
ksd=1;
}
printf("8s\t8s\ts\ts\td\n",libro[i].Nombre,libro[i].NumPhon,
libro[i].NumClase,libro[ i].Sexo , libro[i].Edad);
flag=1
}
}
<p> if(1==bandera)
sistema("pausa");
else if(bandera==0)
{
printf("!!!¡¡¡No existe tal registro!!!\n");
system("pause");
system("cls"); p> p>
}
return 0;
}
int Taxis(Libreta de direcciones[])
{
/* for(int i=0; ilt; contar; i)
{
for(int j=0; jlt; contar-1-i ; j )
{
if(strcmp(libro[j].NumClase, libro[j 1].NumClase)gt; 0)
{
Dirección bk;
strcpy(bk.Nombre, libro[j].Nombre);
bk.Edad=libro[j].Edad; p>
strcpy(bk.ClassNum, libro[j].ClassNum);
strcpy(bk.PhonNum, libro[j].PhonNum
strcpy(bk); .Sexo , libro[j].Sexo);
strcpy(libro[j].Nombre, libro[j 1].Nombre);
libro[j].Edad= libro[ j 1].Edad;
strcpy(libro[j].NumClase, libro[j 1].NumClase
strcpy(libro[j].NumPhon, libro); [j 1].PhonNum);
strcpy(libro[j].Sexo, libro[j 1].Sexo);
strcpy(libro[j 1].Nombre, bk. Nombre);
libro[j 1].Edad=bk.Edad;
strcpy(libro[j 1].ClassNum, bk.ClassNum);
strcpy(libro[j 1].PhonNum, bk.PhonNum);
strcpy(libro[j 1].Sexo, bk.Sexo
}); p>
}
}
printf("!!! ¡¡¡Operación exitosa!!!\n");
system("pausa") ;
system("cls");
Writetxt(libro); */
devuelve 0; >
int Salir()
{
salir(1);
devuelve 0;
Este es un programa que escribí antes. Hay un documento que ya escribí y en él se almacena cierta información de contacto virtual. Si es necesario, te enviaré el proyecto completo y te dejaré un correo electrónico....O. (∩_ ∩)O~