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

Resultado diferente

Boa tarde, ao compilar o código meu código demonstra o seguinte resultado

Bonificação de uma referencia de Diretor: 8250
Bonificação de uma referencia de Funcionario: 8250
Carlos
200
Roberto
8250
Total de bonificações: 8450

Não entendi o motivo da alteração do valor, alguém poderia explicar? Segue o código abaixo

 static void Main(string[] args)
        {
            GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();

            Funcionario carlos = new Funcionario
            {
                Nome = "Carlos",
                CPF = " 12589070705",
                Salario = 2000
            };
            gerenciador.Registrar(carlos);

            Diretor roberto = new Diretor
            {
                Nome = "Roberto",
                CPF = " 70705780705",
                Salario = 7500
            };
            Funcionario robertoTeste = roberto;

            Console.WriteLine("Bonificação de uma referencia de Diretor: " + roberto.GetBonificacao());
            Console.WriteLine("Bonificação de uma referencia de Funcionario: " + robertoTeste.GetBonificacao());


            gerenciador.Registrar(roberto);

            Console.WriteLine(carlos.Nome);
            Console.WriteLine(carlos.GetBonificacao());

            Console.WriteLine(roberto.Nome);
            Console.WriteLine(roberto.GetBonificacao());

            Console.WriteLine("Total de bonificações: " + gerenciador.GetTotalBonificacao());

            Console.ReadLine();
        }

Classe Funcionario

public class Funcionario
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public double Salario { get; set; }
        public virtual double GetBonificacao()
        {
            return Salario * 0.10;
        }
    }
}

Classe GerenciadorBonificacao

  public class GerenciadorBonificacao
    {
        private double _totalBonificacao;

        public void Registrar(Funcionario funcionario)
        {
            _totalBonificacao += funcionario.GetBonificacao();
        }
        public double GetTotalBonificacao()
        {
            return _totalBonificacao;
        }

E por último Classe Diretor

  public class GerenciadorBonificacao
    {
        private double _totalBonificacao;

        public void Registrar(Funcionario funcionario)
        {
            _totalBonificacao += funcionario.GetBonificacao();
        }
        public double GetTotalBonificacao()
        {
            return _totalBonificacao;
        }
1 resposta
solução!

Olá Fernando, tudo bem com você?

Você acabou duplicando o GerenciadorBonificacao ao invés de copiar a classe Diretor

Mas em relação ao seu erro, eu não estou vendo diferença nos valores:

  • Você definiu o Diretor Roberto com salário de 7500e por isso a bonificação dele vai ser de 8250 (7500 + 750)

  • Carlos com salário de 2000 e por ser um funcionário terá bonificação de 200

  • Registrado as 2 bonificações temos 8250 + 200 = 8450

A única diferença acabou sendo nos valores, o instrutor utilizou para o Diretor o valor de salário 5000 e ai temos o mesmo comportamento que o seu, bonificação de 5500 ( 5000 + 500) e ao somar os valores registados tivemos 5500 + 200 = 5700

Caso não tenha sido isso o problema, você poderia explicar novamente? :)

Abraços e Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software