Está en la página 1de 5

LABORATORIO HERENCIA Y MODIFICADORES (abstract, virtual y override)

1. Replicar el diagrama de clases siguiente utilizando la herramienta StarUML:

2. Codificar utilizando el lenguaje de programación C# el diagrama de clases del


ejercicio 1.
Program.cs
using System;

namespace sonFigurasAbstract1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("-------------------------------");
Console.WriteLine("Jheremy Benjamin Mollo Yujra");
Console.WriteLine("-------------------------------");
Console.WriteLine("+ RECTANGULO +");
Rectangulo rectangulo1 = new Rectangulo(10,5);
rectangulo1.CalcularArea();
rectangulo1.CalcularPerimetro();
Console.WriteLine( rectangulo1.Imprimir());
Console.WriteLine("-------------------------------");
Console.WriteLine("+ CIRCULO +");
Circulo circulo1 = new Circulo(10);
circulo1.CalcularArea();
circulo1.CalcularPerimetro();
Console.WriteLine(circulo1.Imprimir());
Console.WriteLine("-------------------------------");
Console.WriteLine("+ CUADRADO +");
Cuadrado cuadrado1 = new Cuadrado(12);
cuadrado1.CalcularArea();
cuadrado1.CalcularPerimetro();
Console.WriteLine(cuadrado1.Imprimir());
Console.WriteLine("-------------------------------");
Console.WriteLine("+ TRIANGULO +");
Triangulo triangulo1 = new Triangulo(4,3,5);
triangulo1.CalcularArea();
triangulo1.CalcularPerimetro();
Console.WriteLine(triangulo1.Imprimir());
Console.WriteLine("-------------------------------");
Console.ReadKey();
}
}
}
Figura.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace sonFigurasAbstract1
{
abstract class Figura
{
protected double Area { get; set; }
protected double Perimetro { get; set; }
public abstract void CalcularArea();
public abstract void CalcularPerimetro();
public virtual string Imprimir()
{
return " - Area = " + Area + " - Perimetro = " + Perimetro;
}
}
}
Cuadrado.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace sonFigurasAbstract1
{
class Cuadrado:Figura
{
private double lado;

public double Lado


{
get { return lado; }
set
{
if (value > 0)
lado = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo el lado del cuadrado [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
lado = value;
}
}
}

public Cuadrado(double l)
{
Lado = l;
}
public override void CalcularArea()
{
Area = Lado * Lado;
}
public override void CalcularPerimetro()
{
Perimetro = Lado + Lado + Lado + Lado;
}
public override string Imprimir()
{
return "Lado = " + Lado + base.Imprimir();
}
}
}
Triangulo.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace sonFigurasAbstract1
{
class Triangulo:Figura
{
private double bas;
private double lado;
private double altura;

public double Base


{
get { return bas; }
set
{
if (value > 0)
bas = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo la base del rectangulo [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
bas = value;
}
}
}

public double Altura


{
get { return altura; }
set
{
if (value > 0)
altura = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo la altura del rectangulo [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
altura = value;
}
}
}
public double Lado
{
get { return lado; }
set
{
if (value > 0)
lado = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo el lado del cuadrado [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
lado = value;
}
}
}
public Triangulo(double b, double a, double l)
{
Base = b;
Altura = a;
Lado = l;
}
public override void CalcularArea()
{
Area = (Base * Altura) / 2;
}
public override void CalcularPerimetro()
{
Perimetro = Altura + Lado + Base;
}
public override string Imprimir()
{
return "Base = " + Base + " - Altura = " + Altura + " - Lado = " + Lado + base.Imprimir();
}
}
}
Rectangulo.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace sonFigurasAbstract1
{
class Rectangulo:Figura
{
private double bas;
private double altura;
public double Base
{
get { return bas; }
set
{
if (value > 0)
bas = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo la base del rectangulo [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
bas = value;
}
}
}

public double Altura


{
get { return altura; }
set
{
if (value > 0)
altura = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo la altura del rectangulo [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
altura = value;
}
}
}
public Rectangulo(double b, double a)
{
Base = b;
Altura = a;
}
public override void CalcularArea()
{
Area = Base * Altura;
}
public override void CalcularPerimetro()
{
Perimetro = 2 * (Base + Altura);
}
public override string Imprimir()
{
return "Base = "+Base+" - Altura = "+Altura+base.Imprimir();
}
}
}
Circulo.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace sonFigurasAbstract1
{
class Circulo:Figura
{
private double radio;

public double Radio


{
get { return radio; }
set
{
if (value > 0)
radio = value;
else
{
while (value <= 0)
{
Console.WriteLine("El valor introducido es incorrecto!!");
Console.Write("Introduzca de nuevo el radio del circulo [>0]:");
value = Convert.ToDouble(Console.ReadLine());
}
radio = value;
}
}
}
public Circulo(double r)
{
Radio = r;
}
public override void CalcularArea()
{
Area = Math.PI*Math.Pow(Radio,2);
}
public override void CalcularPerimetro()
{
Perimetro = 2*Math.PI*Radio;
}
public override string Imprimir()
{
return "Radio = " + Radio + base.Imprimir();
}
}
}

También podría gustarte