Concetti Chiave
- The program calculates gross pay based on hours worked, with regular pay for up to 40 hours and overtime pay beyond that.
- Input required includes the employee's hourly rate and the number of hours worked in the last week.
- Overtime is paid at 1.5 times the base hourly rate for hours worked beyond 40.
- The program uses a top-down development approach with stepwise refinement to determine and display each employee's salary.
- The loop continues to process each employee’s data until the input for hours worked is -1, signaling the end of input.
Calcolo paga lorda
/*
* 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
* se ore_lavoro è minore o uguale 40:
* salario = ore_lavoro
* paga_base
* altrimenti
* ore_extra = ore_lavoro - 40
* salario = (ore_extra
* 1.5 + 40)
* paga_base
* visualizzare salario
* richiedere ore_lavoro
* fine programma
**/
/* IMPLEMENTAZIONE */
#includeint main(void) {
int ore_lavoro, ore_extra;
float salario, paga_base;// Richiedere il numero di ore lavorate
printf("\nEnter # of hours worked (-1 to end): ");
scanf("%d", &ore_lavoro);// Continuare fino a quando l'utente inserisce -1
while (ore_lavoro != -1) {
// Richiedere il salario base dell'impiegato
printf("Enter hourly rate of the worker ($00.00): ");
scanf("%f", &paga_base);// Calcolare il salario in base alle ore lavorate
if (ore_lavoro salario = ore_lavoro * paga_base; // Salario standard per 40 ore o meno
} else {
ore_extra = ore_lavoro - 40; // Calcolare le ore extra
salario = (ore_extra * 1.5 + 40) * paga_base; // Salario per le ore extra
}// Visualizzare il salario
printf("Salary is $%.2f\n", salario);// Richiedere di nuovo il numero di ore lavorate
printf("\nEnter # of hours worked (-1 to end): ");
scanf("%d", &ore_lavoro);
}return 0;
}
Domande da interrogazione
- Qual è lo scopo principale del programma descritto nel testo?
- Come viene calcolata la paga lorda se un impiegato lavora più di 40 ore?
- Quali input richiede il programma per calcolare la paga lorda?
Il programma è progettato per calcolare la paga lorda di ogni impiegato in base al numero di ore lavorate, considerando un salario orario di base e un pagamento maggiorato per le ore extra.
Se un impiegato lavora più di 40 ore, la paga lorda viene calcolata moltiplicando il salario di base per 40 ore e aggiungendo una volta e mezza il salario di base per ogni ora extra lavorata.
Il programma richiede come input il numero di ore lavorate e il salario orario di base di ogni impiegato per calcolare la paga lorda.