Programmazione

  • Materia: Programmazione
  • Visto: 2647
  • Data: 07/05/2008
  • Di: Redazione StudentVille.it

Linguaggio C: programma calcolo paga lorda (v. b)

esercizio svolto o teoria

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
 *         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 */
#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);
		if (ore_lavoro <= 40)
			salario = ore_lavoro * paga_base;
		else {
			ore_extra = ore_lavoro - 40;
			salario = (ore_extra * 1.5 + 40) * paga_base;
		}
		printf("Salary is $%.2f\n", salario);
		printf("\nEnter # of hours worked (-1 to end): ");
		scanf("%d", &ore_lavoro);
	}
	return (0);
}