0
There’s a error of arguments provided in 3 constructors of my abstract class code, where the method get() must be written in the child classes of the employee class which are the classes Functioniomensalist and Employee.
Image for better visualization and understanding of the code diagram
The following constructors of my code to be analyzed are:
- 1 Constructor in Employee Class (Line 10, affects line 62).
- 1 Constructor in the Working Classlist (Line 25, affects line 63).
- 1 Employee Class Constructor (Line 44, affects line 64).
Current code
using static System.Console;
public class Funcionario
{
public int numeroRegistro { get; set; }
public string nome { get; set; }
public decimal Complemento { get; set; }
// 1º construtor
public Funcionario (int numeroRegistro)
{
this.numeroRegistro = numeroRegistro;
}
// Deve retornar o valor de zero
public virtual decimal obterSalarioBruto() => 0;
public string Imprimir1() => $"Número de registro: {numeroRegistro} | Nome: {nome}";
}
public class FuncionarioMensalista : Funcionario
{
public decimal valorSalarioMinimo { get; set; }
public decimal quantSalarioMinimo { get; set; }
// 2º construtor
public FuncionarioMensalista(int numeroRegistro) : base(numeroRegistro)
{
}
// valor do salario mínimo multiplicado pela quantidade de salários mínimos.
public virtual decimal obterSalarioBruto()
{
decimal resultado1 = (valorSalarioMinimo * quantSalarioMinimo) + base.Complemento;
return resultado1;
}
public string Imprimir2() => $"Salário mínimo: {valorSalarioMinimo.ToString("C")} | Quantidade de salário mínimo: {quantSalarioMinimo.ToString("C")}";
}
public class FuncionarioHorista : Funcionario
{
public decimal valorHora { get; set; }
public decimal horasTrabalhadas { get; set; }
// 3º construtor
public FuncionarioHorista(int numeroRegistro) : base(numeroRegistro)
{
}
// valor da hora trabalhada multiplicado pela quantidade de horas
public virtual decimal obterSalarioBruto()
{
decimal resultado2 = (valorHora * horasTrabalhadas) + base.Complemento;
return resultado2;
}
public string Imprimir3() => $"Valor das horas: {valorHora.ToString("C")} | Horas trabalhadas: {horasTrabalhadas.ToString("C")}";
}
public class Imprimir
{
static int Main(string[] args)
{
Funcionario funcionario = new Funcionario(); // Linha afetada
FuncionarioMensalista mensalista = new FuncionarioMensalista(); // Linha afetada
FuncionarioHorista horista = new FuncionarioHorista(); // Linha afetada
Write("Digite o nome do funcionário: ");
funcionario.nome = ReadLine();
Write($"Digite o valor do registro de {funcionario.nome}: ");
if (!int.TryParse(ReadLine(), out int digiteregistro)) return 1;
funcionario.numeroRegistro = digiteregistro;
WriteLine();
Write("Digite o valor do salário mínimo: ");
if (!decimal.TryParse(ReadLine(), out decimal digitesalario)) return 1;
mensalista.valorSalarioMinimo = digitesalario;
Write("Digite a quantidade de salários mínimos: ");
if (!decimal.TryParse(ReadLine(), out decimal digitequantidade)) return 1;
mensalista.quantSalarioMinimo = digitequantidade;
WriteLine();
Write("Digite o valor da hora: ");
if (!decimal.TryParse(ReadLine(), out decimal digitehora)) return 1;
horista.valorHora = digitehora;
Write("Digite a quantidade de horas trabalhadas: ");
if (!decimal.TryParse(ReadLine(), out decimal digitehorastrabalhadas)) return 1;
horista.horasTrabalhadas = digitehorastrabalhadas;
WriteLine();
WriteLine(funcionario.Imprimir1());
WriteLine(mensalista.Imprimir2());
WriteLine(horista.Imprimir3());
return 0;
}
}
Someone explain to me why the -1?
– Marco Giovanni