コード例 #1
0
ファイル: FactoriaForma.cs プロジェクト: meligomez/CC-Desafio
 public Forma crearForma(int idForma)
 {
     if (idForma == (int)tipoForma.circulo)
     {
         Circulo c = new Circulo();
         c.incrementarCantidadPorForma();
         c.id = idForma;
         return(c);
     }
     if (idForma == (int)tipoForma.cuadrado)
     {
         Cuadrado cu = new Cuadrado();
         cu.id = idForma;
         return(cu);
     }
     if (idForma == (int)tipoForma.trianguloEquilatero)
     {
         TrianguloEquilatero t = new TrianguloEquilatero();
         t.id = idForma;
         return(t);
     }
     return(null);
 }
コード例 #2
0
        public static string Imprimir(List <FormaGeometrica> formas, int idioma)
        {
            var sb = new StringBuilder();

            string traduccionArea      = "";
            string traduccionPerimetro = "";
            string traduccionForma     = "";
            string traduccionLista     = "";
            string traduccionReporte   = "";

            Castellano castellano = new Castellano();
            Ingles     ingles     = new Ingles();
            Frances    frances    = new Frances();



            switch (idioma)
            {
            case Castellano:
                traduccionArea      = castellano.TraducirTitulo("A");
                traduccionPerimetro = castellano.TraducirTitulo("P");
                traduccionForma     = castellano.TraducirTitulo("F");
                traduccionLista     = castellano.TraducirTitulo("L");
                traduccionReporte   = castellano.TraducirTitulo("R");
                break;

            case Ingles:
                traduccionArea      = ingles.TraducirTitulo("A");
                traduccionPerimetro = ingles.TraducirTitulo("P");
                traduccionForma     = ingles.TraducirTitulo("F");
                traduccionLista     = ingles.TraducirTitulo("L");
                traduccionReporte   = ingles.TraducirTitulo("R");
                break;

            case Frances:
                traduccionArea      = frances.TraducirTitulo("A");
                traduccionPerimetro = frances.TraducirTitulo("P");
                traduccionForma     = frances.TraducirTitulo("F");
                traduccionLista     = frances.TraducirTitulo("L");
                traduccionReporte   = frances.TraducirTitulo("R");
                break;
            }

            if (!formas.Any())
            {
                sb.Append(traduccionLista);
            }
            else
            {
                // Hay por lo menos una forma
                // HEADER
                sb.Append(traduccionReporte);

                var numeroCuadrados  = 0;
                var numeroCirculos   = 0;
                var numeroTriangulos = 0;

                var areaCuadrados  = 0m;
                var areaCirculos   = 0m;
                var areaTriangulos = 0m;

                var perimetroCuadrados  = 0m;
                var perimetroCirculos   = 0m;
                var perimetroTriangulos = 0m;

                for (var i = 0; i < formas.Count; i++)
                {
                    switch (formas[i].Tipo)
                    {
                    case Cuadrado:
                        Cuadrado cuadrado = new Cuadrado();
                        areaCuadrados      += cuadrado.CalcularArea(formas[i]._lado);
                        perimetroCuadrados += cuadrado.CalcularPerimetro(formas[i]._lado);
                        numeroCuadrados++;
                        break;

                    case Circulo:
                        Circulo circulo = new Circulo();
                        numeroCirculos++;
                        areaCirculos      += circulo.CalcularArea(formas[i]._lado);
                        perimetroCirculos += circulo.CalcularPerimetro(formas[i]._lado);
                        break;

                    case TrianguloEquilatero:
                        TrianguloEquilatero trianguloEquilatero = new TrianguloEquilatero();
                        numeroTriangulos++;
                        areaTriangulos      += trianguloEquilatero.CalcularArea(formas[i]._lado);
                        perimetroTriangulos += trianguloEquilatero.CalcularPerimetro(formas[i]._lado);
                        break;
                    }
                }

                sb.Append(ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, Cuadrado, idioma));
                sb.Append(ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, Circulo, idioma));
                sb.Append(ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, TrianguloEquilatero, idioma));

                // FOOTER

                sb.Append("TOTAL:<br/>");
                sb.Append(numeroCuadrados + numeroCirculos + numeroTriangulos + " " + traduccionForma + " ");
                sb.Append(traduccionPerimetro + " " + (perimetroCuadrados + perimetroTriangulos + perimetroCirculos).ToString("#.##") + " ");
                sb.Append(traduccionArea + " " + (areaCuadrados + areaCirculos + areaTriangulos).ToString("#.##"));
            }

            return(sb.ToString());
        }
