Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Alcancia.
- //
- // Original en: http://goo.gl/uztrer
- //
- // Propósito: Implementar la clase Alcancia del modelo.
- //
- ============================================================*/
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Alcancia.Modelo
- {
- /// <summary>
- /// Entidad Alcancia del modelo del mundo del problema.
- /// </summary>
- public class Alcancia
- {
- #region Campos
- /// <summary>
- /// Los contadores de las denominaciones.
- /// </summary>
- private int[] contadoresDenominacion;
- /// <summary>
- /// Representa el estado de la alcancia (rota o nueva).
- /// </summary>
- private bool estadoAlcancia;
- #endregion
- #region Propiedades
- /// <summary>
- /// Recupera el estado de la alcancía.
- /// </summary>
- public bool EstadoAlcancia
- {
- get
- {
- return estadoAlcancia;
- }
- }
- #endregion
- #region Constructores
- /// <summary>
- /// Crea una instancia de la alcancía.
- /// </summary>
- public Alcancia()
- {
- contadoresDenominacion = new int[5];
- // Inicializa todos los contadores en 0:
- for (int i = 0; i < contadoresDenominacion.Length; ++i)
- {
- contadoresDenominacion[i] = 0;
- }
- // La alcancía no está rota a la hora de su creación:
- estadoAlcancia = false;
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Agrega una moneda de una determinada denominación.
- /// </summary>
- /// <param name="denominacion">Denominación (20, 50, 100, 200, 500) de la moneda.</param>
- public void AgregarMoneda(Moneda denominacion)
- {
- switch (denominacion)
- {
- case Moneda.Veinte:
- ++contadoresDenominacion[0];
- return;
- case Moneda.Cincuenta:
- ++contadoresDenominacion[1];
- return;
- case Moneda.Cien:
- ++contadoresDenominacion[2];
- return;
- case Moneda.Doscientos:
- ++contadoresDenominacion[3];
- return;
- case Moneda.Quinientos:
- ++contadoresDenominacion[4];
- return;
- }
- }
- /// <summary>
- /// Calcula la cantidad de dinero que haya en la alcancía.
- /// </summary>
- /// <returns>Total dinero en la alcancía.</returns>
- public decimal CalcularTotalDinero()
- {
- decimal totalDinero = 0.0M;
- totalDinero = 20 * contadoresDenominacion[0] + 50 * contadoresDenominacion[1] + 100 * contadoresDenominacion[2] +
- 200 * contadoresDenominacion[3] + 500 * contadoresDenominacion[4];
- return totalDinero;
- }
- /// <summary>
- /// Cuenta la cantidad de monedas de una determinada denominación.
- /// </summary>
- /// <param name="denominacion">Denominación (20, 50, 100, 200, 500) de la moneda.</param>
- /// <returns>Cantidad de monedas de la denominación dada.</returns>
- public int ContarMonedas(Moneda denominacion)
- {
- switch (denominacion)
- {
- case Moneda.Veinte:
- return contadoresDenominacion[0];
- case Moneda.Cincuenta:
- return contadoresDenominacion[1];
- case Moneda.Cien:
- return contadoresDenominacion[2];
- case Moneda.Doscientos:
- return contadoresDenominacion[3];
- default:
- return contadoresDenominacion[4];
- }
- }
- /// <summary>
- /// Rompe la alcancía y cambia su estado a rota.
- /// </summary>
- public void RomperAlcancia()
- {
- estadoAlcancia = true;
- }
- #endregion
- #region Métodos de extensión
- /// <summary>
- /// Método de extensión no. 1.
- /// </summary>
- /// <returns>Mensaje de demostración.</returns>
- public string MetodoExtension1()
- {
- return "Respuesta 1";
- }
- /// <summary>
- /// Método de extensión no. 2.
- /// </summary>
- /// <returns>Mensaje de demostración.</returns>
- public string MetodoExtension2()
- {
- return "Respuesta 2;";
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement