Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Resolução

Essa foi a minha resolução para essa atividade.

// Funcionario.cs

public abstract class Funcionario
    {
        public string Nome { get; set; }
        public string Cpf { get; private set; }
        public double Salario { get; protected set; }
        public static int TotalFuncionarios { get; private set; }

        public Funcionario(string cpf, double salario)
        {
            this.Cpf = cpf;
            this.Salario = salario;
            TotalFuncionarios++;
        }

    public abstract void AumentarSalario();

}

//IBonificacao.cs

    public interface IBonificacao
    {
        public double GetBonificacao();
    }

//GerenciadorDeBonificacao.cs

public class GerenciadorDeBonificacao
{
    public double TotalDeBonficacao { get; private set; }

    public void Registrar(IBonificacao bonificacao)
    {
        this.TotalDeBonficacao += bonificacao.GetBonificacao();
    }
}

//Auxiliar.cs

  public class Auxiliar : Funcionario, IBonificacao
    {
        public Auxiliar(string cpf) : base(cpf, 2000)
        {
        }

        public override void AumentarSalario()
        {
            this.Salario *= 1.1;
        }

        public double GetBonificacao()
        {
            return this.Salario * 0.2;
        }
    }

//Designer.cs

public class Designer : Funcionario, IBonificacao
{
    public Designer(string cpf) : base(cpf, 3000)
    {
    }

    public double GetBonificacao()
    {
        return this.Salario * 0.17;
    }


    public override void AumentarSalario()
    {
        this.Salario *= 1.11;
    }
}

//Diretor.cs

   public class Diretor : FuncionarioAutenticavel, IBonificacao
    {

        public Diretor(string cpf) : base(cpf, 5000)
        {
        }

        public double GetBonificacao()
        {
            return this.Salario * 0.5; /*+ base.GetBonificacao()*/;
        }

        public override void AumentarSalario()
        {
            // ou this.Salario *= 1.15;
            this.Salario += this.Salario * 0.15;
        }
    }

// GerenteDeContas.cs

   public class GerenteDeContas : FuncionarioAutenticavel, IBonificacao
{


    public GerenteDeContas(string cpf) : base(cpf, 4000)
    {
    }



    public double GetBonificacao()
    {
        return this.Salario * 0.25;
    }


    public override void AumentarSalario()
    {
        this.Salario *= 1.05;
    }

}

//Program.cs

 TestarBofinicacao();
void TestarBofinicacao()
{
    Auxiliar camila = new Auxiliar("123.456-00");
    camila.Nome = "Camila Silva";
    GerenciadorDeBonificacao gerenciador = new GerenciadorDeBonificacao();
    gerenciador.Registrar(camila);


    Diretor lili = new Diretor("456.789-00");
    lili.Nome = "Lili Silveira";
    gerenciador.Registrar(lili);

    Console.WriteLine(gerenciador.TotalDeBonficacao);

}
1 resposta
solução!

Olá Camila, tudo bom?

Parabéns pela resolução da atividade, e sua codificação ficou bem bacana. Continue estudando e focada!

Abraços e bons estudos!