bartek27210

structura pracownicy

Jan 25th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct pracownicy
  5. {
  6.     char imie[20];
  7.     char nazwizko[30];
  8.     int rokz;
  9.     double placabrutto;
  10. };
  11.  
  12.  
  13. double podwyżka(void)
  14. {
  15.     FILE*plik
  16.     FILE*plik2
  17.     double koszty=0;
  18.     struct pracownicy k;
  19.     plik = fopen("baza.txt","r+");
  20.     plik2= fopen("tmp.txt","a");
  21.     while(fread(&k,sizeof(struct pracownicy),1,plik)==1)
  22.     {
  23.         if (2017-rokz<5) koszty=0;
  24.         if ((2017-rokz>=5) and (2017-rokz<10))
  25.         {
  26.             k.placabrutto=k.placabrutto+(0.05*k.placabrutto);
  27.             koszty+=(0.05*k.placabrutto);            
  28.         }
  29.         if ((2017-rokz>=10) and (2017-rokz<15))
  30.         {
  31.             k.placabrutto=k.placabrutto+(0.1*k.placabrutto);
  32.             koszty+=(0.1*placabrutto);
  33.         }
  34.         if ((2017-rokz>=15) and (2017-rokz<20))
  35.         {
  36.             k.placabrutto1=k.placabrutto+(0.15*k.placabrutto);
  37.             koszty+=(0.15*placabrutto)
  38.         }
  39.         if (2017-rokz>=20)  
  40.         {
  41.             k.placabrutto=k.placabrutto+(0.2*k.placabrutto);
  42.             koszty+=(0.2*k.placabrutto)
  43.         }
  44.        
  45.         fwrite(&k,sizeof(struct pracownicy,1,plik2);
  46.     }
  47.     fclose(plik);
  48.     fclose(plik2);
  49.     remove(plik);
  50.     rename("tmp.txt","baza.txt");
  51.     return koszty;
  52.     }
  53. }
  54. /*L8 - szablon struktury pracownicy (imie, nazwisko, int rokzatrudnienia[rok_z],
  55. double placabrutto[pobory_b czy jakoś tak]). Napisać funkcję double podwyzka(void)
  56. która będzie zczytywać dane z pliku baza.txt i będzie dawać podwyżki:
  57. jeżeli pracownik pracuje od5 do 10 lat to podwyżka 5%, od 10 do 15 - 10%, od 15 do 20 - 15%, >20 - 20%.
  58. funkcja ma zwracać koszty tych podwyżek.
  59. */
Advertisement
Add Comment
Please, Sign In to add comment