Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created June 16, 2014 19:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/61876429e41b4087463d to your computer and use it in GitHub Desktop.
Save Fhernd/61876429e41b4087463d to your computer and use it in GitHub Desktop.
Representa la entidad RangoEncuesta del modelo del mundo del problema en C#.
// ===++===
//
// 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