/*
8. Faça um programa que leia as seguintes informações dos funcionários de uma empresa: matrícula do funcionário, salário bruto, quantidade de horas extras, quantidade de
horas em atraso, quantidade de dependentes com auxílio creche e tempo de serviço na empresa.
Considerando-se que:
a) o funcionário trabalha 40 horas semanais e o mês tem 4 semanas;
b) o auxílio creche para cada dependente é de R$150,00;
c) o desconto de INSS é 10% do salário bruto;
d) o funcionário tem direito a um bônus de R$50,00 para cada ano de trabalho.
Este programa deverá calacular e mostrar para cada funcionário:
1. valor recebido com horas extras, sabendo-se que a hora extra é 50% maior do que a hora normal trabalhada;
2. o desconto com atraso;
3. o valor total a receber com auxílio creche;
4. o valor do bônus recebido por tempo de serviço;
5. o salário líquido do funcionário.
(Termino da repetição com saída "Deseja Continuar (S/N)?")
*/
#include <stdio.h>
void lerMatricula(int *matricula) {
printf("n Matricula: "); scanf("%d", &*matricula);
}
void lerDados(float *salario, int *horasExtras, int *horasAtraso, int *dependentes, int *tempoDeServico) {
printf("\n Salario liquido: "); scanf("%f", &*salario);
printf("\n Horas Extras realizadas: "); scanf("%d", &*horasExtras);
printf("\n Horas de atraso: "); scanf("%d", &*horasAtraso);
printf("\n Quant. Dependentes: "); scanf("%d", &*dependentes);
printf("\n Tempo de serviço: "); scanf("%d", &*tempoDeServico);
printf("\n\n");
}
float calculaINSS(float salario) {
float inssDesconto;
inssDesconto=salario/10;
return(inssDesconto);
}
float calculaBonus(int tempoDeServico) {
float bonus;
bonus = tempoDeServico*50.00;
return(bonus);
}
float calculaAuxilioCreche(int dependentes) {
float valorAuxilio;
valorAuxilio = 150.00*dependentes;
return(valorAuxilio);
}
// Para saber quanto vale a trabalho/hora
float valorHoraTrabalhada (float salario) {
float horaPaga;
horaPaga = salario / 40;
return(horaPaga);
}
float salarioOuDescontoExtra(int horasExtras, int horasAtraso, float horaPaga) {
float horaPagaExtra;
int quantHoraExtra;
quantHoraExtra = horasExtras - horasAtraso;
if (quantHoraExtra >0 ) {
horaPagaExtra = horaPaga+(horaPaga/2);
} else {
horaPagaExtra = -(horaPaga);
}
horaPagaExtra = horaPagaExtra*quantHoraExtra;
return(horaPagaExtra);
}
float SalarioBruto(float bonus, float creche, float valorExtra, float salario) {
float b;
b = bonus + creche + valorExtra + salario;
return(b);
}
void imprimeResultados(float bonusPorTempo, float valorCreche, float valorExtra, float salarioBruto, float inssDesconto, float horaPaga) {
printf("\n Bonus por tempo de serviço: R$ %5.2f", bonusPorTempo);
printf("\n Valor Auxilo creche: R$ %5.2f", valorCreche);
printf("\n Desconto do INSS: R$ %5.2f", inssDesconto);
if (valorExtra>0) {
printf("n Valor recebido por horas extras: R$ %5.2f", valorExtra);
} else {
printf("n Valor descontado por atraso: R$ %5.2f", valorExtra);
}
printf("\n Valor hora paga: %5.2f ", horaPaga);
printf("\n SALARIO BRUTO: R$ %5.2f", salarioBruto);
}
int main() {
int matricula, horasExtras, horasAtraso, dependentes, tempoDeServico;
float salario; // variaveis de entrada
int bonus; //variaveis de saida
float inssDesconto, bonusPorTempo, valorCreche, valorExtra, valorHoraTrabalho, salarioBruto;
do {
lerMatricula(&matricula);
if (matricula==0)
break;
lerDados(&salario, &horasExtras, &horasAtraso, &dependentes, &tempoDeServico);
bonusPorTempo = calculaBonus(tempoDeServico);
valorCreche = calculaAuxilioCreche(dependentes);
valorHoraTrabalho = valorHoraTrabalhada(salario);
valorExtra = salarioOuDescontoExtra(horasExtras, horasAtraso, valorHoraTrabalho);
salarioBruto= SalarioBruto(bonusPorTempo, valorCreche, valorExtra, salario);
inssDesconto = calculaINSS(salarioBruto);
imprimeResultados(bonusPorTempo, valorCreche, valorExtra, salarioBruto, inssDesconto, valorHoraTrabalho);
printf("nn");
} while (matricula !=0);
}
Este artigo foi útil ?
SimNão
Last modified: 11 de setembro de 2019