public Trabalhador(string nome, NivelTrabalhador nivel, double salarioBase, Departamento departamento) { Nome = nome; Nivel = nivel; SalarioBase = salarioBase; Departamento = departamento; }
//construtor com argumentos, lembrando que não podemos adicionar lista aos argumentos. ela começa vazia //depois que irá adicionar os dados a ela, então por via de regra, não é usual. public Trabalhador(string nome, NivelTrabalhador nivel, double basesalarial, Departamento departamento) { Nome = nome; Nivel = nivel; BaseSalarial = basesalarial; Departamento = departamento; }
static void Main(string[] args) { //Dados do Departamento de trabalho Console.Write("DEPARTAMENTO: "); string nomeDepartamento = Console.ReadLine(); //Dados do Trabalhador Console.WriteLine("DADOS DO TRABALHADOR"); Console.Write("Nome: "); string nomeTrabalhador = Console.ReadLine(); //Converter string para o tipo de Enum criado Console.Write("Nível: "); NivelTrabalhador nivelTrabalhador = Enum.Parse <NivelTrabalhador>(Console.ReadLine()); Console.Write("Salário-base: "); double salarioBase = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); //Instanciação de objetos para preenchimento dos dados Departamento departamento = new Departamento(nomeDepartamento); Trabalhador trabalhador = new Trabalhador(nomeTrabalhador, nivelTrabalhador, salarioBase, departamento); //Adicionando contratos Console.Write("Quantos contratos deseja cadastrar para o trabalhador? "); int numeroContratos = int.Parse(Console.ReadLine()); Console.WriteLine("DADOS DO CONTRATO"); for (int i = 0; i < numeroContratos; i++) { Console.WriteLine(); Console.Write($"Contrato número #{i + 1}: "); Console.Write("Data(DD/MM/YYYY): "); DateTime dataContrato = DateTime.Parse(Console.ReadLine()); Console.Write("Valor cobrado por Hora: "); double valorPorHora = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Duração em horas do contrato: "); int duracaoContrato = int.Parse(Console.ReadLine()); HoraContratada contrato = new HoraContratada(dataContrato, valorPorHora, duracaoContrato); //Adicionando o contrato aos contratos do Trabalhador em questão trabalhador.AdicionarContrato(contrato); } Console.WriteLine(); Console.WriteLine("CÁLCULO DE GANHO DO TRABALHADOR EM UM DADO MÊS E ANO"); Console.Write("Data(MM/YYYY): "); string mesAno = Console.ReadLine(); int mes = int.Parse(mesAno.Substring(0, 2)); //recorta da posição 0 dois caracteres. No caso a posição 0 e 1 (mês) int ano = int.Parse(mesAno.Substring(3)); //corta da posição 3 em diante (ano) Console.WriteLine(); Console.WriteLine("Resultado: "); Console.WriteLine("Nome: " + trabalhador.Nome); Console.WriteLine("Departamento: " + trabalhador.Departamento.Nome); Console.WriteLine("Ganho " + "no mês e ano " + mesAno + ": " + "R$ " + trabalhador.GanhoAnoMes(mes, ano).ToString("F2", CultureInfo.InvariantCulture)); }
static void Main(string[] args) { //inserindo os dados do trabalhador Console.Write("Digite o Nome do Departamento: "); string nomeDep = Console.ReadLine(); Console.WriteLine("Entre com os dados do Trabalhador: "); Console.Write("Nome: "); string nome = Console.ReadLine(); Console.Write("Qual o Nível do trabalhor, Junior/Pleno/Senior: "); //aqui precisamos converter Enum para string, usando os parametros do projeto tipo netcore. NivelTrabalhador nivel = Enum.Parse <NivelTrabalhador>(Console.ReadLine()); //caso quisessemos converter pelo projeto do tipo netframework faziamos a opção abaixo: //NivelTrabalhador nivel2 = (NivelTrabalhador)Enum.Parse(typeof(NivelTrabalhador), Console.ReadLine()); Console.Write("Base Salarial do Funcionário: "); double baseSalario = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); //instanciando as classes e inserindo os atributos que o usuário digitou Departamento dep = new Departamento(nomeDep); Trabalhador trab = new Trabalhador(nome, nivel, baseSalario, dep); //Fazendo os Contratos. Console.Write("Quantos Contratos para esse Trabalhador? "); int qntContrato = int.Parse(Console.ReadLine()); //fazendo um for de acordo com a quantidade de contratos for (int i = 1; i <= qntContrato; i++) { Console.WriteLine($"Entre com os dados do contrato número {i}: "); Console.Write($"Data do Contrato número {i} (DD/MM/YYYY): "); DateTime data = DateTime.Parse(Console.ReadLine()); Console.Write($"Valor por Hora do Contrato número {i} (00.00): "); double valorHora = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write($"Duração em Horas do Contrato número {i} (00): "); int duracao = int.Parse(Console.ReadLine()); //agora instanciaremos o contrato dentro do for passando os dados que foram inseridos acima HorasContratadas contrato = new HorasContratadas(data, valorHora, duracao); //agora iremos adicionar o contrato acima dentro do contrato do trabalhador. trab.AdicionarContrato(contrato); } Console.WriteLine(); Console.Write("Entre com o mês e ano para calcular o Ganho (MM/YYYY): "); string mesEAno = Console.ReadLine(); //agora iremos recortar o mes e o ano digitado acima. //utilizando o metodo Substring iremos pegar a string que começa no 0 e termina no 2, e converter em int int mes = int.Parse(mesEAno.Substring(0, 2)); //e depois pegamos o ano que inicia no 3 e vai até o final da string, e converter em int também int ano = int.Parse(mesEAno.Substring(3)); Console.WriteLine("Nome: " + trab.Nome); //repare que aqui estamos navegando entre os objetos para buscar o nome do departamento. Console.WriteLine("Nome: " + trab.Departamento.Nome); //aqui estamos navegando dentro do trab, e chamando o metodo Ganho, colocando como valor o mes e o ano. Console.WriteLine("Ganho no mês de " + mesEAno + ", é de : " + trab.Ganho(mes, ano)); }
static void Main(string[] args) { Console.WriteLine("Digite o nome do departamento"); string Depart = Console.ReadLine(); Departamento depto = new Departamento(Depart); Console.WriteLine("Digite as informações do trabalhador"); Console.WriteLine("Nome.:"); string nome = Console.ReadLine(); Console.WriteLine("Digite o nível do Funcionário(Junior | NivelMedio | Senior)"); NivelTrabalhador nivel = Enum.Parse <NivelTrabalhador>(Console.ReadLine()); Console.WriteLine("Digite o salário Base do funcionário"); double salBase = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Trabalhador trabalhador = new Trabalhador(nome, nivel, salBase, depto); Console.WriteLine("Quantos contratos para este trabalhador ?"); int nContrato = int.Parse(Console.ReadLine()); for (int i = 0; i < nContrato; i++) { Console.WriteLine("Entre com os dados do contrato .:" + i); Console.WriteLine("Data do contrato em (DD/MM/YYYY)"); DateTime data = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Digite o valor pago por hora neste contrato"); double valorHora = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.WriteLine("Digite a quantidade de horas"); int qtdHoras = int.Parse(Console.ReadLine()); // Após coletar os dados do contrato devemos entao instanciar os contratos HoraContrato contrato = new HoraContrato(data, valorHora, qtdHoras); // Adicionar os contratos ao trabalhador trabalhador.AddContrato(contrato); } Console.WriteLine("Entre com o mês e ano para calcular o valor recebido do trabalhador no período (MM/YYYY) )"); string mesAno = Console.ReadLine(); //string[] mesAnoAux = mesAno.Split("/"); int mes = int.Parse(mesAno.Substring(0, 2)); // pegar a string mesAno recortar a partir da posição 0 dois caracteres int ano = int.Parse(mesAno.Substring(3)); // Imprimir os dados do trbalhador Console.WriteLine("Nome .: " + trabalhador.Nome); Console.WriteLine("Departamento.:" + trabalhador.Departamento.Nome); Console.WriteLine("Valor recebido.: " + mesAno + " : " + trabalhador.Ganho(ano, mes).ToString("F2"), CultureInfo.InvariantCulture); }
static void Main(string[] args) { //Entrada de dados: Console.Write("Entre com o nome do departamento: "); Departamento departamento = new Departamento(Console.ReadLine()); Console.WriteLine("Entre com os dados do trabalhador: "); Console.Write("Nome: "); string nome = Console.ReadLine(); Console.Write("Nível (Junior/Pleno/Senior): "); NivelTrabalhador nivel = (NivelTrabalhador)Enum.Parse(typeof(NivelTrabalhador), Console.ReadLine()); // Convertendo a string para Enum Console.Write("Salario base: "); double salarioBase = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Trabalhador trabalhador1 = new Trabalhador(nome, nivel, salarioBase, departamento); Console.Write("Quantos contratos tem esse trabalhador: "); int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { Console.WriteLine($"Entre com os dados do contrato #{(i + 1)}"); Console.Write("Data (DD/MM/YYY): "); DateTime date = DateTime.Parse(Console.ReadLine()); Console.Write("Valor por hora: "); double valorHora = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Duração (Horas): "); int horas = int.Parse(Console.ReadLine()); trabalhador1.Contrato.Add(new ContratoDeHoras(date, valorHora, horas)); Console.WriteLine(); } Console.Write("Entre com o mes e o ano para calcular a renda (MM/YYYY): "); DateTime dateRenda = DateTime.Parse(Console.ReadLine()); Console.WriteLine(); Console.WriteLine("nome: " + trabalhador1.Nome); Console.WriteLine("Departamento: " + trabalhador1.Departamento.Nome); Console.WriteLine($"Renda de {dateRenda.ToString("MM/yyyy")}: " + $"R$ {trabalhador1.Renda(dateRenda.Year, dateRenda.Month).ToString("F2", CultureInfo.InvariantCulture)}"); Console.ReadLine(); }
static void Main(string[] args) { Console.Write("Enter department's name: "); string nomeDepartamento = Console.ReadLine(); Console.WriteLine("Enter worker data: "); Console.Write("Name: "); string nomeTrabalhador = Console.ReadLine(); Console.Write("Level (Junior/MidLevel/Senior): "); NivelTrabalhador nivel = Enum.Parse <NivelTrabalhador>(Console.ReadLine()); Console.Write("Base salary: "); double salarioBase = double.Parse(Console.ReadLine()); //Instanciando classe departamento e atribuindo parameto. Departamento dep = new Departamento(nomeDepartamento); //Instanciando Classe trabalhador e atribuindo parametros. Trabalhador trabalhador = new Trabalhador(nomeTrabalhador, nivel, salarioBase, dep); Console.Write("How many contracts to this worker? "); int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { Console.WriteLine("Enter #{0} contract data:", (i + 1)); Console.Write("Date (DD/MM/YYYY): "); DateTime data = DateTime.Parse(Console.ReadLine()); Console.Write("Value per hour: "); double valorPorHora = double.Parse(Console.ReadLine()); Console.Write("Duration (hours): "); int horas = int.Parse(Console.ReadLine()); //Instanciando Classe contrato e atribuindo parametros. ContratoDeHora contrato = new ContratoDeHora(data, valorPorHora, horas); //Adicionando contrato ao trabalhador. trabalhador.AddContrato(contrato); } Console.Write("\n\nEnter month and year to calculate income (MM/YYYY): "); string mesEano = Console.ReadLine(); int mes = int.Parse(mesEano.Substring(0, 2)); int ano = int.Parse(mesEano.Substring(3)); Console.WriteLine("Name: " + trabalhador.Nome); Console.WriteLine("Department: " + trabalhador.Departamento.Nome); Console.WriteLine("Income for " + mesEano + ": " + trabalhador.Ganho(ano, mes)); }
static void Main(string[] args) { Console.WriteLine("Entre com o nome do departamento: "); string departamento = Console.ReadLine(); Console.WriteLine("Data de trabalho: "); Console.Write("Nome: "); string nome = Console.ReadLine(); Console.Write("Nivel: "); NivelTrabalhador Nivel = Enum.Parse <NivelTrabalhador>(Console.ReadLine()); Console.WriteLine("Base salarial: "); double basesalario = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Departamento dept = new Departamento(departamento); Trabalhador trab = new Trabalhador(nome, Nivel, basesalario, dept); Console.WriteLine("Quanto cadastro serão realizados: "); int qtd = int.Parse(Console.ReadLine()); for (int i = 1; i <= qtd; i++) { Console.WriteLine("Entre com os dados do contrato #" + i); Console.WriteLine("Data (DD/MM/YYY): "); DateTime datacontrato = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Valor por hora: "); double hora = double.Parse(Console.ReadLine()); Console.WriteLine("Quantidade de horas: "); int qtdhoras = int.Parse(Console.ReadLine()); HorasContrato horas = new HorasContrato(datacontrato, hora, qtdhoras); trab.AdicionarContrato(horas); } Console.WriteLine("Entre com o mês/ano para calcular: "); string mesano = Console.ReadLine(); int mes = int.Parse(mesano.Substring(0, 2)); int ano = int.Parse(mesano.Substring(3)); Console.WriteLine("Nome: " + trab.Nome); Console.WriteLine("Departamento: " + trab.Departamento.Setor); Console.WriteLine("Valor: " + trab.GanhoTotal(ano, mes)); }