Created
June 16, 2014 19:38
-
-
Save Fhernd/61876429e41b4087463d to your computer and use it in GitHub Desktop.
Representa la entidad RangoEncuesta del modelo del mundo del problema en C#.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ===++=== | |
// | |
// OrtizOL | |
// | |
// ===--=== | |
/*============================================================ | |
// | |
// Clase: RangoEncuesta.cs | |
// | |
// Original en: http://goo.gl/l8YVIF | |
// | |
// Propósito: Implementar la entidad rango 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 RangoEncuesta del mundo del problema. | |
/// </summary> | |
public class RangoEncuesta | |
{ | |
#region Campos | |
/// <summary> | |
/// Número de personas casadas. | |
/// </summary> | |
private int numeroCasados; | |
/// <summary> | |
/// Número de personas solteras. | |
/// </summary> | |
private int numeroSolteros; | |
/// <summary> | |
/// Total de las opiniones de los casados. | |
/// </summary> | |
private int totalOpinionCasados; | |
/// <summary> | |
/// Total de las opiniones de los solteros. | |
/// </summary> | |
private int totalOpinionSolteros; | |
#endregion | |
#region Propiedades | |
/// <summary> | |
/// Obtiene la cantidad de personas casadas. | |
/// </summary> | |
public int NumeroCasados | |
{ | |
get | |
{ | |
return numeroCasados; | |
} | |
} | |
/// <summary> | |
/// Obtiene la cantidad de personas que han realizado la encuesta. | |
/// </summary> | |
public int NumeroOpiniones | |
{ | |
get | |
{ | |
return numeroCasados + numeroSolteros; | |
} | |
} | |
/// <summary> | |
/// Obtiene el número de solteros. | |
/// </summary> | |
public int NumeroSolteros | |
{ | |
get | |
{ | |
return numeroSolteros; | |
} | |
} | |
/// <summary> | |
/// Obtiene el total de las opiniones de las personas casadas. | |
/// </summary> | |
public int TotalOpinionCasados | |
{ | |
get | |
{ | |
return totalOpinionCasados; | |
} | |
} | |
/// <summary> | |
/// Obtiene el total de las opiniones de las personas solteras. | |
/// </summary> | |
public int TotalOpinionSolteros | |
{ | |
get | |
{ | |
return totalOpinionSolteros; | |
} | |
} | |
/// <summary> | |
/// Obtiene el total de las opiniones de las personas de ambos estados civiles. | |
/// </summary> | |
public int TotalOpiniones | |
{ | |
get | |
{ | |
return totalOpinionCasados + totalOpinionSolteros; | |
} | |
} | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Crea un rango de encuesta con los valores por defecto. | |
/// </summary> | |
public RangoEncuesta() | |
{ | |
numeroCasados = 0; | |
numeroSolteros = 0; | |
totalOpinionCasados = 0; | |
totalOpinionSolteros = 0; | |
} | |
#endregion | |
#region Métodos | |
/// <summary> | |
/// Agrega una opinión. | |
/// </summary> | |
/// <param name="estadoCivil">Estado civil del encuestado(a).</param> | |
/// <param name="opinion"></param> | |
public void AgregarOpinion(EstadoCivil estadoCivil, int opinion) | |
{ | |
switch (estadoCivil) | |
{ | |
case EstadoCivil.Casado: | |
++numeroCasados; | |
totalOpinionCasados += opinion; | |
break; | |
case EstadoCivil.Soltero: | |
++numeroSolteros; | |
totalOpinionSolteros += opinion; | |
break; | |
} | |
} | |
/// <summary> | |
/// Calcula el promedio total. | |
/// </summary> | |
/// <returns>Promedio total</returns> | |
public double CalcularPromedio() | |
{ | |
return (double)TotalOpiniones / NumeroOpiniones; | |
} | |
/// <summary> | |
/// Calcula el promedio para un estado civil concreto. | |
/// </summary> | |
/// <param name="estadoCivil">Estado civil del encuestado(a).</param> | |
/// <returns>Promedio.</returns> | |
public double CalcularPromedio(EstadoCivil estadoCivil) | |
{ | |
switch (estadoCivil) | |
{ | |
case EstadoCivil.Casado: | |
return (double) totalOpinionCasados / numeroCasados; | |
default: | |
return (double)totalOpinionSolteros / numeroSolteros; | |
} | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment