Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Listado calificaciones

Estas en el tema de Listado calificaciones en el foro de C/C++ en Foros del Web. Buenas a todos, estoy haciendo un trabajo y estoy un poco atascado, necesito saber como sacar el listado de calificaciones junto con los suspensos y ...
  #1 (permalink)  
Antiguo 15/03/2015, 16:26
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 16 años, 8 meses
Puntos: 0
Listado calificaciones

Buenas a todos, estoy haciendo un trabajo y estoy un poco atascado, necesito saber como sacar el listado de calificaciones junto con los suspensos y aprobados, seria la opcion 3 de menu seleccion, os dejo el codigo que llevo realizado y no se como empezar estoy abogiado. Muchas gracias

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define  ALUMNOS 10
  4. #define  PRUEBAS  4
  5.  
  6. int main()
  7. {
  8.  
  9. float Notas[4][10], media[10],suma;
  10. int a,b,i,j;
  11. int opc;
  12. int prueba = 1,alumno = 1;
  13. float A[ALUMNOS][PRUEBAS];
  14. float promedio_total=0, promedio[ALUMNOS]={0};
  15.  
  16. // --------------------------------------------------------------------------------------//
  17.    
  18.     printf("\n Introduce una opcion del menu\n");
  19.     printf("\n 1.- Calcular Nota final del alumno\n");
  20.     printf("\n 2.- Calculo nota media por prueba\n");
  21.     printf("\n 3.- Listado de Pruebas y Notas\n");
  22.     printf("\n 4.- Salir del programa\n");
  23.  
  24. //do {
  25.   scanf("%d",&opc);
  26.   switch(opc){
  27.  
  28. // --------------------------------------------------------------------------------------
  29.     case 1:{
  30.   for (a=0;a<10;a++)
  31.     {suma=0;
  32.     printf("\n Datos del Alumno %d\n",a+1);
  33.     for(b=0;b<4;b++)
  34. {
  35. printf("\n Introduce la calificacion de la prueba %d:", b+1);
  36. scanf("%f", &Notas[a][b]);
  37. suma=suma+Notas[a][b];
  38. }
  39. media[a]=suma/b;
  40.  
  41.   printf("\n\n La nota media del alumno %d es: %.2f\n", a+1, media[a]);
  42.  
  43. }
  44. break;
  45. // --------------------------------------------------------------------------------------
  46.     case 2:{
  47. }
  48. {
  49.        puts("Calculo nota media por pruebas:\n");
  50.        for(i=0; i<PRUEBAS; i++){
  51.            printf("\nNumero de Prueba %d: \n", prueba++);
  52.            for(j=0;j<ALUMNOS; j++){
  53.                printf("Calificacion del Alumno %d:", alumno++);
  54.                scanf("%f", &A[i][j]);
  55.                promedio[i]+=A[i][j];
  56.            }
  57.            promedio[i]/= ALUMNOS;
  58.            printf("\nPromedio prueba %d es %.2f: \n", i+1,promedio[i]);
  59.            alumno = 1;
  60.        }
  61.      }
  62. break;
  63. //--------------------------------------------------------------------------------------
  64. case 3:{
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78. //--------------------------------------------------------------------------------------
  79. system("pause");
  80.  
  81. return 0; /* indica que el programa terminó con éxito */
  82. }
  83. }
  #2 (permalink)  
Antiguo 16/03/2015, 04:20
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Listado calificaciones

la verdad es que no tengo nada claro lo que deseas hacer. Si es calcular la nota media de cada alumno y decir si ha aprobado o ha suspendido es tan facil como colocar los for de forma que calcule la nota media para un alumno y muestres si ha aprobado o no y luego pases al siguiente y asi hasta el final. Basicamente seria igual que el case 2 pero cambiando el orden de los for.
  #3 (permalink)  
Antiguo 16/03/2015, 05:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Listado calificaciones

Ok. Te importa ponerme un ejemplo.
Estoy empezando en C y hay cosas que se me escapan.
Un saludo
  #4 (permalink)  
Antiguo 16/03/2015, 09:17
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Listado calificaciones

es muy sencillo, coger lo que está en el case 2 y copiarlo en el 3, quitar el scanf, en el printf en el que muestras la media estas mostrando la suma de toda una columna (alumnos) entre el numero de alumno y en este caso necesitas sumar toda la fila (examenes del alumno) entre el numero de examenes. Yo es que no puedo hacerlo porque no tengo pc y ademas este movil en esta pagina no me deja poner saltos de linea con lo que tengo que escribir todo de corrido.
  #5 (permalink)  
Antiguo 16/03/2015, 10:52
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Listado calificaciones

Muchas gracias, al final he reeditado el codigo, consigo meter las calificaciones pero algo debo hacer mal que el total de suspendido y aprobados no me lo calcula bien, y tambien me da un error en la condicion do..while por eso la tengo anulada como si fuera un comentario.
te dejo el codigo a ver si puedes darme algo de luz.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define  ALUMNOS 10
  4. #define  PRUEBAS  4
  5.  
  6. int main()
  7. {
  8.  
  9.  
  10. int a,b,i,j;
  11. int nota=0;
  12. int prueba = 1,alumno = 1;
  13. int aprobados=0;
  14. int suspensos=0;
  15. float A[ALUMNOS][PRUEBAS];
  16.  
  17.        printf("Calculo aprobados y suspensos:\n");
  18.  
  19.        //do {
  20.        for(i=0; i<PRUEBAS; i++){
  21.            printf("\nNumero de Prueba %d: \n", prueba++);
  22.            for(j=0;j<ALUMNOS; j++){
  23.                printf("Calificacion del Alumno %d:", alumno++);
  24.                scanf("%f", &A[i][j]);
  25.                //if(nota!=-1)
  26.              
  27.             if(nota>=5)
  28.                aprobados++;
  29.              else suspensos++;
  30.             alumno = 1;
  31. }
  32.             } //while (nota!=-1);
  33.  
  34.     printf("\nNOTAS DE LOS ALUMNOS");
  35.     printf("\nAlumnos aprobados ...............: %d",aprobados);
  36.     printf("\nAlumnos suspendidos .............: %d\n",suspensos);
  37.  
  38.      return 0;
  39.  }
  #6 (permalink)  
Antiguo 16/03/2015, 16:37
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Listado calificaciones

mira, tienes varios fallos, prueba y alumno son lo mismo que i+1 y j+1 con lo que sobran. Para la media se me ocurre que te crees otro array pero este solo de alumnos con el mismo numero de alumnos, cada vez que metas un valor de un examen pues lo sumas en la posicion de ese alumno y al terminar tendras la suma de cada alumno y luego divides cada una por el numero de pruebas y sabras cual aprueba y cual no. En tu codigo Notas no es modificado nunca con lo que el do while nunca se terminara y el resultadode aprobadosy suspensos será erroneo. Otro modo de conseguir lo mismo sin necesidad de otro array seria cambiar el orden de los for para que tengas que llenar todas las pruebas de un alumno, luego de otro y asi, y asi podrias calcular la media al salir del primer for. Si no te aclaras mañana intento ponerte algo.
  #7 (permalink)  
Antiguo 17/03/2015, 03:56
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Listado calificaciones

Prueba esto:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define  MAX_ALUMNOS 10
  4. #define  MAX_PRUEBAS  4
  5.  
  6. int main()
  7. {
  8.    float nota[MAX_ALUMNOS];
  9.    int prueba,alumno;
  10.    int aprobados=0;
  11.    int suspensos=0;
  12.    float A[MAX_ALUMNOS][MAX_PRUEBAS];
  13.  
  14.    for(alumno=0;alumno<MAX_ALUMNOS; alumno++)
  15.    {
  16.       printf("*********************************\n");
  17.       printf("* CALCULO APROBADOS Y SUSPENSOS *\n");
  18.       printf("*********************************\n\n");
  19.  
  20.       printf("Calificacion del Alumno %d:\n", alumno+1);
  21.       printf("--------------------------\n\n");
  22.       nota[alumno]=0;
  23.       for(prueba=0; prueba<MAX_PRUEBAS; prueba++)
  24.       {
  25.          printf("Nota de Prueba %d: ", prueba+1);
  26.          scanf("%f", &A[alumno][prueba]);
  27.          printf("\n");
  28.          nota[alumno] += A[alumno][prueba];
  29.       }
  30.       nota[alumno] /= MAX_PRUEBAS;
  31.  
  32.       if(nota[alumno]>=5)
  33.          aprobados++;
  34.       else
  35.          suspensos++;
  36.  
  37.       system("PAUSE");
  38.       system("CLS");
  39.    }
  40.  
  41.    printf("\nNOTAS DE LOS ALUMNOS");
  42.    printf("\n--------------------");
  43.    printf("\nAlumnos aprobados ...............: %d",aprobados);
  44.    printf("\nAlumnos suspendidos .............: %d\n",suspensos);
  45.  
  46.    printf("\nLISTADO DE MEDIAS");
  47.    printf("\n-----------------");
  48.  
  49.    for(alumno=0;alumno<MAX_ALUMNOS; alumno++)
  50.       printf("\nNota media del alumno %2d: %.2f", alumno+1,nota[alumno]);
  51.    printf("\n\n");
  52.    system("PAUSE");
  53.    return 0;
  54. }
  #8 (permalink)  
Antiguo 17/03/2015, 04:59
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Listado calificaciones

Ok, muchísimas gracias
Un saludo

Etiquetas: int, listado, numero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.