A cura di: Administrator
/*
* Sviluppate un programma C che determini la paga lorda per ognuno
* dei diversi impiegati. L'azienda, per le prime 40 ore lavorate da
* ogni impiegato, paga il "salario orario di base", mentre per tutte
* le ore lavorate in aggiunta alle 40, elargisce "una volta e mezza il
* salario di base". Vi sono stati forniti: una lista degli impiegati
* dell'azienda, il numero di ore lavorate da ogni impiegato nell'ultima
* settimana e il salario orario di base di ogni impiegato.
* Il vostro programma dovrà prendere in input, per ogni impiegato,
* le suddette informazioni e dovrà quindi determinare e visualizzare
* la paga lorda di ognuno di loro.
*
*/
/*
* SVILUPPO programma mediante processo top-down per raffinamenti
* successivi.
*
* Top: calcolare la paga lorda di ogni impiegato in base al numero
* di ore di lavoro.
*
* R1: richiedere il salario base dell'impiegato, e il numero di
* ore di lavoro. Se il numero di ore di lavoro è minore o
* uguale a 40, il salario è uguale a paga_base * ore di lavoro,
* altrimenti, il salario è uguale alla paga_base * 40 più una
* volta e mezza il salario base per ogni ora in più (extra);
* visualizzare il salario dell'impiegato.
*
* R2: richiedere ore_lavoro;
* finché ore_lavoro diverso -1:
* richiedere paga_base
* salario = ore_lavoro * paga_base
* se ore_lavoro maggiore di 40
* ore_extra = ore_lavoro - 40
* salario = salario + ore_extra * 0.5 * paga_base
* visualizzare salario
* richiedere ore_lavoro
* fine programma
*
*/
/* IMPLEMENTAZIONE */
#include <stdio.h>
int
main(void)
{
int ore_lavoro, ore_extra;
float salario, paga_base;
printf("\nEnter # of hours worked (-1 to end): ");
scanf("%d", &ore_lavoro);
while (ore_lavoro != -1) {
printf("Enter hourly rate of the worker ($00.00): ");
scanf("%f", &paga_base);
salario = ore_lavoro * paga_base;
if (ore_lavoro > 40) {
ore_extra = ore_lavoro - 40;
salario = salario + ore_extra * .5 * paga_base;
}
printf("Salary is $%.2f\n", salario);
printf("\nEnter # of hours worked (-1 to end): ");
scanf("%d", &ore_lavoro);
}
return (0);
}