getpay.c (3136B)
1 /* Esercizio 4.28 */ 2 3 #include <stdio.h> 4 5 int main() 6 { 7 int code = 0, w_time, arts; /* code, ore lavorative e arts */ 8 int a_code = 0; 9 float paga; 10 11 printf("\nInserire codice di pagamento (-1 esce): "); 12 scanf("%d", &code); 13 while(code != EOF) { 14 15 switch(code) { 16 case 1: 17 printf("\n-+- MANAGER -+-\n"); 18 printf("\nCodice di pagamento: %d\n", code); 19 printf("Paga settimanale: $350.00\n"); 20 21 break; 22 case 2: 23 printf("\n-+- LAVORATORI AD ORE -+-\n\n"); 24 25 printf("Ore lavorative: "); 26 scanf("%d", &w_time); 27 printf("Paga oraria fissa: "); 28 scanf("%f", &paga); 29 30 /* calcolo la paga */ 31 if (w_time <= 40) 32 paga *= w_time; 33 else 34 paga *= 40 + w_time + paga / 2 * (w_time - 40); 35 36 printf("\nCodice di pagamento: %d\n", code); 37 printf("Ore lavorative: %d\n", w_time); 38 printf("Paga settimanale: $%.2f\n", paga); 39 40 break; 41 case 3: 42 printf("\n-+- LAVORATORI A PROVVIGIONE -+-\n\n"); 43 44 printf("Importo vendite lorde: "); 45 scanf("%f", &paga); 46 47 paga = (paga * 5.7) / 100 + 250; 48 49 printf("\nCodice di pagamento: %d\n", code); 50 printf("Paga settimanale: $%.2f\n", paga); 51 52 break; 53 case 4: 54 printf("\n-+- LAVORATORI A COTTIMO -+-\n\n"); 55 56 /* sfrutto w_time come 'code' */ 57 printf("Tipo di articolo [1-3]: "); 58 scanf("%d", &w_time); 59 60 switch(w_time) { 61 62 case 1: 63 if (a_code == 2 || a_code == 3) 64 break; 65 66 a_code = 1; 67 printf("\n** ARTICOLO 1\n\n"); 68 printf("Numero articoli (-1 esce): "); 69 scanf("%d", &arts); 70 paga = 5.15 * arts; 71 72 break; 73 case 2: 74 if (a_code == 1 || a_code == 3) 75 break; 76 77 a_code = 2; 78 printf("\n** ARTICOLO 2\n\n"); 79 printf("Numero articoli (-1 esce): "); 80 scanf("%d", &arts); 81 paga = 9.13 * arts; 82 83 break; 84 case 3: 85 if (a_code == 1 || a_code == 2) 86 break; 87 88 a_code = 3; 89 printf("\n** ARTICOLO 3\n\n"); 90 printf("Numero articoli (-1 esce): "); 91 scanf("%d", &arts); 92 paga = 13.5 * arts; 93 94 break; 95 case ' ': 96 case '\t': 97 case '\n': 98 break; 99 100 default: 101 printf("Selezione non valida!\n"); 102 103 } /* eof switch: lavoratori a cottimo */ 104 105 printf("\nCodice di pagamento: %d\n", code); 106 printf("Codice articolo: %d\n", a_code); 107 printf("Numero articoli: %d\n", arts); 108 printf("Paga settimanale: %.2f\n", paga); 109 a_code = 0; 110 111 break; 112 113 case ' ': 114 case '\t': 115 case '\n': 116 break; 117 118 default: 119 printf("\nCodice di pagamento errato: %d\n", code); 120 printf("\nCodici attualmente disponibili:\n\n"); 121 printf("\t1: Mangager\n"); 122 printf("\t2: Lavoratori ad ore\n"); 123 printf("\t3: Lavoratori a provvigione\n"); 124 printf("\t4: Lavoratori a cottimo\n"); 125 } 126 printf("\nInserire codice di pagamento (-1 esce): "); 127 scanf("%d", &code); 128 } 129 130 printf("\nCalcolo eseguito correttamente!\n"); 131 132 return 0; 133 } /* E0F main */ 134