training

Code I wrote during training
git clone git://git.bitsmanent.org/training
Log | Files | Refs | README

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