OvidiuS icon

Smanjenje/Povisica

OvidiuS | PRO | 02/28/14 12:54:34 AM UTC | 0 ⭐ | 351 👁️ | Never ⏰ | []
C++ |

2.56 KB

|

None

|

0 👍

/

0 👎

/* 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