コード例 #3
0
        //#region Formas

        //public const int Cuadrado = 1;
        //public const int TrianguloEquilatero = 2;
        //public const int Circulo = 3;
        //public const int Trapecio = 4;

        //#endregion

        //#region Idiomas

        //public const int Castellano = 1;
        //public const int Ingles = 2;

        //#endregion


        //public Formas Tipo { get; set; }

        //public FormaGeometrica(Formas tipo, decimal ancho)
        //{
        //    Tipo = tipo;
        //    _lado = ancho;
        //}

        public static string Imprimir(List <FormasGeometricas> formas, Idiomas idioma)
        {
            StringBuilder sb;

            if (!formas.Any())
            {
                sb = FuncionesGenerales.AsignarIdiomaVacio(idioma);
            }
            else
            {
                // Hay por lo menos una forma
                // HEADER
                sb = FuncionesGenerales.AsignarIdioma(idioma);

                var numeroCuadrados  = 0;
                var numeroCirculos   = 0;
                var numeroTriangulos = 0;

                var areaCuadrados  = 0m;
                var areaCirculos   = 0m;
                var areaTriangulos = 0m;

                var perimetroCuadrados  = 0m;
                var perimetroCirculos   = 0m;
                var perimetroTriangulos = 0m;


                for (var i = 0; i < formas.Count; i++)
                {
                    switch (formas[i].Tipo)
                    {
                    case EnumFormas.Cuadrado:
                        numeroCuadrados++;
                        //areaCuadrados += formas[i].CalcularArea();
                        areaCuadrados += new Cuadrado(formas[i].Ancho).CalcularArea();
                        //perimetroCuadrados += formas[i].CalcularPerimetro();
                        perimetroCuadrados += new Cuadrado(formas[i].Ancho).CalcularPerimetro();
                        break;

                    case EnumFormas.Circulo:
                        numeroCirculos++;
                        areaCirculos      += new Circulo(formas[i].Ancho).CalcularArea();
                        perimetroCirculos += new Circulo(formas[i].Ancho).CalcularPerimetro();
                        break;

                    case EnumFormas.TrianguloEquilatero:
                        numeroTriangulos++;
                        areaTriangulos      += new TrianguloEquilatero(formas[i].Ancho).CalcularArea();
                        perimetroTriangulos += new TrianguloEquilatero(formas[i].Ancho).CalcularPerimetro();
                        break;

                    case EnumFormas.Rectangulo:
                        numeroTriangulos++;
                        areaTriangulos      += new Rectangulo(formas[i].Ancho, formas[i].Largo).CalcularArea();
                        perimetroTriangulos += new Rectangulo(formas[i].Ancho, formas[i].Largo).CalcularPerimetro();
                        break;

                    case EnumFormas.Trapecio:
                        numeroTriangulos++;
                        areaTriangulos      += new Trapecio(formas[i].Ancho, formas[i].Largo, formas[i].Altura).CalcularArea();
                        perimetroTriangulos += new Trapecio(formas[i].Ancho, formas[i].Largo, formas[i].Lado3, formas[i].Lado4).CalcularPerimetro();
                        break;
                    }
                }

                sb.Append(FuncionesGenerales.ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, EnumFormas.Cuadrado, idioma));
                sb.Append(FuncionesGenerales.ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, EnumFormas.Circulo, idioma));
                sb.Append(FuncionesGenerales.ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, EnumFormas.TrianguloEquilatero, idioma));

                // FOOTER
                sb.Append("TOTAL:<br/>");
                sb.Append(numeroCuadrados + numeroCirculos + numeroTriangulos + " " + (idioma == Idiomas.Castellano ? "formas" : "shapes") + " ");
                sb.Append((idioma == Idiomas.Castellano ? "Perimetro " : "Perimeter ") + (perimetroCuadrados + perimetroTriangulos + perimetroCirculos).ToString("#.##") + " ");
                sb.Append("Area " + (areaCuadrados + areaCirculos + areaTriangulos).ToString("#.##"));
            }

            return(sb.ToString());
        }