#include #include using namespace std; const unsigned int MAX_TEXT_LEN = 20; //maksymalna liczba znakow w polach tekstowych struct pracownik { int id; char imie[MAX_TEXT_LEN+1]; char nazwisko[MAX_TEXT_LEN+1]; float* zarobki; int liczba_miesiecy; }; void wyswietl_pracownika(pracownik prac) { cout << "ID: " << prac.id << endl; cout << "Imie: " << prac.imie << endl; cout << "Nazwisko: " << prac.nazwisko << endl; cout << "Zarobki w ostatnich " << prac.liczba_miesiecy << " miesiacach:" << endl; for (int i=0; i> tab[ind].id; plik >> tab[ind].imie; plik >> tab[ind].nazwisko; plik >> tab[ind].liczba_miesiecy; tab[ind].zarobki = new float[tab[ind].liczba_miesiecy]; for(int i=0; i < tab[ind].liczba_miesiecy; i++) { plik >> tab[ind].zarobki[i]; } } void zapisz_do_pliku(pracownik* tab, int count, float prog) { ofstream plik_output("output.txt"); if(!plik_output) { cout << "Plik nie zostal otwartyn"; return; } float srednia; int liczba_do_wpisania = 0; for(int i=0; i= prog) { liczba_do_wpisania++; } } plik_output << liczba_do_wpisania << endl; for(int i=0; i= prog) { plik_output << tab[i].id << endl; plik_output << tab[i].imie << endl; plik_output << tab[i].nazwisko << endl; plik_output << tab[i].liczba_miesiecy << endl; for(int j=0; j> N; /*Zaalokuj dynamicznie pamiec dla tablicy (na podstawie pierwszej liczby odczytanej z plik_input)*/ tablica = new pracownik[N]; for(int i=0; i < N; i++) { dodaj_element(plik_input, tablica, N, i); } plik_input.close(); /* MENU */ int opt; float prog; do { cout << "Wybierz opcje:" << endl; cout << "1: Wypisz na ekran dane odczytane z pliku" << endl; cout << "2: Zapisz do pliku pracownikow o sredniej zarobkow powyzej progu" << endl; cout << "0: Wyjdz z programu" << endl << endl; cout << "Podaj swoj wybor: "; cin >> opt; /* Wykonaj odpowiednia akcje w zaleznosci od wyboru uzytkownika */ switch(opt) { case 1: //wypisz na ekran dane odczytane z pliku wyswietl_wszystko(tablica, N); break; case 2: //opcja 2 cout << "Podaj prog sredniej zarobkow: " << endl; cin >> prog; zapisz_do_pliku(tablica, N, prog); break; case 0: // koniec dzialania programu - warunek petli spowoduje wyjscie z niej break; default: cout << "Niepoprawna opcja!" << endl << endl; break; } } while (opt != 0); /*Zwolnij dynamicznie zaalokowana pamiec!*/ for(int i=0; i