El sistema de gestión de información estudiantil simula el lenguaje C
#incluye & ltstdio.h & gt
#incluye & ltstdlib.h & gt
#incluye & ltstring.h & gt
estructura typedef estudiante
{
char strname[12];
char strno[10];
punto flotante fs core [3];
float ftotal,fave
}student;
nodo de estructura typedef
{
Datos del estudiante;
Nodo de estructura * siguiente
} nodo
Entrada del estudiante (no válido);
salida nula (estudiante uno) ;
void add(nodo * *cabeza, un estudiante);
void show(nodo *cabeza);
int del(NODO **head, char * no);
void remove all(NODE * * head);
int menu (int num)
{
int nselect = 0;
Hacer
{
printf("-\ n ");
Printf( "Implementación de lista vinculada Sistema de gestión del desempeño estudiantil (registrado)%3d ", num
printf("-\ n ");
printf(" 1-Agregar datos\ n); ");
Printf("Visualización de lista doble\ n ");
printf(" 3-Eliminar datos\ n ");
printf(" 6-Salir \ n ");
printf("-\ n ");
Printf("Seleccione el número de comando: ");
scanf("% d ", & ampnselect);
if((n select & gt;= 1); & amp(nselect & lt=6) )
Devolver nselect
} while(1);
Devuelve 0;
}
int main(void)
{
int num=0, item, res
Estudiante trabajador temporal;
Carácter strno[10];
NODO * cabeza = NULL
mientras( (elemento=menú(núm))! =6 )
{
Cambiar (elemento)
{
Caso 1:
temp = entrada ();
Agregar (&cabeza, temperatura);
num++;
Printf("Se ha agregado la información del estudiante, presione cualquier tecla para regresar.. .");
Pausa;
Caso 2:
Mostrar (cabeza);
Printf("Haga clic en cualquier edificio para return..");
Pausa;
Caso 3:
if(num & gt; 0)
{
Printf("Ingrese el número de estudiante que desea eliminar:");
scanf("%s ", strno
RES = del(& amp); ; persona a cargo, strno);
IF (resolución)
Printf("El registro del número de estudiante [%s] ha sido eliminado, presione cualquier tecla para regresar...", strno);
Otros
Printf("No hay ningún registro de número de estudiante [%s], presione cualquier tecla para regresar...", strno);<
/p>
}
Otros
Printf("¡La lista enlazada es espacio-tiempo y no se puede eliminar! Presione cualquier tecla para regresar..."); p>
Interrupción;
Valor predeterminado:
Printf("Error de comando, presione cualquier tecla para regresar...");
Interrupción;
}
getchar();
}
si(head)eliminar todo(& head);
Devuelve 0 ;
}
void add(nodo * *cabeza, estudiante uno)
{
Nodo * p, *b;
p = *head;
b=(nodo*)malloc(tamañode(nodo));
b-& gt; datos=uno;
p>
if(NULL==p)
{
* cabeza = b-& gt; NULL
} p>
Otro
{
mientras((p-& gt; siguiente)!= NULL)p = p- & gt; siguiente;
p->siguiente = b
b-siguiente = NULL
}
}
Visualización vacía (nodo*cabeza)
{
NODO * pcur =cabeza;
int num = 0;
while( pcur!=null)
{
printf("%3d ",++ num);
salida(pcur->data);
pcur = pcur-& gt; siguiente;
}
}
int del(NODO **cabeza, char *no )
{
Nodo *p, * a;
a = p = *cabeza
if(NULL==p; ) devuelve 0;
if(0 == strcmp((p-& gt; data). strno, no))
{
* cabeza = p-& gt; Siguiente;
Gratis(p);
Devolver 1
}
Otro
{
mientras((((p->Siguiente)!= NULL)&&(strcmp((p->data). strno, no))))
{
a = p;
p = p-& gt;
if(0 = = strcmp((p->datos).
strno, no))
{
a->siguiente = p->siguiente;
Gratis(p);
Devuelve 1;
}
}
Devuelve 0;
}
void removeall (Nodo * *cabeza)
{
Nodo * p = *cabeza;
mientras(*cabeza)
{ p>
* cabeza = p-& gt;
Gratis(p);
p = *cabeza
} p>
}
Entrada del estudiante (no válida)
{
Estudiante uno;
Printf("Ingrese la información del estudiante: \ n ") ;
printf(" nombre \ n ");
scanf("%s ", uno . strname
Printf(" Número de estudiante\ n); ");
scanf("%s ", one. strno);
Printf("Tres resultados del curso:\ n ");
scanf( "%f%f%f ", & amp(one.fscore[0]), & amp(one.fscore[1]), & amp(one . fs core[2]);
p>uno. f total = uno. fs core[0]+one. fs core[2]+one fs core[2];
uno.
Devuelve uno;
}
Salida no válida (estudiante uno)
{
printf (" % 12s % 12s % 12s ", uno.strname, uno . strno);
printf("%f%f%f ", one.fscore[0], one.fscore[1] , one. fs core[2]);
printf("%f%f\n ", one.ftotal, one. fave);
}