Question:
14) Faça um algoritmo que receba o horário de entrada e saída (em horas e minutos) de um
funcionário de determinada empresa. Com base nestes horários, defina a quantidade de horas
trabalhadas. Partindo-se da quantidade de horas trabalhadas defina em qual perfil salarial o
funcionário se encontra:
Perfil A - R$ 30 hora —> Trabalha menos que 4 horas por dia;
Perfil B - R$ 70 hora —> Trabalha de 4 horas a 8 horas por dia;
Perfil C - R$ 90 hora —> Trabalha mais do que 8 horas por dia;
O algoritmo deverá apresentar ao usuário o nome do funcionário, a quantidade de horas
trabalhadas, o perfil do funcionário e seu salário diário.
Obs.: O funcionário pode entrar num dia e sair somente no outro. Além disso, a quantidade
máxima de horas que ele poderá trabalhar é de 36 horas.
Acima o exercício que tenho que fazer, mas quando tento criar algumas restrições não consigo, por exemplo, no caso de calcular quantas horas ele trabalhou eu não consigo fazer todos os casos, ou seja, de forma genérica possível, aí o valor das horas trabalhadas fica nulo, ou aparece a mensagem “NaN” enfim. Mandei a parte do código em que parei, fiquei com dúvida também sobre a restrição de entrar em um dia e sair no outro, mas é ruim quando você pensa nos ultimos dias do mês, por exemplo entrou dia 31 e saiu dia 01. Outro problema que estou tentando formular é como armazenar a informação toda e exibir na tela, primeiro pensei em criar um vetor, mas não lembro nada de vetores. E talvez não seja suficiente. Tem também a questão do perfil, porque ele diz no maximo 36 horas e os perfis a, b e c, mas não da uma frequencia, por exemplo uma media de 1 mes ou 1 semana, quer dizer. Que referencia usa para esse perfil, uma unica jornada de trabalho?
Repl link:
https://replit.com/@JoaoLuz3/perfildofuncionario#main.c
#include <stdio.h>
int main(void) {
char nome[61];
int hora_entrada, hora_saida, minutos_entrada, minutos_saida, dia_entrada, dia_saida, mes_entrada, horas_trabalhadas, valor;
printf("Perfil A - R$ 30 hora --->\n Trabalha menos que 4 horas por dia; \nPerfil B - R$ 70 hora --->\n Trabalha de 4 horas a 8 horas por dia; \nPerfil C - R$ 90 hora --->\n Trabalha mais do que 8 horas por dia; \n");
printf("Digite o nome do funcionário:\n");
scanf("%s", nome);
printf("Entre apenas com o valor da hora de entrada:\n");
scanf("%i", &hora_entrada);
printf("Entre apenas com o valor de minutos\n da entrada:\n");
scanf("%i", &minutos_entrada);
printf("Entre apenas com o valor de hora da saida:\n");
scanf("%i", &hora_saida);
printf("Entrar apenas com o dia de entrada:\n");
scanf("%i", &dia_entrada);
printf("Entrar apenas com o mes de entrada:\n");
scanf("%i", &mes_entrada);
printf("Entrar apenas com o dia de saida:\n");
scanf("%i", &dia_saida);
if(dia_entrada>30)
if((dia_saida-dia_entrada)==1)
{
if(hora_entrada>=0 && hora_saida<=12)
{
horas_trabalhadas=hora_saida-hora_entrada;
}
if(hora_entrada>12 && hora_saida<23)
{
horas_trabalhadas=(24-hora_entrada)-(24-hora_saida);
}
if(hora_entrada>12 && 0<=hora_saida<=12)
{
horas_trabalhadas=(24-hora_entrada)+hora_saida;
}
}
if(dia_saida-dia_entrada<1)
{
printf("O funcionário pode entrar num dia\n e sair somente no outro");
}
printf("\nO nome do funcionário é:\n%s", nome);
printf("\nAs horas trabalhadas foram: %f\n", horas_trabalhadas);
return 0;
}