Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. const int APROBADO = 70;
  5. const int MAX_ALUMNOS = 100;
  6. const int CONTAR_APROBADOS = 0;
  7. const int CONTAR_REPROBADOS = 1;
  8.  
  9.  
  10. void alocar_memoria(double *estudiantes[],int nro_estudiantes,int nro_calificaciones){
  11. for(int estudiante = 0; estudiante < nro_estudiantes; ++estudiante)
  12. estudiantes[estudiante] = new double[nro_calificaciones];
  13. }
  14.  
  15. void de_alocar_memoria(double *estudiantes[], int nro_estudiantes){
  16. for(int estudiante = 0; estudiante < nro_estudiantes; ++estudiante)
  17. delete estudiantes[estudiante];
  18. }
  19.  
  20.  
  21. void registrar_calificaciones_de_estudiante(double * calificaciones,int estudiante,int nro_calificaciones){
  22. for(int calificacion = 0; calificacion < nro_calificaciones; ++calificacion){
  23. std::cout <<"ingrese calificacion nro "<< calificacion + 1 <<" para estudiante nro " << estudiante + 1 << ":";
  24. std::cin >> calificaciones[calificacion];
  25. std::cout << std::endl;
  26. }
  27. }
  28.  
  29. void registrar_calificaciones(double *estudiantes[],int nro_estudiantes,int nro_calificaciones){
  30. for(int estudiante = 0; estudiante < nro_estudiantes; ++estudiante){
  31. registrar_calificaciones_de_estudiante(estudiantes[estudiante],estudiante,nro_calificaciones);
  32. std::cout << std::endl;
  33. }
  34. }
  35.  
  36.  
  37. bool estudiante_aprobo(double promedio) {
  38. return promedio >= APROBADO;
  39. }
  40.  
  41. double calc_promedio_estudiante(double calificaciones[],int nro_calificaciones){
  42. double suma = 0;
  43. for(int c = 0; c < nro_calificaciones; ++c)
  44. suma += calificaciones[c];
  45. return suma / nro_calificaciones;
  46. }
  47.  
  48.  
  49. int contar_estudiante(double *estudiantes[],int nro_estudiantes,int nro_calificaciones, int opcion){
  50. int conteo = 0;
  51.  
  52. switch(opcion){
  53. case CONTAR_APROBADOS:
  54. for(int e = 0; e < nro_estudiantes; ++e)
  55. if(estudiante_aprobo(calc_promedio_estudiante(estudiantes[e],nro_calificaciones)))
  56. ++conteo;
  57. break;
  58. case CONTAR_REPROBADOS:
  59. for(int e = 0; e < nro_estudiantes; ++e)
  60. if(!estudiante_aprobo(calc_promedio_estudiante(estudiantes[e],nro_calificaciones)))
  61. ++conteo;
  62. break;
  63. }
  64. return conteo;
  65.  
  66. }
  67.  
  68.  
  69. void mostrar_resultados(double *estudiantes[], int nro_estudiantes, int nro_calificaciones){
  70. for(int operacion = 0; operacion < 2; ++operacion){
  71. switch(operacion){
  72. case CONTAR_APROBADOS :
  73. std::cout <<"nro de aprobados = " << contar_estudiante(estudiantes,nro_estudiantes,nro_calificaciones,CONTAR_APROBADOS);
  74. std::cout << std::endl;
  75. break;
  76. case CONTAR_REPROBADOS :
  77. std::cout <<"nro de reprobados = " << contar_estudiante(estudiantes,nro_estudiantes,nro_calificaciones,CONTAR_REPROBADOS);
  78. std::cout << std::endl;
  79. break;
  80. }
  81. }
  82. }
  83.  
  84.  
  85.  
  86.  
  87. int main()
  88. {
  89. double *estudiantes[MAX_ALUMNOS];
  90. int nro_calificaciones,nro_estudiantes;
  91.  
  92. std::cout << "nro de estudiantes? : ";
  93. std::cin >> nro_estudiantes;
  94. std::cout << std::endl;
  95.  
  96. std::cout << "nro de calificaciones? : ";
  97. std::cin >> nro_calificaciones;
  98. std::cout << std::endl;
  99.  
  100. alocar_memoria(estudiantes,nro_estudiantes, nro_calificaciones);
  101. registrar_calificaciones(estudiantes,nro_estudiantes,nro_calificaciones);
  102. mostrar_resultados(estudiantes,nro_estudiantes,nro_calificaciones);
  103. de_alocar_memoria(estudiantes,nro_estudiantes);
  104. std::cin.ignore();
  105. std::cin.get();
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement