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); }
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()); }
//#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()); }