Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // 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
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement