Preguntas sobre el idioma C Programa de consulta de puntuación de exámenes para estudiantes
#include lt;stdio.hgt;
#include lt;string.hgt;
#include lt;ctype.hgt;
#include lt;stdlib.hgt;
#define STU_NUM 40 /* El mayor número de estudiantes*/
#define COURSE_NUM 10 /* El mayor número de materias de examen* / p>
struct Student
{
int number; /* Número de estudiante de cada estudiante*/
char name[10]; * Nombre de cada estudiante*/
int puntuación[COURSE_NUM] /* Puntuación de cada estudiante en M materias*/
int suma /* Puntuación total de cada estudiante */<; /p>
float Average; /* La puntuación promedio de cada estudiante*/
};
typedef struct Student STU;
/* Función : agregue el número de estudiante, el nombre, las calificaciones y otra información ingresada desde el teclado al final de la lista vinculada
Parámetros de función: cabeza del puntero de estructura, que apunta a la primera dirección de la matriz de estructura que almacena al estudiante información
Variable entera n, representa el número de estudiantes
Variable entera m, representa la materia del examen
Valor de retorno de la función: Ninguno
*/
void AppendScore(STU *head, int n, int m)
{
int j
STU *; p;
for (p=head; plt; head n; p)
{
printf("\nNúmero de entrada: ");
scanf("d", amp;p-gt;número);
printf("Nombre de entrada: "); p-gt ; nombre);
for (j=0; jlt; m; j )
{
printf("Entrada puntuada: ", j 1);
scanf("d", p-gt; puntuación j
}
}
}); p>
/* Función: imprime el número de estudiante, el nombre, las calificaciones y otra información de n estudiantes
Parámetros de función: cabezal del puntero de estructura, que apunta a la primera dirección de la matriz de estructura que almacena la información del estudiante
Variable entera n, representa el número de estudiantes
Variable entera m, representa la materia del examen
Valor de retorno de la función: Ninguno
*/
void PrintScore(STU *head, int n, int m)
{
STU *p
int i; ;
char str[100] = {'\0'}, temp[3];
strcat(
str, "Nombre del número ");
for (i=1; ilt; =m; i )
{
strcat(str, "Puntuación"
itoa(i, temp, 10);
strcat(cadena, temp
strcat(cadena, " "); >
}
strcat(str, "suma promedio");
printf("s", str /* Imprimir encabezado*/
< p); > for (p=head; plt; head n; p) /* Imprimir información sobre n estudiantes*/{
printf("\nNo.3d8s", p -gt ;número, p-gt;nombre);
for (i=0; ilt; m; i)
{
printf("7d ", p-gt; puntuación[i]);
}
printf("11d9.2f\n", p-gt; suma, p-gt; promedio ); p>
}
}
/* Función Función: Calcula la puntuación total y la puntuación media de las m materias de cada estudiante
Parámetros de función: Puntero de estructura head, apunta a la primera dirección de la matriz de estructura que almacena la información de los estudiantes
Variable entera n, que indica el número de estudiantes
Variable entera m, que indica la materia del examen
p>Valor de retorno de la función: Ninguno
*/
void TotalScore(STU *head, int n, int m)
{
STU *p;
int i;
for (p=cabeza; plt; cabeza n; p )
{
p-gt; suma = 0;
para (i=0; ilt; m; i )
{
p-gt; = p-gt; suma p-gt; puntuación[i];
p-gt; promedio = (flotante)p-gt; >
}
}
/* Función: Utilice el método de selección para ordenar la puntuación total de mayor a menor
Parámetros de función: Estructura del puntero , apunta a la primera dirección de la matriz de estructura que almacena la información de los estudiantes
Variable entera n, que indica el número de estudiantes
Valor de retorno de la función: Ninguno
* /
p>void SortScore(STU *head, int n)
{
int i, j, k;
STU temp;
para (i=0; ilt; n-1; i )
{
k = i
para (j=i; jlt; n; j )
{
if ((cabeza j)-gt; suma gt; (cabeza k)-gt; suma)
{
k = j
}
}
if (k != i)
{
temp = *(head k);
*(cabeza k) = *(cabeza i);
*(cabeza i) = temp
}
}<; /p>
}
/* Función: encontrar el número de estudiante del estudiante
Parámetros de función: cabeza del puntero de estructura, que apunta a la primera dirección de la matriz de estructura que almacena la información del estudiante
Variable entera num, representa el número de estudiante a buscar
Variable entera n, representa el número de estudiantes
Valor de retorno de la función: Si el número de estudiante es encontrado, luego devuelve su posición en la matriz de estructura; de lo contrario, -1
*/
int SearchNum(STU *head, int num, int n)
{
int i;
for (i=0; ilt; n; i)
{
si ((cabeza i )-gt; número == num) devolver i;
}
devolver
}
/* Función : Busque puntuaciones de estudiantes por número de estudiante y muestre los resultados de la búsqueda
Parámetros de función: cabezal del puntero de estructura, que apunta a la primera dirección de la matriz de estructura que almacena la información del estudiante
Variable entera n, que representa el número de estudiantes
Variable entera m, que representa las materias de examen
Valor de retorno de la función: Ninguno
*/
void SearchScore(STU * head, int n, int m)
{
int número, findNo;
printf("Ingrese el número que desea buscar: ") ;
scanf("d", amp; número);
findNo = SearchNum(head, número, n
if (findNo == -); 1 )
{
printf("\n¡No encontrado!\n");
}
else
{
PrintScore(head findNo, 1, m);
}
}
/* Función: Mostrar menú y Obtenga las opciones ingresadas por el teclado del usuario
Parámetros de función: Ninguno
Valor de retorno de la función: Las opciones ingresadas por el usuario
*/
char Menú (void)
{
char ch;
printf("\nGestión de puntuaciones de los estudiantes\n");
printf (" 1.Agregar registro\n");
printf(" 2.Listar registro\n"); ");
printf(" 4.Ordenar registro\n");
printf(" 0.Exi
t\n");
printf("Ingrese su elección: ");
scanf(" c", amp; ch); /*Agregue un espacio antes de c, lea el carácter de retorno de carro almacenado en el búfer en */
return ch
}
int main()
{
char ch;
int m, n;
STU stu[STU_NUM];
printf("Ingrese el número de estudiante y el número de curso (número de estudiante; 40, número de curso; 10): ");
scanf("d, d", amp; n, amp; m);
while (1)
{
ch = Menu() /* Mostrar el menú y leer la entrada del usuario*/
cambiar (ch)
{
case'1': AppendScore(stu, n, m);/* Llama al módulo de suma de puntuaciones*/
TotalScore(stu, n, m); >
break;
case'2': PrintScore(stu, n, m); /* Llamar al módulo de visualización de partituras*/
break; p> case'3': SearchScore(stu, n, m);/* Llamar al módulo de búsqueda por número de estudiante*/
break;
case'4': SortScore ( stu, n); /* Llama al módulo de clasificación de puntuaciones */
printf("\nResultado ordenado\n");
PrintScore(stu, n, m); Mostrar los resultados de la clasificación de calificaciones*/
break
case'0': exit(0); "¡Fin del programa!");
break;
default: printf("Error de entrada!";
break; > }
}
}