Created
June 8, 2014 22:24
-
-
Save Fhernd/88bdb0a048c19af089c0 to your computer and use it in GitHub Desktop.
Representa a la entidad Urna.
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: Urna.cs | |
// | |
// Original en: http://goo.gl/vmpWmF | |
// | |
// Propósito: Codificar los atributos, campos, constructores | |
// de la entidad `Urna`. | |
// | |
============================================================*/ | |
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace N1_EleccionesCupi2.Modelo | |
{ | |
/// <summary> | |
/// Representa la entidad `Urna` del modelo. | |
/// </summary> | |
public class Urna | |
{ | |
#region Campos | |
/// <summary> | |
/// Arreglo con elementos `Candidato`. | |
/// </summary> | |
private Candidato[] candidatos; | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Crea una instancia de `Urna` y carga valores para el arreglo `candidatos`: | |
/// </summary> | |
public Urna() | |
{ | |
// Creación de elemntos Candidato: | |
candidatos = new Candidato[3]; | |
// Crea insticas instancia de `Candidato`: | |
candidatos[0] = new Candidato("Felipe", "Pitti", "Independiente", 27); | |
candidatos[1] = new Candidato("Susanita", "Chirusi", "Revolucionario", 26); | |
candidatos[2] = new Candidato("Manolito", "Goreiro", "Tradicional", 26); | |
} | |
#endregion | |
#region Métodos | |
/// <summary> | |
/// Calcula el costo promedio de las campañas de los tres candidatos. | |
/// </summary> | |
/// <returns>Costo promedio de las campañas.</returns> | |
public decimal CalcularCostoPromedioCampania() | |
{ | |
// Acumula el costo de las tres compañas: | |
decimal total = candidatos[0].CostoCampania + candidatos[1].CostoCampania + candidatos[2].CostoCampania; | |
// Promedio: | |
return (total) / 3; | |
} | |
/// <summary> | |
/// Calcula el porcentaje de votos para un candidato específico. | |
/// </summary> | |
/// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param> | |
/// <returns></returns> | |
public decimal CalcularPorcentajeVotos(int numeroCandidato) | |
{ | |
decimal porcentaje = (decimal)candidatos[numeroCandidato - 1].Votos / CalcularTotalVotos() * 100.0M; | |
return porcentaje; | |
} | |
/// <summary> | |
/// Calcula el total de votos de los tres candidatos. | |
/// </summary> | |
/// <returns>Total de votos</returns> | |
public int CalcularTotalVotos() | |
{ | |
return candidatos[0].Votos + candidatos[1].Votos + candidatos[2].Votos; | |
} | |
/// <summary> | |
/// Agrega un voto a la urna de un candidato específico. | |
/// </summary> | |
/// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param> | |
/// <param name="medio">Medio (Internet, Radio, o Televisión) que influenció al votante.</param> | |
public void IngresarVoto(int numeroCandidato, MedioPublicitario medio) | |
{ | |
candidatos[numeroCandidato - 1].IngresarVoto(medio); | |
} | |
/// <summary> | |
/// Obtiene un candidato a través de su ID (1, 2, o 3). | |
/// </summary> | |
/// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param> | |
/// <returns>Candidato</returns> | |
public Candidato ObtenerCandidato(int numeroCandidato) | |
{ | |
return candidatos[numeroCandidato - 1]; | |
} | |
/// <summary> | |
/// El conteo de votos se reinicia a cero, e igualmente los costos de campaña. | |
/// </summary> | |
public void VaciarUrna() | |
{ | |
foreach (Candidato candidato in candidatos) | |
{ | |
candidato.ReiniciarConteoVotos(); | |
candidato.ReiniciarCostoCampania(); | |
} | |
} | |
#endregion | |
/// <summary> | |
/// Método de extensión número 1. | |
/// </summary> | |
/// <returns>Cadena de caracteres.</returns> | |
#region Métodos de extensión | |
public string MetodoExtension1() | |
{ | |
return "Respuesta 1"; | |
} | |
/// <summary> | |
/// Método de extensión número 2. | |
/// </summary> | |
/// <returns>Cadena de caracteres.</returns> | |
public string MetodoExtension2() | |
{ | |
return "Respuesta 2"; | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment