Programación de Zhang Cheng
/*
Funciones del programa:
Puede completar el ingreso de las calificaciones diarias de cada estudiante y los puntajes de los exámenes finales para un determinado curso,
Complete el cálculo de la puntuación de la evaluación integral de cada estudiante (puntuación habitual * 30, puntuación del examen final * 70) y genere un archivo de datos.
Generar archivos estadísticos de segmentos fraccionarios (número de reprobados, 60-69, 70-79, 80-89, 90-100, tasa de aprobación)
tasa),
Consultar las puntuaciones de los estudiantes a través de archivos de datos de puntuaciones de los estudiantes (condiciones de consulta personalizadas).
Obtenga las puntuaciones segmentadas y la tasa de aprobación de los estudiantes a través del archivo de estadísticas segmentadas de las puntuaciones de los estudiantes.
Requisitos del programa:
(1) Puede completar el procesamiento de puntajes para cualquier número de personas dentro de 300.
(2)El programa debe tener un menú principal.
*/
# incluir ltstdio.h gt
# incluir ltstdlib.h gt
# incluir ltstring.h gt p> p>
Perno estructural
{
Núm de longitud
nombre de char[20];
Integral doble;
};
estucode de estructura typedef
{
Estudiante de investigación estructural;
struct stucode * siguiente p>
} L;
menú nulo();
lista de creación nula (código stu de estructura * * r);
nulo fuera (estructura código stu * r);
búsqueda nula 1(código stu estructura * r);
búsqueda nula 2(código stu estructura * r);
nulo del(código struct stu * * r);
void insert(código struct stu * * r);
void sort(código struct stu * * r);
void main()
{
selección de caracteres;
int flag = 1;
struct stucode * r = NULL
mientras(bandera)
{
sistema("cls");
menú();
elegir = getchar();
Cambiar (seleccionar)
{
Caso "1":
Crear lista (ampr) ;
out(r);
printf("Función de prueba 1\nPresione cualquier tecla para continuar\n");
getchar(); p> p>
getchar();
Pausa;
Caso "2":
búsqueda 1(r);
printf("Función de prueba 1\nPresione cualquier tecla para continuar\n");
getchar();
getchar();
Pausa;
p>
Caso "3":
Buscar 2(r);
printf("Función de prueba 1\nPresione cualquier tecla para continuar\ n");
getchar();
getchar();
Pausa;
Caso "4":
del(ampr );
out(r);
printf("Función de prueba 1\nPresione cualquier tecla para continuar\n ");
getchar();
getchar();
Romper;
Caso "5":
Insertar (ampr);
out(r);
printf("Función de prueba 1\nPresione cualquier tecla para continuar\n");
getchar();
getchar() ;
Interrupción;
Caso "6":
Ordenar(ampr);
salir
(r);
printf("Probar función 1\nPresione cualquier tecla para continuar\n");
getchar();
getchar();
Pausa;
Caso "7":
out(r);
printf("Función de prueba 7\nPresione cualquier tecla continúa \n ");
getchar();
getchar();
Pausa;
Caso "0":
bandera = 0;
printf("El final.\n ");
Descanso
Predeterminado: printf( "\ nSelección incorrecta (¡Selección incorrecta, seleccione nuevamente!)\n"); getchar(); getchar();
}
}
}
lista de creación vacía (código de estructura estu * * r)
{
código de estructura *p, *t;
Long n;
char a[20];
Doble s;
if(* r)* r = NULL;
Printf(" \nIngrese: \nID del estudiante (ordene en orden ascendente), nombre y puntaje (ingrese tres ceros al final).
\ n ");
scanf( "ldslf ", amp no aplicable. s);
if(n==0) devuelve;
p =(L *)malloc(sizeof(L));
p>
p->; estudiante .num = n;
strcpy(p- gt; estudiante.nombre, a
p->; puntuación = s;
p->; siguiente = NULL
* r = p;
scanf("ldslf ", amplificador no aplicable. s)
p>
Cuando (sustantivo)
{
t = p;
p =(L *)malloc (tamaño de (L));
p->; estudiante num = n;
strcpy(p- gt; estudiante.nombre, a
p->; estudiante .siguiente =
scanf(" ldslf ", amplificador no aplicable.
s);
}
}
búsqueda nula 1 (código de estructura stu * r)
{
Long
Return;
}
Printf("Ingrese el número de estudiante de la información del estudiante que desea consultar: \ n "); >scanf("ld ", ampx);
Y (r amp ampr- gt; estudiante. num!=x)
r = r- gt;
if(r==NULL)
printf("¡Error! ¡No existe tal estudiante! \ n ");
Otro
printf ("ld s. 2lf\n ", r- gt; estudiante.num, r-> nombre del estudiante, r- gt; estudiante . puntuación
}
void search2); (struct stucode *r )
{
char m[20];
if(!r)
{
Printf ("¡No hay información del estudiante para consultar! \ n ");
Regresar
}
Printf("Por favor, ingrese; la información del estudiante a consultar Nombre: \ n ");
scanf("s ", m);
And (r amp ampstrcmp(r- gt; nombre del estudiante, m ))
r = r- gt; next;
if(r==NULL)
printf("¡Error! ¡No existe tal estudiante!\ n ");
p>Otros
printf("ld s .2lf\n ", r- gt; estudiante.num, r->nombre del estudiante, r- gt; estudiante . puntuación);
}
void del(struct stucode **r)
{
Longitud k;
struct stucode *p =*r, *t;
If (!(*r))
{
Printf("Ningún estudiante ¡información que se eliminará!\n" );
Return;
}
Printf("Ingrese el número de estudiante de la información del estudiante que se eliminará: \ n ");
scanf("ld", ampk);
If (p->; número de estudiantes == k)
* r = (* r)- gt; Siguiente, Gratis(p);
Otro
{
mientras(p->siguiente amp ampp->siguiente - gt; estudiante =k)
p = p- gt; siguiente;
if (p->; siguiente==NULL)
printf("¡Error! Ninguno tal estudiantes! \n ");
Otro
{
t = p- gt; Siguiente;
p- >; siguiente = p- gt; siguiente- gt; siguiente;
gratis(t);
}
}
}
Inserción nula (estructura stucode **r)
{
龙n;<
/p>
char a[20];
Doble s;
L *p, *t, *k;
Printf("Por favor Ingrese el nombre del número de estudiante y la puntuación de la información del estudiante que se insertará: \ n ");
scanf("ldslf ", amp no es aplicable.
s);
p = (L *)malloc(tamañode(L));
p->; >;estudiante.score = s;
strcpy(p- gt; estudiante.nombre, a);
if (!(*r))
{
* r = p;
(* r)- gt; siguiente = NULL
Retorno;
}
If (p->; número de estudiante lt (* r)- gt; número de estudiantes)
p->; next=(*r), (* r)= p;
p->; p>
Otro
{
t = * r;
k = t;
mientras(t->; siguiente amp ampt->; siguiente- gt; número de estudiante lt= p->; número de estudiantes)
t = t- gt;
p->; siguiente = t-gt; siguiente;
t->; siguiente = p; }
}
ordenación nula (struct stucode **r)
{
struct stucode *t, *p, *q , *z;
If(!r)
{
Printf("¡No hay información del estudiante para ordenar!\n ");
Retorno;
}
if (!(*r)||!(*r)- gt; siguiente)
retorno;
t = * r;
p = t- gt;
t->; siguiente = NULL
mientras(p)
{
q = p->; siguiente;
if (p->; estudiante.puntuación gtt->; estudiante.puntuación)
{
p->; siguiente = t;
t = p
}
Otro
{
z = t;
while(z->; siguiente amp ampz- gt; siguiente- gt; estudiante.score gt= p->; estudiante.score ) p>
z = z- gt; siguiente
p->; siguiente = z- gt; siguiente
z- gt;
}
p = q
}
* r = t
}
anular(struct stucode *r)
{
printf(" \ n \ n ");
if (! r)
{
Printf("¡No se generará información del estudiante!\n ");
Regresar;
}
while(r)
{
printf("ld s .2lf\n ", r- gt; estudiante.num, r-> nombre del estudiante, r- gt; estudiante . /p>
}
p>
Menú no válido()
{
Printf("\nSistema de gestión de información estudiantil\ n ");
printf(" \ n Menú \ n \ n ");
Printf("\n 1Crear una lista vinculada y mostrarla\n ");
Printf("\n 2Encontrar un número de estudiante Información del estudiante\ n ");
Printf("\n 3Buscar información de estudiante de un nombre determinado\ n ");
Printf("\n 4Eliminar un número de estudiante Información de estudiante\n ") ;
Printf("\n 5Insertar información del nuevo estudiante\n ");
Printf("\n 6Salida en orden descendente de puntuaciones\n " );
printf(" \ n 7 salida \ n ");
printf(" \ n exit \ n ");
printf(" \ nSeleccione la opción que desea ejecutar:\n ");
}