Está en la página 1de 18

PROGRAMACION NET II

Unidad 2

Actividad 2

Herencia mediante C#

En un código en C# la herencia permite que como programadores definamos clases a partir de otras previamente declaradas con lo cual la clase
“padre” transmite sus características (propiedades o atributos, métodos o acciones) a la clase “hijo”. En la presente actividad aplicarás de forma
práctica los conceptos estudiados en el contenido de la unidad y también analizados en la actividad anterior.

Propósito: Solucionar un problema en donde sea necesario desarrollar una jerarquía de herencia, y que utilices las instrucciones de C#.
1. Considera la siguiente jerarquía de herencia:

1. Construye las clases de la imagen anterior con características de herencia, define los métodos y atributos que consideres para cada clase
(relación padre-hijo).
2. Otorga la funcionalidad necesaria a tus clases.
3. Integra un documento en el cual muestres las capturas de pantalla de cada uno de los pasos de este proceso.
4. Al concluir tu programa, empaca todo tu proyecto en un archivo comprimido; incluye el documento con las capturas de pantalla del
procedimiento realizado.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DPRN2_U2_A2
{
public class MiembroCU
{

protected string nombrePersona;


protected string apellidoPersona;
protected int edadPersona;

/*Propiedades*/
public string Nombre {

get { return nombrePersona; }


set { nombrePersona = value; }

public string Apellido


{

get { return apellidoPersona; }


set { apellidoPersona = value; }

public int Edad


{

get { return edadPersona; }


set { edadPersona = value; }

/*elementos de construcción*/
public MiembroCU ()
{
}
public MiembroCU (string nombre, string apellido, int edad)
{

Nombre = nombre;
Apellido = apellido;
Edad = edad;

/*elementos de destrucción */
~MiembroCU ()
{

}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DPRN2_U2_A2
{
public class Empleado: MiembroCU
{

private int cantidadAnos;


private double salario;
private string area;

public int CantidadAnos


{
get
{
return cantidadAnos;
}

set
{
cantidadAnos = value;
}
}

public double Salario


{
get
{
return salario;
}

set
{
salario = value;
}
}

public string Area


{
get
{
return area;
}
set
{
area = value;
}
}
/*elementos de construcción*/
public Empleado()
{
}

public Empleado (string nombre, string apellido, int edad, int cantidadAnos, double salario, string area):
base(nombre,apellido,edad) /*características de herencia*/
{

this.cantidadAnos = cantidadAnos;
this.salario = salario;
this.area = area;

/*elementos de destrucción */
~Empleado()
{

}
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DPRN2_U2_A2
{
class Docente:Empleado
{

private string materia;

public string Materia


{
get
{
return materia;
}

set
{
materia = value;
}
}

/*elementos de construcción*/
public Docente()
{
}
public Docente(string nombre, string apellido, int edad, int cantidadAnos, double salario, string area, string materia) :
base(nombre, apellido, edad, cantidadAnos, salario, area) /*características de herencia*/
{

this.materia = materia;
}
/*elementos de destrucción */
~Docente()
{

}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DPRN2_U2_A2
{
class Alumno : MiembroCU
{

private string salon;


private string turno;
private string grado;
private string status;
public string Salon
{
get
{
return salon;
}

set
{
salon = value;
}
}

public string Turno


{
get
{
return turno;
}

set
{
turno = value;
}
}

public string Grado


{
get
{
return grado;
}

set
{
grado = value;
}
}

public string Status


{
get
{
return status;
}

set
{
status = value;
}
}
/*elementos de construcción*/
public Alumno()
{
}
public Alumno(string nombre, string apellido, int edad, string salon, string turno, string grado, string status) :
base(nombre,apellido,edad) /*características de herencia*/
{

this.salon = salon;
this.turno = turno;
this.grado = grado;
this.status = status;

}
/*elementos de destrucción */
~Alumno()
{

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DPRN2_U2_A2_FEES
{
class Exalumno: MiembroCU
{

private string generacion;


private string graduado;

public string Generacion


{
get
{
return generacion;
}

set
{
generacion = value;
}
}

public string Graduado


{
get
{
return graduado;
}

set
{

graduado = value;
}
}

/*elementos de construcción*/
public Exalumno()
{
}

public Exalumno(string nombre, string apellido, int edad, string generacion, string graduado) : base(nombre,apellido,edad)
/*características de herencia*/
{

this.generacion = generacion;
this.graduado = graduado;

}
/*elementos de destrucción */
~Exalumno()
{

}
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DPRN2_U2_A2_FEES
{
class Program
{

static void Main(string[] args)


{

int opcion;
Console.WriteLine("Que es lo que quiere ingresar? ");
Console.WriteLine("OPCION = 1 Empleado ");
Console.WriteLine("OPCION = 2 Alumno ");

opcion = Convert.ToInt32(Console.ReadLine());

MiembroCU obj = new MiembroCU();


Empleado obj2 = new Empleado();
Docente obj3 = new Docente();
Alumno obj4 = new Alumno();
Exalumno obj5 = new Exalumno();

switch (opcion)

case 1:

Console.WriteLine("Ingrese el nombre del Empleado");


obj.Nombre = Console.ReadLine();
Console.WriteLine("Ingrese el apellido del Empleado");
obj.Apellido = Console.ReadLine();
Console.WriteLine("Ingrese la edad del Empleado");
obj.Edad = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Ingrese la cantidad de años que ha trabajado");


obj2.CantidadAnos = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Ingrese el area a la que pertenece (Docente o Administrativo)");
obj2.Area = Console.ReadLine();

if (obj2.Area == "Docente" || obj2.Area == "DOCENTE" || obj2.Area == "docente")


{

Console.WriteLine("Ingrese la materia que imparte");


obj3.Materia = Console.ReadLine();
Console.WriteLine("Ingrese el salario del docente");
obj2.Salario = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Nombre del Docente: " + obj.Nombre);


Console.WriteLine("Apellido del Docente: " + obj.Apellido);
Console.WriteLine("Edad del Docente: " + obj.Edad);
Console.WriteLine("Cantidad de años trabajados: " + obj2.CantidadAnos);
Console.WriteLine("Materia que imparte: " + obj3.Materia);
Console.WriteLine("Salario del docente: " + obj3.Salario + " Pesos " + " Quincenales ");

else
{

Console.WriteLine("Ingrese el salario del empleado");


obj2.Salario = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Nombre del Empleado: " + obj.Nombre);
Console.WriteLine("Apellido del Empleado: " + obj.Apellido);
Console.WriteLine("Edad del Empleado: " + obj.Edad);
Console.WriteLine("Cantidad de años trabajados: " + obj2.CantidadAnos);
Console.WriteLine("Salario del Empleado: " + obj2.Salario);

break;

case 2:

{
Console.WriteLine("Ingrese el nombre del Alumno");
obj.Nombre = Console.ReadLine();
Console.WriteLine("Ingrese el apellido del Alumno");
obj.Apellido = Console.ReadLine();
Console.WriteLine("Ingrese la edad del Alumno");
obj.Edad = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Ingrese el estatus del alumno (Regular o ExAlumno)");


obj4.Status = Console.ReadLine();

if (obj4.Status == "Alumno" || obj4.Status == "ALUMNO" || obj4.Status == "alumno")


{

Console.WriteLine("Ingrese el grado actual del Alumno");


obj4.Grado = Console.ReadLine();
Console.WriteLine("Ingrese el salon del Alumno");
obj4.Salon = Console.ReadLine();
Console.WriteLine("Ingrese el turno del Alumno (matutino o vespertino)");
obj4.Turno = Console.ReadLine();

Console.WriteLine("Nombre del Alumno: " + obj.Nombre);


Console.WriteLine("Apellido del Alumno: " + obj.Apellido);
Console.WriteLine("Edad del Alumno: " + obj.Edad);
Console.WriteLine("Grado actual del Alumno: " + obj4.Grado);
Console.WriteLine("Salon del Alumno: " + obj4.Salon);
Console.WriteLine("Turno del Alumno: " + obj4.Turno);

else

{
Console.WriteLine("Ingrese la generacion del Exalumno");
obj5.Generacion = Console.ReadLine();
Console.WriteLine("Se graduo (SI o NO?)");
obj5.Graduado = Console.ReadLine();

Console.WriteLine("Nombre del Exalumno: " + obj.Nombre);


Console.WriteLine("Apellido del Exalumno: " + obj.Apellido);

if (obj5.Graduado == "SI" || obj5.Graduado == "Si" || obj5.Graduado == "si")

Console.WriteLine("El alumno se graduo");

}
else
{

Console.WriteLine("El alumno no se graduo");

}
}

break;

}
}
Console.ReadKey();
}
}
}

El programa captura la información del integrante de la comunidad universitaria ya sea empleado (docente o administrativo), alumno o exalumno, los datos
principales de la jerarquía son asignados por la clase padre MiembroCU (nombre apellido y edad) , de ahí se derivan las demás clases según sea el caso y
cada una aporta diferente información ya sea el salario (docentes o administrativos), grado (alumnos) o (generación) exalumnos:
FUENTES:

Bisbé, R. (2014). Clases Abstractas. abril 25, 2017, de rlbisbe.net

Sitio web: http://rlbisbe.net/2014/02/17/clases-abstractas-vs-interfaces-metodos-de-extension-en-c/

Ruiz, A. (2014). C# Interface. abril 25, 2017, de blogspot.mx

Sitio web: http://alejandroruizvarela.blogspot.mx/2014/04/c-interface-ejemplo-sencillo.html

Ortiz, J. (2014). Clases Selladas. abril 25, 2017, de blogspot.mx

Sitio web: https://ortizol.blogspot.mx/2014/01/clases-y-funciones-selladas-en-c.html

Microsoft. (S/A). Herencia. abril 25, 2017, de Microsoft

Sitio web: https://msdn.microsoft.com/es-es/library/ms173149.aspx

También podría gustarte