Código fuente de información del estudiante
# 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 *head, *tmp1, *tmp2
int n;
Carga no válida()
{
ARCHIVO * FP 1;
int I;
fp1=fopen("archivo . txt "," Rb ");
Estructura estudiante * tmp
struct estudiante * q;
Printf("Empezar a leer la información del estudiante\n" );
cabeza = 0;
mientras(1){
tmp = malloc(tamaño de (estructura estudiante));
tmp - gt; next = 0;
//i=fscanf(fp1, "ID de estudiante: d Nombre: s Teléfono: s\n", (tmp->num), tmp- gt; nombre, tmp- gt; teléfono);
i=fread(tmp, sizeof(struct estudiante), 1, FP 1); >
if(head==0)
q = head = tmp
Printf("Leer la información de un estudiante\ n ");
q ->;siguiente = tmp
q = q- gt;siguiente;
}else{
fclose(FP 1
Regresar;
}
}
}
Salida no válida()
{
tmp 1 = encabezado;
And (tmp1!=0)
{
Printf("ID del estudiante: d Nombre: s Teléfono: s \n ", tmp 1-> num, tmp 1-> nombre, tmp 1->; teléfono);
tmp 1 = tmp 1-> siguiente;
} p>
}
Entrada no válida ( )
{ struct Student *q, * p;
Printf("Agregue la información del estudiante según sea necesario: \ n ");
p=malloc(sizeof(estructura estudiante));
Printf("Ingrese el número de estudiante: ");
scanf( "d", ampp->num);
printf("\nPor favor ingrese el nombre del estudiante: ");
scanf( "s ", p- gt; nombre);
printf ("\nIngrese el número de teléfono del estudiante: ");
scanf ("s", p- gt; teléfono ); >; siguiente = 0;
if(cabeza==0){
cabeza = p
q = p;
}de lo contrario{<
/p>
q = cabeza;
mientras(q->; siguiente!=0)
{
q = q- gt; ;
}
q->; siguiente = p;
q =
}
}
void delete()
{ struct Student *q, * p;
int numint I /*¿Qué artículo es num aquí */ /p>
Printf("Ingrese el registro I \ n ");
scanf("d ", ampnum
if(num ==1)
{ head = head- gt; next }/*Eliminar nodo principal*/
p = head;
for( I = 1; iltnum-1 ; I ) /*Mover p al nodo que se va a eliminar*/
{ p = p- gt;Next;}
if( num gt; 1)
p->; next = (p- gt; next)- gt; next; /*Por ejemplo, vincular 2 4 nodos y eliminar 3 nodos*/ p>
Printf("Eliminación exitosa, por favor check\n ");
}
Búsqueda no válida()
{ char c[20] ;
char tmp 2 _ num[20];
Printf("Ingrese la información que desea consultar: \ n ");
scanf("s ", c
<); p>Printf("Lo que quieres consultar es:\n ");tmp2 = header /*Traverse*/
And (tmp2!=0)
{
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; nombre, c, strlen(c))==0)
Printf("nombre Coincidencia exitosa\n "); p>
/*Match*/
if(strncacecmp(tmp 2- gt;tel, c, strlen(c))==0) p>
Printf("Teléfono coincidencia exitosa\n");
sprintf(tmp2_num, "d",tmp2-gt;num);
if(strncacescmp( tmp 2 _ num, c, strlen(c ))==0)
Printf("El número de estudiante coincidió correctamente\ n ");
tmp 2 = tmp 2- gt;
}
}
void save()
{
ARCHIVO * FP 1
estructura estudiante *q; , * p 1;
fp1=fopen("archivo.txt ", " w ");
p 1 = 0
p 1 = cabeza;
if(head==0)
{
Printf("No hay información del estudiante ahora, agregue la información del estudiante primero:\n ") ;
}
Y (p1! =0)
{
//fprintf(fp1, "ID de estudiante: d Nombre: s Teléfono: s\n ", p 1- g
t; num, p 1-> nombre, p 1-> teléfono);
fwrite(p1, sizeof(struct Student), 1, FP 1); ID de estudiante: dNombre: sTeléfono: s\n", p 1- gt; num, p 1->; nombre, p 1->; teléfono);
p 1 = p 1 ->;Siguiente ;
}
fclose(FP 1);
}
Cambio no válido()
{ estructura estudiante * p;
int numint I; /*¿Cuál es el número de artículo aquí?*/
Printf("Ingrese el registro I que se va a modificar\n "); p>
scanf("d ", ampnum);
p = cabeza;
for(I = 1; i ltnumi )
{
p = p- gt; next;
}
Printf("ID del estudiante: dNombre: sPhone: s\ n ", p- gt; num, p-> nombre, p- gt; número de teléfono);
Printf("Modifique el número de estudiante: ");
Printf ("Por favor modifique el nombre del estudiante: ");
scanf ("s", p- gt; nombre); "Modifique el número de teléfono del estudiante: ");
scanf("s ", p- gt; teléfono
}
int main());
{
cabeza = tmp 1 = 0;
mientras(1)
{
printf( " \ n \ n ");
Printf ("\ t \ t * *Bienvenido al sistema de gestión de estudiantes* * \ n "); t * * Por favor ingrese la información correspondiente según se requiera * * \ n ");
Printf ("\ t \ t * * 0. Cargar información del estudiante * * \ n ");
Printf ("\ t \ t * * 1. Ver el estado del estudiante * * \ n ");
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();
Rotura;
Caso 1:
Salida();
Salida;
Caso 2:
Entrada();
Caso 3:
eliminar();
Romper
Caso 4:
buscar(); ;
Pausa;
Caso 5:
save();
Pausa;
Caso 6: Cambiar();
Romper
Caso 7:
Salir(0); >Valor predeterminado:
Printf("Esta función no está disponible temporalmente");