/* http://slike.milf-hosting.info/images/1393553736.jpg */
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#define MAXIME 80
#define MAXPREZIME 80
#define MAXRADNIKA 50
#define RADNISATI 160
typedef struct radnik
{
char ime[MAXIME];
char prezime[MAXPREZIME];
int brojRadnihSati;
double plata;
}
Radnik;
int unosRadnika(Radnik * licnost, int i)
{
printf("Unesite podatke za ranika pod rednim brojem %d:\n", i);
printf("\tUnesite ime radnika: "); gets_s(licnost->ime);
printf("\tUnesite prezime radnika: "); gets_s(licnost->prezime);
printf("\tUnesite broj radnih sati koje je radnik odradio: "); scanf_s("%d", &licnost->brojRadnihSati);
printf("\tUnesite platu radnika: "); scanf_s("%lf", &licnost->plata);
return (licnost->brojRadnihSati > RADNISATI + 19 || licnost->brojRadnihSati < RADNISATI);
}
void stampaRadnika(Radnik * licnost, int i)
{
if(licnost->brojRadnihSati > RADNISATI + 19)
{
double povisica = licnost->brojRadnihSati - RADNISATI >= 30 ? (licnost->plata * 20) / 100 : (licnost->plata * 10) / 100;
printf("Povisicu treba da dobije radnik pod rednim brojem %d:\n", i);
printf("\tIme i prezime: %s %s\n\tBrojradnih sati: %d\n", licnost->ime, licnost->prezime, licnost->brojRadnihSati);
printf("\tPlata: %.2lf\n", licnost->plata);
printf("\tPovisica: %.2lf\n\n", povisica);
printf("\tPlata sa povisicom: %.2lf\n\n", licnost->plata + povisica);
}
else if(licnost->brojRadnihSati < RADNISATI)
{
double smanjenje = licnost->plata/RADNISATI*(RADNISATI - licnost->brojRadnihSati);
printf("Smanjenje plate treba da dobije radnik pod rednim brojem %d:\n", i);
printf("\tIme i prezime: %s %s\n\tBrojradnih sati: %d\n", licnost->ime, licnost->prezime, licnost->brojRadnihSati);
printf("\tPlata: %.2lf\n", licnost->plata);
printf("\tSmanjenje: %.2lf\n\n", smanjenje);
printf("\tPlata sa smanjenjem: %.2lf\n\n", licnost->plata - smanjenje);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int n = 0, i, radniciKriterijum = 0;
Radnik licnost[MAXRADNIKA];
printf("\t\tPROGRAM ZA OBRACUN PLATA RADNIKA\n\n");
printf("Unesite broj radnika: ");
scanf_s("%d", &n);
for(i = 0; i < n; i++)
{
while(getchar() != '\n');
radniciKriterijum += unosRadnika(&licnost[i], i + 1);
}
if(radniciKriterijum != 0)
{
printf("\tLista radnika koji treba da dobiju povisicu ili smanjenje plate:\n\n");
for(i = 0; i < n; i++)
stampaRadnika(&licnost[i], i + 1);
}
else
{
printf("Nijedan radnik nije zadovoljio kriterijume!\n");
}
system("PAUSE");
return 0;
}
Comments