Ingrese el código fuente del sistema
# 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(sizeof(struct Student)) .
tmp-& gt; next = 0;
//i=fscanf(fp1, "ID de 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);
Retorno;
}
}
}
Salida no válida( )
{
tmp 1 = encabezado;
mientras (tmp1!=0)
{
Printf("ID de estudiante: %d Nombre: %s Teléfono: %s\n ", tmp 1-> num, tmp 1->; Nombre, tmp 1->; Teléfono
tmp); 1 = tmp 1-& gt; siguiente;
}
}
Entrada no válida ( )
{ estructura estudiante *q, * p;
Printf("Agregue la información del estudiante según sea necesario:\ n "
p=malloc(sizeof(estructura estudiante)
); Printf("Ingrese el ID del 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:
<); p>scanf("%s ", p-& gt; número de teléfono);p->; siguiente = 0
if (head==0){ p>
cabeza = p;
q = p;
} En caso contrario {
q = cabeza
mientras( q->; siguiente!=0)
{
q = q-& gt; siguiente;
}
q- >; siguiente = p;
q = p
}
}
eliminar vacío()
{ struct Student *q, * p;
int numint I; /*¿Qué artículo es num aquí?*/
Printf("Por favor, ingrese el registro I \ n ");
scanf("%d ", & ampnum);
if(num==1)
{ cabeza = cabeza-> *Eliminar nodo principal*/
p = head;
for(I = 1;I& ltnum-1; I++) /*Mover p al nodo que se va a eliminar*/
{ p = p-& gt; siguiente;}
if(num & gt; 1)
p->siguiente = (p->siguiente )->next; /*Por ejemplo, vincular 2 4 nodos y eliminar 3 nodos*/
Printf("Eliminación exitosa, verifique\n ");
}
Búsqueda no válida()
{ char c[20];
char tmp 2 _ num[20];
Printf( "Por favor ingrese el
Información:\ n ");
scanf("%s ", c);
Printf("Lo que quieres consultar es:\ n ");
tmp2 = header; /*Traverse*/
And (tmp2!=0)
{
Printf("ID del estudiante: %d Nombre : %sPhone:%s\n ",tmp 2-> num, tmp 2-> nombre, tmp 2-> teléfono);
if(strncacecmp(tmp 2-> gt; nombre, c, strlen(c))==0)
Printf("El nombre coincidió correctamente\n ");
/*Coincidencia*/
if(strncacecmp(tmp 2->tel,c,strlen(c))==0)
Printf("Coincidencia telefónica exitosa\n ");
sprintf(tmp2_num , "%d", tmp 2->num);
if(strncacescmp(tmp 2_num, c, strlen(c))==0)
Printf("Estudiante número coincidente exitosamente\ n ");
tmp 2 = tmp 2-& gt; Siguiente;
}
}
No válido save()
{
ARCHIVO * FP 1;
estructura estudiante *q, * p 1;
fp1=fopen( "archivo.txt","w");
p 1 = 0;
p 1 = encabezado
if (cabeza==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-> ; num, p 1-> nombre, p 1-> teléfono);
fwrite(p1, sizeof(struct estudiante), 1, FP 1); ID: %d Nombre: %s Teléfono: %s\n ", p 1-> num, p 1-> Nombre, p 1->; Teléfono);
p 1 = p 1- >; siguiente;
}
fclose(FP 1
}
Cambio no válido()
{ struct Student * p;
int numint I; /*¿Qué artículo es num aquí?*/
Printf(" Ingrese el registro que desea modificar I \n ");
scanf("%d ", & ampnum);
p = encabezado
for (I = 1;i<numi++)
{
p = p->Siguiente;
}
Printf ("ID de estudiante: %dNombre:%sTeléfono:%s\n", p-> num, p->Nombre, p->Teléfono);
Printf("Modifique el número de estudiante: ");
scanf("%d ", &p->num);
Printf("Modifique el nombre del estudiante:");
scanf("%s ", p-& gt; nombre
);Printf("Modifique el número de teléfono del estudiante:");
scanf("%s ", p-& gt; teléfono
}
;int ma
en()
{
cabeza = tmp 1 = 0;
mientras(1)
{
printf(" \ n \ n ");
Printf ("\ t \ t * *Bienvenido al sistema de gestión de estudiantes* * \ n "); \t\t* *Por favor ingrese la información correspondiente según se requiera* *\n ");
Printf ("\t\t* * 0. Cargar información del estudiante* *\n "); p >
Printf ("\ t \ t * * 1. Ver información 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) p >
{
Caso 0:
carga();
Rotura;
Caso 1:
Salida();
Pausa;
Caso 2:
InPut();
Pausa;
Caso 3:
eliminar();
Romper;
Caso 4:
buscar();
Pausa;
Caso 5:
guardar();
Pausa;
Caso 6: Cambio();
Pausa;
Caso 7:
Salir(0);
Pausa;
Valor predeterminado:
Printf("Esta función no está disponible temporalmente");
}
}
}