You are on page 1of 7

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

Programacin Orientada a Objetos


Area = Base * Altura Area Rectangulo = Area Area Triangulo = (Base * Altura) / 2 = Area / 2

Abstract Class

Fields mAltura mBaseFig Properties Altura Area BaseFig Methods CalcularArea (+ 1 overload) cFiguras (+ 1 overload)

cRectangulo
Class cFiguras

cTriangulo
Class cFiguras

Methods cRectangulo (+ 1 overload)

Properties Area Methods CalcularArea (+ 1 overload) cTriangulo (+ 1 overload)

cCuadrado
Class cRectangulo

Methods EsCuadrado

Ing. Edgard de Olazbal Len

Pag. 1

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

Cdigo de las Clases


using System; using System.Collections.Generic; using System.Text; namespace Figuras { public abstract class cFiguras { protected double mBaseFig; protected double mAltura; protected cFiguras() { mBaseFig = 10; mAltura = 5; } protected cFiguras(double mB, double mA) { mBaseFig = mB; mAltura = mA; } /// <summary> /// Longitud de la base de la figura /// </summary> public double BaseFig { get { return mBaseFig; } set { mBaseFig = value; } } /// <summary> /// Longitud de la altura de la figura /// </summary> public double Altura { get { return mAltura; } set { mAltura = value; } } /// <summary> /// Area de la figura /// </summary> public virtual double Area { get {

Ing. Edgard de Olazbal Len

Pag. 2

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

return mAltura * mBaseFig; } } /// <returns>Valor del area de la figura</returns> public virtual double CalcularArea() { try { return mBaseFig * mAltura; } catch (Exception ex) { return -99.99; } //throw new System.NotImplementedException(); } public virtual double CalcularArea(double mA, double mB) { try { mBaseFig = mB; mAltura = mA; return mBaseFig * mAltura; } catch (Exception ex) { return -99.99; } //throw new System.NotImplementedException(); } } }

using System; using System.Collections.Generic; using System.Text; namespace Figuras { public class cRectangulo : cFiguras { public cRectangulo() { } public cRectangulo(double mB, double mA) { base.mBaseFig = mB; base.mAltura = mA; } } }

using System; using System.Collections.Generic; using System.Text;

Ing. Edgard de Olazbal Len

Pag. 3

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

namespace Figuras { public class cTriangulo : cFiguras { public cTriangulo() { //throw new System.NotImplementedException(); } public cTriangulo(double mB, double mA) { base.mBaseFig = mB; base.mAltura = mA; } public override double Area { get { return base.Area /2; } } public override double CalcularArea() { return base.CalcularArea()/2; } public override Double CalcularArea(double mB, double mA) { return base.CalcularArea(mB, mA) / 2; } } }

using System; using System.Collections.Generic; using System.Text; namespace Figuras { public class cCuadrado : cRectangulo { /// <returns>Compara la Base con la Altura para determinar si la figura es un Cuadrado</returns> public bool EsCuadrado() { return base.mBaseFig == base.mAltura; } } }

Ing. Edgard de Olazbal Len

Pag. 4

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

Cdigo del Formulario


using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms;

namespace Figuras { public partial class Form1 : Form { private cFiguras objFig; private cCuadrado objCuadrado; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void chkTriangulo_CheckedChanged(object sender, EventArgs e) { if (chkTriangulo.Checked) { objFig = new cTriangulo(); btnEsCuadrado.Visible = false; } else { objFig = new cRectangulo(); btnEsCuadrado.Visible = true; }

Ing. Edgard de Olazbal Len

Pag. 5

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

} private void btnConstructor_Click(object sender, EventArgs e) { if (chkTriangulo.Checked) { objFig = new cTriangulo(); } else { objFig = new cRectangulo(); } } private void btnConstructorSobr_Click(object sender, EventArgs e) { double dB; double dA; try { dB = double.Parse(txtBaseFig.Text); dA = double.Parse(txAltura.Text); } catch { MessageBox.Show("Los valores no son numricos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (chkTriangulo.Checked) { objFig = new cTriangulo(dB, dA); } else { objFig = new cRectangulo(dB, dA); } } private void btnPropiedadArea_Click(object sender, EventArgs e) { try { MessageBox.Show("El Valor de la propiedad Area es " + objFig.Area.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void btnCalcular_Click(object sender, EventArgs e) { try

Ing. Edgard de Olazbal Len

Pag. 6

Universidad Privada Antenor Orrego Escuela de Ingeniera de Computacin y Sistemas

{ MessageBox.Show("El Valor obtenido por el mtodo CalcularArea es " + objFig.CalcularArea().ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void btnCalcularSobr_Click(object sender, EventArgs e) { try { MessageBox.Show("El Valor obtenido por el mtodo CalcularArea Sobrecargado es " + objFig.CalcularArea(Double.Parse(txtBaseFig.Text), Double.Parse(txAltura.Text)).ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void btnEsCuadrado_Click(object sender, EventArgs e) { objCuadrado = new cCuadrado(); try { objCuadrado.BaseFig = double.Parse(txtBaseFig.Text); objCuadrado.Altura = double.Parse(txAltura.Text); } catch { MessageBox.Show("Los valores no son numricos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (objCuadrado.EsCuadrado()) MessageBox.Show("La figura es un Cuadrado", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("La figura es un Rectngulo", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }

Ing. Edgard de Olazbal Len

Pag. 7

You might also like