Ejemplo de VB NET calcular área y perímetro
Seguimos con Visual Basic .NET, en este caso un programilla en el que el usuario da una base y una altura y según lo que elija se calcula el área de un triángulo o el perímetro de un rectángulo. Aquí se ve un pantallazo:
Vamos, no es nada del otro jueves que digamos.
La clase Triángulo
Esta es una clase que representa un triángulo y tiene un método para calcular el área
Public Class Triangulo
Private _base As Double
Private _altura As Double
Public Property base As Double
Get
Return _base
End Get
Set(ByVal value As Double)
_base = value
End Set
End Property
Public Property altura As Double
Get
Return _altura
End Get
Set(ByVal value As Double)
_altura = value
End Set
End Property
'''
''' Constructor de la clase
'''
'''
'''
'''
Public Sub New(ByVal base As Double, ByVal altura As Double)
Me.base = base
Me.altura = altura
End Sub
'''
''' Area, calcula el área de un triángulo
'''
''' Double
'''
Public Function Area() As Double
Return ((_base * _altura) / 2)
End Function
End Class
La clase Rectángulo
Esta es una clase que representa un rectángulo y tiene un método para calcular el área y el perímetro
Public Class Rectangulo
Private _base As Double
Private _altura As Double
Public Property base As Double
Get
Return _base
End Get
Set(ByVal value As Double)
_base = value
End Set
End Property
Public Property altura As Double
Get
Return _altura
End Get
Set(ByVal value As Double)
_altura = value
End Set
End Property
Public Sub New(ByVal base As Double, ByVal altura As Double)
Me.base = base
Me.altura = altura
End Sub
'''
''' Area
'''
''' Double
'''
Public Function Area() As Double
Return _base * _altura
End Function
'''
''' Perimetro
'''
''' Double
'''
Public Function Perimetro() As Double
Return _base * 2 + _altura * 2
End Function
End Class
El interfaz
El interefaz de usuario no es más que una clase Form que básicamente atiende los eventos de los botones y los radiobuttons.
Public Class Form1
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbRectangulo.CheckedChanged
GroupBox1.Text = "Rectángulo"
lblArea.Visible = False
lblTxtArea.Visible = False
lblTxtArea.Text = ""
txtBase.Focus()
lblPerimetro.Visible = True
lblTxtPerimetro.Visible = True
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbTriangulo.CheckedChanged
GroupBox1.Text = "Triángulo"
lblPerimetro.Visible = False
lblTxtPerimetro.Visible = False
lblTxtPerimetro.Text = ""
lblArea.Visible = True
lblTxtArea.Visible = True
txtAltura.Focus()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub btnResultados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnResultados.Click
Dim errores As Boolean = False
Dim base As Double = 0
Dim altura As Double = 0
If Not IsNumeric(txtAltura.Text) Then
errores = True
txtAltura.Focus()
End If
If Not IsNumeric(txtBase.Text) Then
errores = True
txtBase.Focus()
End If
If errores Then
MsgBox("Error datos no numéricos")
Else
base = Double.Parse(txtBase.Text)
altura = Double.Parse(txtAltura.Text)
If rbRectangulo.Checked Then
Dim miRectangulo As Rectangulo = New Rectangulo(base, altura)
lblTxtPerimetro.Text = miRectangulo.Perimetro
Else
Dim miTriangulo As Triangulo = New Triangulo(base, altura)
lblTxtArea.Text = miTriangulo.Area
End If
End If
End Sub
End Class