Anda di halaman 1dari 4

Desarrollo de Sistemas - USAT

EJERCICIO 01

Programación Orientada a Objetos


 Implementar una solución que permita manejar HERENCIA en Visual Basic .Net con las clases
Persona, Obrero y Trabajador. Con la siguiente información:

Ing. Consuelo Del Castillo Castro -1-


MCSD .Net
Desarrollo de Sistemas - USAT

Clase Persona

Public Class Persona


Protected m_dni As String
Protected m_nombre As String
Protected m_apellidos As String
Protected m_fecha As Date
Protected m_sexo As String
Protected m_fechaInicio As Date
Protected m_estado As Boolean

Sub New()
m_estado = False
End Sub

Public Sub registrar(ByVal dni As String, ByVal nombre As


String, ByVal apellidos As String, ByVal fecha As Date, ByVal sexo
As String)
Me.m_dni = dni
Me.m_nombre = nombre
Me.m_apellidos = apellidos
Me.m_fecha = fecha
Me.m_sexo = sexo
End Sub

Public Sub contratar(ByVal fechaInicio As Date)


Me.m_fechaInicio = fechaInicio
Me.m_estado = True
End Sub

Public Sub despedir()


Me.m_estado = False
End Sub

Public Overridable Function calcularSueldo() As Double


End Function

Public Function mostarDatos() As ArrayList


Dim datos As New ArrayList
datos.Add(Me.m_dni)
datos.Add(Me.m_nombre)
datos.Add(Me.m_apellidos)
datos.Add(Me.m_fecha)
datos.Add(Me.m_sexo)
Return datos
End Function

End Class

Ing. Consuelo Del Castillo Castro -2-


MCSD .Net
Desarrollo de Sistemas - USAT

Clase Trabajador

Public Class Trabajador


Inherits Persona
Private m_salario As Double
Private m_afp As Double

Public Overloads Sub contratar(ByVal salario As Double, ByVal


afp As Double)
m_salario = salario
m_afp = afp
End Sub

Public Overrides Function calcularSueldo() As Double


Return MyBase.calcularSueldo()
Return m_salario - (m_salario * m_afp)
End Function
End Class

Clase Obrero

Public Class Obrero


Inherits Persona
Private m_costoHora As Double
Private m_costoHoraE As Double
Private m_horas As Integer
Private m_horasE As Integer

Public Overloads Sub contratar(ByVal costoH As Double, ByVal


costoHE As Double)
m_costoHora = costoH
m_costoHoraE = costoHE
End Sub

Public Overloads Function calcularSueldo(ByVal horas As Integer,


ByVal horasE As Integer) As Double
Return (m_costoHora * horas + m_costoHoraE * horasE)
End Function
End Class

Ing. Consuelo Del Castillo Castro -3-


MCSD .Net
Desarrollo de Sistemas - USAT

Programación en la consola:

Imports misClases

Module moduloInicio
Sub main()
Dim rpta As Integer
Dim objPersona As Object
Console.WriteLine("EJERCICIO 01: Manejo de Herencia")
Console.WriteLine("--------------------------------")
Do
Console.Write("Seleccione (1) para TRABAJADOR o (2) para
OBRERO: ")
rpta = Console.ReadLine
Loop Until rpta = 1 Or rpta = 2
If rpta = 1 Then
objPersona = New Trabajador
leerPersona(objPersona)
Dim lista As ArrayList = objPersona.mostarDatos
For Each dato In lista
Console.WriteLine(dato)
Next
Else
'Implementación para Obrero
End If
Console.Read()
End Sub

Public Sub leerPersona(ByVal obj As Persona)


Dim dni, nombre, apellidos, sexo As String, fecha As Date
Console.Write("DNI : ")
dni = Console.ReadLine
Console.Write("Nombre : ")
nombre = Console.ReadLine
Console.Write("Apellidos : ")
apellidos = Console.ReadLine
Console.Write("Sexo : ")
sexo = Console.ReadLine
Console.Write("Fecha : ")
fecha = Console.ReadLine
obj.registrar(dni, nombre, apellidos, fecha, sexo)
End Sub

End Module

Ing. Consuelo Del Castillo Castro -4-


MCSD .Net

Anda mungkin juga menyukai