Advertisement
OvidiuS

Smanjenje/Povisica

Feb 27th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.56 KB | None | 0 0
  1. /* http://slike.milf-hosting.info/images/1393553736.jpg */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <tchar.h>
  6.  
  7. #define MAXIME      80
  8. #define MAXPREZIME  80
  9. #define MAXRADNIKA  50
  10. #define RADNISATI   160
  11.  
  12. typedef struct radnik
  13. {
  14.     char ime[MAXIME];
  15.     char prezime[MAXPREZIME];
  16.     int brojRadnihSati;
  17.     double plata;
  18. }
  19. Radnik;
  20.  
  21. int unosRadnika(Radnik * licnost, int i)
  22. {
  23.     printf("Unesite podatke za ranika pod rednim brojem %d:\n", i);
  24.     printf("\tUnesite ime radnika: "); gets_s(licnost->ime);
  25.     printf("\tUnesite prezime radnika: "); gets_s(licnost->prezime);
  26.     printf("\tUnesite broj radnih sati koje je radnik odradio: "); scanf_s("%d", &licnost->brojRadnihSati);
  27.     printf("\tUnesite platu radnika: "); scanf_s("%lf", &licnost->plata);
  28.  
  29.     return (licnost->brojRadnihSati > RADNISATI + 19 || licnost->brojRadnihSati < RADNISATI);
  30. }
  31.  
  32. void stampaRadnika(Radnik * licnost, int i)
  33. {
  34.     if(licnost->brojRadnihSati > RADNISATI + 19)
  35.     {
  36.         double povisica = licnost->brojRadnihSati - RADNISATI >= 30 ? (licnost->plata * 20) / 100 : (licnost->plata * 10) / 100;
  37.  
  38.         printf("Povisicu treba da dobije radnik pod rednim brojem %d:\n", i);
  39.         printf("\tIme i prezime: %s %s\n\tBrojradnih sati: %d\n", licnost->ime, licnost->prezime, licnost->brojRadnihSati);
  40.         printf("\tPlata: %.2lf\n", licnost->plata);
  41.         printf("\tPovisica: %.2lf\n\n", povisica);
  42.         printf("\tPlata sa povisicom: %.2lf\n\n", licnost->plata + povisica);
  43.     }
  44.     else if(licnost->brojRadnihSati < RADNISATI)
  45.     {
  46.         double smanjenje = licnost->plata/RADNISATI*(RADNISATI - licnost->brojRadnihSati);
  47.  
  48.         printf("Smanjenje plate treba da dobije radnik pod rednim brojem %d:\n", i);
  49.         printf("\tIme i prezime: %s %s\n\tBrojradnih sati: %d\n", licnost->ime, licnost->prezime, licnost->brojRadnihSati);
  50.         printf("\tPlata: %.2lf\n", licnost->plata);
  51.         printf("\tSmanjenje: %.2lf\n\n", smanjenje);
  52.         printf("\tPlata sa smanjenjem: %.2lf\n\n", licnost->plata - smanjenje);
  53.     }
  54. }
  55.  
  56. int _tmain(int argc, _TCHAR* argv[])
  57. {
  58.     int n = 0, i, radniciKriterijum = 0;
  59.    
  60.     Radnik licnost[MAXRADNIKA];
  61.  
  62.     printf("\t\tPROGRAM ZA OBRACUN PLATA RADNIKA\n\n");
  63.     printf("Unesite broj radnika: ");
  64.     scanf_s("%d", &n);
  65.  
  66.     for(i = 0; i < n; i++)
  67.     {
  68.         while(getchar() != '\n');
  69.         radniciKriterijum += unosRadnika(&licnost[i], i + 1);
  70.     }
  71.  
  72.  
  73.     if(radniciKriterijum != 0)
  74.     {
  75.         printf("\tLista radnika koji treba da dobiju povisicu ili smanjenje plate:\n\n");
  76.         for(i = 0; i < n; i++)                
  77.             stampaRadnika(&licnost[i], i + 1);
  78.     }
  79.     else
  80.     {
  81.         printf("Nijedan radnik nije zadovoljio kriterijume!\n");
  82.     }
  83.     system("PAUSE");
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement