Red de conocimiento de abogados - Derecho de sociedades - 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

#include

#include

# incluir

#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; /* El número de estudiante de cada estudiante*/

char name[10] /* El estudiante de cada estudiante; número Nombre*/

int score[COURSE_NUM] /* El puntaje de cada estudiante en M materias*/

int suma /* El puntaje total de cada estudiante*/

float Average; /* La puntuación promedio de cada estudiante*/

};

typedef struct Student STU;

/* Función 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 la información del estudiante

Variable entera n, representa el número de estudiantes

Variable entera m, representa las materias del examen

Valor de retorno de la función: Ninguno

*/

void AppendScore(STU *head, int n, int m)

{

int j;

STU *p ;

for (p=cabeza; p

{

printf("\nNúmero de entrada:");

scanf( "%d", &p->número);

printf("Nombre de entrada:");

scanf("%s", &p-> nombre);

for (j=0; j

{

printf("Puntuación de entrada%d:", j+1 );

scanf("%d", p->puntuación+j);

}

}

}

/ * Función de función: imprime el número de estudiante, el nombre, la calificación 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 al estudiante información

Variable entera n, representa el número de estudiantes

Variable entera m, representa el sujeto de prueba

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 ");

para (i=1; i< =m; i++)

{

strcat

(str, "Puntuación");

itoa(i,temp, 10);

strcat(str, temp);

strcat(str, " ");

}

strcat(str," suma promedio");

printf("%s", str); /* Imprimir encabezado * /

for (p=head; p

{

printf( "\ nNo.%3d%8s", p->número, p->nombre);

for (i=0; i

{

p>

printf("%7d", p->puntuación[i]);

}

printf("%11d%9.2f\n", p- >suma, p->promedio);

}

}

/* Función: Calcular el puntaje total y el promedio de m materias para cada estudiante. Puntaje

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 de los estudiantes

Variable entera n, que indica el número de estudiantes

Entero escriba la variable m, que representa el sujeto de prueba

Valor de retorno de la función: Ninguno

*/

void TotalScore(STU *head, int n, int m)< / p>

{

STU *p;

int i;

for (p=cabeza; p

{

p->suma = 0;

for (i=0; i

{

p->suma = p->suma + p->puntuación[i];

}

p->promedio = (flotante)p->suma / m;

}

}

/* Función: utilice el método de selección para ordenar por puntuación total de mayor a menor.

Función parámetros: Cabeza del puntero de estructura, que 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

*/

void SortScore(STU *head, int n)

{

int i, j, k;

Temp STU;

for (i=0; i

{

k = i;

for (j=i; j

{

if ((head+j)->sum > (head+k)->sum)

{

k = j;

}

}

si (k != i)

{

temp = *(cabeza+k);

*(cabeza+k) = *(cabeza+i);

*(cabeza +i) = temporal;

}

}

}

/* Función: buscar el número de identificación del estudiante

Parámetros de la función: cabeza del puntero de estructura, que apunta a la matriz de estructura que almacena la información del estudiante Primera dirección

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 se encuentra el número de estudiante , luego devuelve su posición en la matriz de estructura; de lo contrario, devuelve -1

*/

int SearchNum(STU *head, int num, int n)

{

int i;

for (i=0; i

{

if (( cabeza+ i)->número == num) devolver i;

}

devolver -1;

}

/* Función: Busque puntuaciones de estudiantes por número de estudiante y muestre los resultados de la búsqueda

Parámetros de función: encabezado 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 el sujeto de la prueba

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", &number);

findNo = SearchNum(head, number, n);

if (findNo == - 1)

{

printf("\n¡No encontrado!\n");

}

else

{

PrintScore(head+findNo, 1, m);

}

}

/* Función: Mostrar menú y obtener las opciones ingresadas por el usuario

Parámetros de función: Ninguno

Valor de retorno de la función: Opciones ingresadas por el usuario

*/

char Menu(void)

{

char ch;

printf("\nGestión de puntuaciones de los estudiantes\n");

printf(" 1.Agregar registro\n");

printf(" 2.Enumerar registro\n");

printf(" 3.Buscar registro\n" ) ;

printf(" 4.Ordenar registro\n");

printf(" 0.Salir\n");

printf("Por favor Ingrese su elección:");

scanf(" %c", &ch); /*Agregue un espacio antes de %c y lea el carácter de retorno de carro almacenado en el búfer*/

return ch;

}

int main()

{

char ch;

int m , n;

STU estu[STU_N

UM];

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" , &n, &m);

while (1)

{

ch = Menú() /* Muestra el menú y lee la entrada del usuario*/

switch (ch)

{

case'1':AppendScore(stu, n, m);/* Llame al módulo de suma de partituras*/

TotalScore(stu, n, m);

break;

case'2':PrintScore(stu, n, m /* Llamar a la visualización de la puntuación); module */

break;

case'3':SearchScore(stu, n, m);/* Llame 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); /* Muestra los resultados de clasificación de puntuaciones*/

break

case'0':exit(0); /* Salir del programa */

printf("¡Fin del programa!");

break;

default:printf("¡Error de entrada!") ;

descanso;

}

}

}