Problema # 2
class areas
{
public double area_cuadrado(double lado)
{
double resultado;
resultado = lado * lado;
return resultado;
}
public double area_circulo(double radio)
{
double resultado;
resultado=(radio*radio)*3.1416;
return resultado;
}
public double area_triangulo(double b, double a)
{
double resultado;
resultado = a * b / 2;
return resultado;
}
public double area_rectangulo(double b, double a)
{
double resultado;
resultado = a * b;
return resultado;
}
}
}
class perimetros
{
public double perimetro_cuadrado(double lado)
{
double resultado;
resultado = lado * 4;
return resultado;
}
public double perimetro_circulo(double radio)
{
double resultado;
resultado = radio * 2 * Math.PI;
return resultado;
}
public double perimetro_triangulo(double lado1,double lado2,double lado3)
{
double resultado;
resultado = lado1 + lado2 + lado3;
return resultado;
}
public double rectangulo(double Base, double altura)
{
double resultado;
resultado = Base * altura * 2;
return resultado;
}
}
}
class entrada_salida
{
public void captura(out double variable, string msj, int x, int y)
{
Console.SetCursorPosition(x, y);
Console.Write(msj);
variable = double.Parse(Console.ReadLine());
}
public void imprime(double resultado, string msj, int x, int y)
{
Console.SetCursorPosition(x, y);
Console.WriteLine("{0}{1}",msj,resultado,x,y );
}
}
}
class menu
{
public void genera_menu(out int opc,int z,int y,params string []menu)
{
int x;
for (x = 0; x < menu.Length; x++)
{
Console.SetCursorPosition(z, y + x);
Console.WriteLine(menu
}
opc = int.Parse(Console.ReadLine());
}
}
}
static void Main(string[] args)
{
menu m = new menu();
perimetros p = new perimetros();
areas a = new areas();
entrada_salida e = new entrada_salida();
int opc;
double v, b,s;
do
{
Console.Clear();
m.genera_menu(out opc, 25, 8, "1)Arean", "2)Perimetron", "3)Salirn");
Console.Clear();
switch (opc)
{
case 1:
do
{
m.genera_menu(out opc, 25, 8, "1)Cuadrado", "2)Circulo", "3)Triangulo", "4)Rectangulo", "5)Salir");
Console.Clear();
switch (opc)
{
case 1: e.captura(out v, "lado: ", 10, 5);
Console.Clear();
e.imprime(a.area_cuadrado(v), "Area es : ", 13, 6); break;
case 2: e.captura(out v, "radio: ", 13, 6);
Console.Clear();
e.imprime(a.area_circulo(v), "Area es : ", 13, 6); break;
case 3: e.captura(out v, "base: ", 13, 6);
e.captura(out b, "altura: ", 13, 7);
Console.Clear();
e.imprime(a.area_triangulo(b, v), "Area es : ", 13, 6); break;
case 4: e.captura(out v, "base: ", 13, 6);
e.captura(out b, "altura: ", 13, 7);
Console.Clear();
e.imprime(a.area_rectangulo(v, b), "Area es : ", 13, 6); break;
}
} while (opc != 5); break;
case 2:
do
{
m.genera_menu(out opc, 25, 8, "1)Cuadrado", "2)Circulo", "3)Triangulo", "4)Rectangulo", "5)Salir");
Console.Clear();
switch (opc)
{
case 1: e.captura(out v, "lado: ", 10, 5);
Console.Clear();
e.imprime(p.perimetro_circulo(v), "Perimetro es: ", 13, 6); break;
case 2:
e.captura(out v, "radio: ", 13, 6);
Console.Clear();
e.imprime(p.perimetro_circulo(v), "Perimetro es: ", 13, 6); break;
case 3:
e.captura(out v, "lado1: ", 13, 6);
e.captura (out s, "lado2: ", 13, 7);
e.captura (out b, "lado3: ", 13, 8);
Console.Clear();
e.imprime(p.perimetro_triangulo(v, b, s), "Perimetro es: ", 13, 6); break;
case 4: e.captura(out v, "base: ", 13, 6);
e.captura(out b, "altura: ", 13, 7);
Console.Clear();
e.imprime(p.rectangulo(v, b), "Perimetro es: ", 13, 6); break;
}
} while (opc != 5); break;
}
} while (opc != 3);
}
}
}
BYEE