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