#include #include #include #pragma warning (disable : 4996) struct data{ int dzien; int miesiac; int rok; }; struct pracownik{ char nazwisko[30]; struct data data_u; double pobory; char plec; }; void dodaj(void); double emeryci(void); void main() { dodaj(); emeryci(); } void dodaj(void) { FILE* plik; struct pracownik prac; plik = fopen("kadry.txt", "a+t"); printf("\nPodaj nazwisko pracownia:"); scanf("%s", prac.nazwisko); fflush(stdin); printf("\nPodaj date urodzenia pracownika:"); printf("\nPodaj dzien:"); scanf("%d", &prac.data_u.dzien); printf("\nPodaj miesiac:"); scanf("%d", &prac.data_u.miesiac); printf("\nPodaj rok:"); scanf("%d", &prac.data_u.rok); fflush(stdin); printf("\nPodaj plec:"); scanf("%c", &prac.plec); printf("\nPodaj place:"); scanf("%lf", &prac.pobory); fwrite(&prac, sizeof(struct pracownik), 1, plik); fclose(plik); } double emeryci(void) { FILE* plik = fopen("kadry.txt", "r"); FILE* plik1 = fopen("pliktymczas.txt", "w"); FILE* plik2 = fopen("emeryci.txt", "w"); struct pracownik prac; struct data dzis; dzis.dzien = 22; dzis.miesiac = 6; dzis.rok = 2017; int wiek; double odprawa = 0; while (fread(&prac, sizeof(struct pracownik), 1, plik) == 1) { if (prac.plec == 'k') wiek = 60; else wiek = 65; if (dzis.rok - prac.data_u.rok > wiek) { fwrite(&prac, sizeof(struct pracownik), 1, plik1); odprawa += 6 * prac.pobory; } else if (dzis.rok - prac.data_u.rok == wiek && dzis.miesiac < prac.data_u.miesiac) { fwrite(&prac, sizeof(struct pracownik), 1, plik1); odprawa += 6 * prac.pobory; } else if (dzis.rok - prac.data_u.rok == wiek && dzis.dzien == prac.data_u.dzien) { fwrite(&prac, sizeof(struct pracownik), 1, plik1); odprawa += 6 * prac.pobory; } else fwrite(&prac, sizeof(struct pracownik), 1, plik2); } fclose(plik); fclose(plik1); fclose(plik2); remove("kadry,txt"); rename("pliktymczas.txt", "kadra.txt"); return odprawa; }