Red de conocimiento del abogados - Bufete de abogados - Preguntas sobre el idioma C Programa de consulta de puntuación de exámenes para estudiantes

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* /

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

}

}

}

/* 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

}

}

/* 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; > }

}

}