ejercicio 01 poo
TRANSCRIPT
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 FunctionEnd 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 FunctionEnd 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