using System;

public class T04P04
{
    public static void Main(string[] args)
    {
        Empleado[] empleados = {
            new EmpleadoFijo("Diana", 11013, 15000),
            new EmpleadoFijo("Sayu", 11032, 18000),
            new EmpleadoFijo("Angel", 11055, 16000),
            new EmpleadoFijo("Gael", 11046, 17500),
            new EmpleadoFijo("Wakanda", 11079, 15500),
            new EmpleadoFijo("Zoe", 11018, 19000),
            new EmpleadoFijo("Michell", 11099, 16500),
            new EmpleadoFijo("Axel", 11005, 20000),
            new EmpleadoFijo("Daniel", 11001, 350000),
            new EmpleadoPorHoras("Ivan", 11024, 120, 94),
            new EmpleadoPorHoras("Carlos", 11044, 100, 72),
            new EmpleadoPorHoras("Fernanda", 11021, 110, 80),
            new EmpleadoPorHoras("Joseline", 11072, 95, 100),
            new EmpleadoPorHoras("Meli", 11163, 105, 85),
            new EmpleadoPorHoras("Itza", 11054, 115, 90),
            new EmpleadoPorHoras("Rashel", 11065, 98, 88),
            new EmpleadoPorHoras("Antonio", 11076, 130, 70)
        };

        double totalNomina = 0;
        foreach (Empleado e in empleados)
        {
            Console.WriteLine(e);
            totalNomina += e.CalcularPago();
        }
        Console.WriteLine("...............................................................");
        Console.WriteLine("Dispersion de nomina: $" + totalNomina);
    }
}

abstract class Empleado
{
    private string nombre;
    private int id;

    public Empleado(string nombre, int id)
    {
        this.nombre = nombre;
        this.id = id;
    }

    public string GetNombre() { return nombre; }
    public int GetId() { return id; }

    public abstract double CalcularPago();

    public override string ToString()
    {
        return "ID: " + id + ", Colaborador " + nombre +
               ", Retribucion Economica: $" + CalcularPago();
    }
}

class EmpleadoFijo : Empleado
{
    private double salarioMensual;

    public EmpleadoFijo(string nombre, int id, double salarioMensual)
        : base(nombre, id)
    {
        this.salarioMensual = salarioMensual;
    }

    public override double CalcularPago()
    {
        return salarioMensual;
    }
}

class EmpleadoPorHoras : Empleado
{
    private double pagoHora;
    private int horasTrabajadas;

    public EmpleadoPorHoras(string nombre, int id, double pagoHora, int horasTrabajadas)
        : base(nombre, id)
    {
        this.pagoHora = pagoHora;
        this.horasTrabajadas = horasTrabajadas;
    }

    public override double CalcularPago()
    {
        return pagoHora * horasTrabajadas;
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: