El mejor código fuente en C
# incluir & ltstdlib.h & gt
# incluir & ltstring.h & gt
# incluir & ltmalloc. h & gt
estructura estudiante
{
int num
char nombre[20];
char tel[20];
estructura estudiante *siguiente;
};
estructura estudiante *cabeza, *tmp1, *tmp2
int n;
Carga no válida()
{
ARCHIVO * FP 1;
int I;
fp1=fopen("file.txt","Rb");
struct estudiante * tmp
struct estudiante * q;
Printf(" Inicio leyendo información del estudiante\n ");
head = 0;
while(1){
tmp = malloc(size of(struct Student) );
tmp-& gt; next = 0;
//i=fscanf(fp1, "ID del estudiante: %d Nombre: %s Teléfono: % s \ n ", & (tmp->num), tmp->nombre, tmp->teléfono
i=fread(tmp, sizeof(struct Student), 1, FP 1) ;
if(i==1){
if(head==0)
q = head = tmp
Printf ("Leer la información de un estudiante\ n ");
q->; next = tmp
q = q-& gt; next;
} En caso contrario {
fclose(FP 1);
return;
}
}
}
Salida no válida()
{
tmp 1 = encabezado
Y (tmp1!=0)
{
Printf; ("ID de estudiante: %d Nombre: %s Teléfono: %s\n ", tmp 1-& gt; num, tmp 1->; Nombre, tmp 1->; Teléfono );
tmp 1 = tmp 1-& gt;Siguiente;
}
}
Entrada no válida ( ) p>
{ struct Student *q, * p;
Printf("Agregue la información del estudiante según sea necesario:\ n "
p=malloc(sizeof(struct Student)); Printf("Ingrese el número de estudiante:");
scanf("%d ", &p->num);
printf(" \ nIngrese el nombre del estudiante: ") ;
scanf("%s ", p-& gt; nombre);
printf(" \ nIngrese el número de teléfono del estudiante:
); scanf("%s ", p-& gt; número de teléfono);
p->; siguiente = 0;
if(head==0){
cabeza = p;
q = p;
}else{
q = Cabeza;
mientras(q- >;¡Siguiente! =0)
{
q = q-& gt; siguiente;
/p>
q->; siguiente = p;
q = p;
}
}
eliminar vacío ()
{ struct Student *q, * p;
int numint I; /*¿Cuál es el número de artículo aquí?*/
Printf(" Por favor ingrese el registro I \ n ");
scanf("%d ", & ampnum);
if(num==1)
{ head = head-> next;}/*Eliminar nodo principal*/
p = head;
for(I = 1;i<num-1 ;I++) /*Mover p a el nodo que se va a eliminar*/
{ p = p->Next;}
if(num & gt;1)
p->next = (p->next)->next; /*Por ejemplo, vincule 2 4 nodos y elimine 3 nodos*/
Printf("Eliminación exitosa, verifique\n ");
}
Búsqueda no válida()
{ char c[20];
char tmp 2 _ num[20]; p>
Printf("Por favor ingrese la información a consultar:\ n ");
scanf("%s ", c
Printf("Lo que usted); desea consultar es:\ n ");
tmp2 = header; /*Traverse*/
And (tmp2! =0)
{ p>
Printf("ID de estudiante: %d Nombre: %s Teléfono: %s\n ", tmp 2-& gt; num, tmp 2-& gt; nombre, tmp 2-& gt; teléfono);
if(strncacecmp(tmp 2-& gt; name, c, strlen(c))==0)
Printf("El nombre coincidió correctamente\n "); p>
/*Match*/
if(strncacecmp(tmp 2->tel,c,strlen(c))= =0)
Printf("Teléfono coincidencia exitosa\n");
sprintf(tmp2_num, "%d", tmp 2->num);
if(strncacescmp(tmp 2_num,c,strlen(c ))==0)
Printf("El número de estudiante coincidió correctamente\ n ");
tmp 2 = tmp 2->Siguiente;
}
}
Guardar no válido()
{
ARCHIVO * FP 1;
estructura estudiante *q , * p 1;
fp1=fopen("file.txt","w");
p 1 = 0;
p 1 =cabeza ;
if(head==0)
{
Printf ("No hay información del estudiante ahora, agregue primero la información del estudiante:\ n ") ;
}
Y (p1! =0)
{
//fprintf(fp1, "ID de estudiante: %d Nombre: %s Teléfono: %s\n ", p 1-& gt; num, p 1->; nombre, p 1->;
fwrite(p1, sizeof(struct estudiante), 1, FP 1); : %dNombre:%sTeléfono:%s\n ", p 1-& gt; num, p 1->; nombre, p 1->; número de teléfono);
>p 1 = p 1->; siguiente;
}
fclose(FP 1);
}
Cambio no válido ( )
{ struct Student * p;
int numint I; /*¿Cuál es el número de artículo aquí?*/
Printf("Ingrese el modificado requerido registro I \n ");
scanf("%d ", & ampnum);
p = encabezado;
for(I = 1;i<numi++ )
{
p = p->Siguiente;
}
Printf("ID del estudiante: %d Nombre: % s Teléfono: %s\n ", p-& gt; num, p-> Nombre, p-& gt; Teléfono);
Printf("Por favor modifique el número de estudiante :"); p>
scanf("%d ",&p->num);
Printf("Por favor modifique el nombre del estudiante:");
scanf("%s " , p-& gt; nombre);
Printf("Modifique el número de teléfono del estudiante:");
scanf("%s ", p ->teléfono);
}
int main()
{
head = tmp 1 = 0;
p>
mientras(1)
{
printf(" \ n \ n "
Printf ("\ t \ t * * Bienvenido a el sistema de gestión de estudiantes * * \ n ");
Printf ("\ t \ t * * Ingrese la información correspondiente según sea necesario * * \ n ");
Printf ( "\ t \ t * * 0. Cargar información del estudiante * * \ n ");
Printf ("\ t \ t * * 1. Ver información del estudiante * * \ n "); >
Printf ("\ t \ t * * 1. Ver información del estudiante * * \ n "
p>Printf("\t\t*** 2. Agregar información del estudiante *); * * \ n");
Printf("\t\t*** 3. Eliminar registros de estudiantes * * * \ n ");
Printf("\t\ t*** 4. Consultar registros de estudiantes * * * \ n ");
Printf("\t \t*** 5. Guardar información del estudiante * * * \n");
Printf("\t\t*** 6. Modificar información del estudiante * * * \ n ");
Printf ("\ t \ t * * 7. Salir * * * \ n ");
Printf("Seleccionar función :");
scanf("%d ", & ampn);
Cambiar(n)
{
Caso 0 :
carga();
Interrupción;
Caso 1:
OutPut();
Interrupción ;
Caso dos:
InPut();
Break;
Caso tres:
delete( );
Pausa;
Caso 4:
búsqueda();
Pausa 5; :
guardar();
Romper;
Caso 6: Cambiar(); >Caso 7:
Salir(0);
Break;
Valor predeterminado:
Printf("Esta función no está disponible temporalmente ");
}
}
}