ejercicio 01 poo

7
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

Upload: luis

Post on 26-Mar-2015

397 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ejercicio 01 POO

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

Page 2: Ejercicio 01 POO

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

Page 3: Ejercicio 01 POO

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

Page 4: Ejercicio 01 POO

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