Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // ===++===
  2. //
  3. //    OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: Curso.cs
  9. //
  10. // Original en: http://goo.gl/PhL5Ju
  11. //
  12. // Propósito: Implementar la entidad Curso del modelo.
  13. //
  14. ============================================================*/
  15.  
  16. using System;
  17. using System.Threading.Tasks;
  18.  
  19. namespace NotasCurso.Modelo
  20. {
  21.     /// <summary>
  22.     /// Clase que representa un Curso.
  23.     /// </summary>
  24.     public class Curso
  25.     {
  26.         #region Campos
  27.         /// <summary>
  28.         /// Las notas de cada estudiante como un arreglo de double.
  29.         /// </summary>
  30.         private double[] notas;
  31.         /// <summary>
  32.         /// Cantidad de estudiantes en el curso.
  33.         /// </summary>
  34.         public const int TOTAL_ESTUDIANTES = 12;
  35.         #endregion
  36.  
  37.         #region Constructores
  38.         /// <summary>
  39.         /// Crea una instancia de curso.
  40.         /// </summary>
  41.         public Curso ()
  42.         {
  43.             notas = new double[TOTAL_ESTUDIANTES];
  44.  
  45.             // Asigna un valor por defecto para cada nota:
  46.             for (int i = 0; i < notas.Length; i++)
  47.             {
  48.                 notas[i] = 0.0;
  49.             }
  50.         }
  51.         #endregion
  52.  
  53.         #region Métodos
  54.         /// <summary>
  55.         /// Cambia la nota de un estudiante.
  56.         /// </summary>
  57.         /// <param name="numeroEstudiante">Número (1-12) del estudiante.</param>
  58.         /// <param name="nota">Nota del estudiante (0.0-5.0).</param>
  59.         public void CambiarNota(int numeroEstudiante, double nota)
  60.         {
  61.             notas[numeroEstudiante - 1] = nota;
  62.         }
  63.         /// <summary>
  64.         /// Determina la cantidad de estudiantes que mantienen una nota por
  65.         /// encima del promedio.
  66.         /// </summary>
  67.         /// <returns>El número de estudiantes con una nota superior al promedio.</returns>
  68.         public int CuantosEncimaPromedio()
  69.         {
  70.             // Calcula el promedio de todas las notas:
  71.             double promedio = CalcularPromedio();
  72.  
  73.             // Calcula el número de notas mayores al promedio:
  74.             int notasSuperiores = 0;
  75.             for (int indiceNota = 0; indiceNota < notas.Length; indiceNota++)
  76.             {
  77.                 if (notas[indiceNota] > promedio)
  78.                 {
  79.                     ++notasSuperiores;
  80.                 }
  81.             }
  82.  
  83.             return notasSuperiores;
  84.         }
  85.         /// <summary>
  86.         /// Calcula el promedio de todas las notas del curso.
  87.         /// </summary>
  88.         /// <returns>Promedio de todas las notas.</returns>
  89.         public double CalcularPromedio()
  90.         {
  91.             double acumuladorNotas = 0.0;
  92.  
  93.             for (int indiceNota = 0; indiceNota < notas.Length; indiceNota++)
  94.             {
  95.                 acumuladorNotas += notas[indiceNota];
  96.             }
  97.  
  98.             return acumuladorNotas / TOTAL_ESTUDIANTES;
  99.         }
  100.         /// <summary>
  101.         /// Obtiene la nota de un determinado estudiante.
  102.         /// </summary>
  103.         /// <param name="numeroEstudiante">Número (1-12) del estudiante.</param>
  104.         /// <returns>Nota del estudiante.</returns>
  105.         public double ObtenerNota(int numeroEstudiante)
  106.         {
  107.             return notas[numeroEstudiante - 1];
  108.         }
  109.         #endregion
  110.  
  111.         #region Puntos de Extensión
  112.         /// <summary>
  113.         /// Punto de extensión número 1.
  114.         /// </summary>
  115.         /// <returns>Mensaje de respuesta.</returns>
  116.         public String PuntoExtension1()
  117.         {
  118.             return "Respuesta 1";
  119.         }
  120.         /// <summary>
  121.         /// Punto de extensión número 2.
  122.         /// </summary>
  123.         /// <returns>Mensaje de respuesta.</returns>
  124.         public String PuntoExtension2()
  125.         {
  126.             return "Respuesta 2";
  127.         }
  128.         #endregion
  129.     }
  130. }