Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Encuesta.cs
- //
- // Original en: http://goo.gl/8RVFMg
- //
- // Propósito: Implementar la entidad Encuesta.
- //
- ============================================================*/
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace N1_Encuesta.Modelo
- {
- /// <summary>
- /// Representa la entidad Encuesta del modelo del mundo del problema.
- /// </summary>
- public class Encuesta
- {
- #region Campos:
- /// <summary>
- /// Los rangos (edad) para la encuesta.
- /// </summary>
- RangoEncuesta[] rangosEncuesta;
- #endregion
- #region
- /// <summary>
- /// Recupera el número total de opiniones.
- /// </summary>
- public int NumeroTotalOpiniones
- {
- get
- {
- int totalOpiniones = 0;
- foreach (RangoEncuesta rangoEncuesta in rangosEncuesta)
- {
- totalOpiniones += rangoEncuesta.NumeroOpiniones;
- }
- return totalOpiniones;
- }
- }
- #endregion
- #region Constructores
- /// <summary>
- /// Inicializa una instancia de Encuesta.
- /// </summary>
- public Encuesta()
- {
- // 3 rangos de encuesta:
- rangosEncuesta = new RangoEncuesta[3];
- rangosEncuesta[0] = new RangoEncuesta();
- rangosEncuesta[1] = new RangoEncuesta();
- rangosEncuesta[2] = new RangoEncuesta();
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Agrega una opinión a la encuesta.
- /// </summary>
- /// <param name="idRango">ID (1, 2, o 3) del rango de edad.</param>
- /// <param name="opinion">Valor (0-10) de la opinión.</param>
- /// <param name="estadoCivil">Estado civil del encuestado(a).</param>
- public void AgregarOpinion(int idRango, int opinion, EstadoCivil estadoCivil)
- {
- switch(estadoCivil)
- {
- case EstadoCivil.Casado:
- rangosEncuesta[idRango - 1].AgregarOpinion(estadoCivil, opinion);
- break;
- case EstadoCivil.Soltero:
- rangosEncuesta[idRango - 1].AgregarOpinion(estadoCivil, opinion);
- break;
- }
- }
- /// <summary>
- /// Calcula el promedio total de las opiniones del curso.
- /// </summary>
- /// <returns>Promedio total de las opiniones del curso.</returns>
- public double CalcularPromedio()
- {
- double totalEncuesta = 0.0;
- double promedioEncuesta;
- foreach (RangoEncuesta rangoEncuesta in rangosEncuesta)
- {
- totalEncuesta += rangoEncuesta.TotalOpiniones;
- }
- promedioEncuesta = totalEncuesta / NumeroTotalOpiniones;
- return promedioEncuesta;
- }
- /// <summary>
- /// Calcula el promedio para un estado civil particular.
- /// </summary>
- /// <param name="estadoCivil">Estado civil (casado(a) o soltero(a).</param>
- /// <returns>El promedio parcial para un estado civil.</returns>
- public double CalcularPromedio(EstadoCivil estadoCivil)
- {
- double totalEncuesta = 0;
- double promedio;
- switch (estadoCivil)
- {
- case EstadoCivil.Casado:
- foreach (RangoEncuesta rangoEncuesta in rangosEncuesta)
- {
- totalEncuesta += rangoEncuesta.TotalOpinionCasados;
- }
- promedio = totalEncuesta / TotalCasados();
- return promedio;
- default:
- foreach (RangoEncuesta rangoEncuesta in rangosEncuesta)
- {
- totalEncuesta += rangoEncuesta.TotalOpinionSolteros;
- }
- promedio = totalEncuesta / TotalSolteros();
- return promedio;
- }
- }
- /// <summary>
- /// Muestra resultados de un rango y estado civil específicos.
- /// </summary>
- /// <param name="idRango">ID (1, 2, o 3) del rango.</param>
- /// <param name="estadoCivil">Estado civil del encuestado(a).</param>
- /// <returns>Total de opiniones.</returns>
- public double MostrarResultado(int idRango, EstadoCivil estadoCivil)
- {
- return rangosEncuesta[idRango - 1].CalcularPromedio(estadoCivil);
- }
- private int TotalCasados()
- {
- int total = 0;
- foreach (RangoEncuesta rangoEncuesta in rangosEncuesta)
- {
- total += rangoEncuesta.NumeroCasados;
- }
- return total;
- }
- /// <summary>
- /// Calcula el número total de solteros(as) que que han realizado la encuesta.
- /// </summary>
- /// <returns>Número total de soltero(s).</returns>
- private int TotalSolteros()
- {
- int total = 0;
- foreach (RangoEncuesta rangoEncuesta in rangosEncuesta)
- {
- total += rangoEncuesta.NumeroSolteros;
- }
- return total;
- }
- #endregion
- #region Métodos de Extensión
- /// <summary>
- /// Método de extensión no. 1.
- /// </summary>
- /// <returns>Cadena de resultado.</returns>
- public string Metodo1()
- {
- return "Respuesta 1";
- }
- /// <summary>
- /// Método de extensión no. 2.
- /// </summary>
- /// <returns>Cadena de resultado.</returns>
- public string Metodo2()
- {
- return "Respuesta 2";
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement