Created
June 16, 2014 19:33
-
-
Save Fhernd/af86650e531c41d24c4b to your computer and use it in GitHub Desktop.
Entidad Encuesta 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: 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 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment