Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <conio.h>
- using namespace std;
- // struktury
- struct Pracownik
- {
- // pola:
- string imie;
- string nazwisko;
- int wiek;
- char plec;
- double placa;
- };
- unsigned wielkosc_tablicy = 0;
- void sortuj_wedlug_wieku(Pracownik* pracownicy)
- {
- for(unsigned i = 0; i < wielkosc_tablicy; i++)
- {
- for(unsigned j = 0; j < wielkosc_tablicy - i; i++)
- {
- if(pracownicy[j].wiek > pracownicy[j + 1].wiek)
- swap(pracownicy[j], pracownicy[j + 1]);
- }
- }
- }
- void sortuj_wedlug_placy(Pracownik* pracownicy)
- {
- for(unsigned i = 0; i < wielkosc_tablicy; i++)
- {
- for(unsigned j = 0; j < wielkosc_tablicy - i; i++)
- {
- if(pracownicy[j].placa < pracownicy[j + 1].placa)
- swap(pracownicy[j], pracownicy[j + 1]);
- }
- }
- }
- void sortuj_wedlug_nazwiska(Pracownik* pracownicy)
- {
- for(unsigned i = 0; i < wielkosc_tablicy; i++)
- {
- for(unsigned j = 0; j < wielkosc_tablicy - i; i++)
- {
- if(pracownicy[j].nazwisko > pracownicy[j + 1].nazwisko)
- swap(pracownicy[j], pracownicy[j + 1]);
- }
- }
- }
- void wypisz_dane(Pracownik pracownik)
- {
- cout << pracownik.imie << " " << pracownik.nazwisko << ", ";
- if(pracownik.plec == 'm')
- cout << "mezczyzna, ";
- else
- cout << "kobieta, ";
- cout << "lat " << pracownik.wiek << ", zarabia " << pracownik.placa << " PLN miesiecznie" << endl;
- }
- Pracownik* dodaj_pracownika(Pracownik* pracownicy)
- {
- Pracownik* temp = new Pracownik[wielkosc_tablicy + 1];
- for(unsigned i = 0; i < wielkosc_tablicy; i++)
- {
- temp[i] = pracownicy[i];
- }
- ++wielkosc_tablicy;
- delete[] pracownicy;
- return temp;
- }
- void wpisz_dane_pracownika(Pracownik* pracownicy, Pracownik nowy)
- {
- pracownicy[wielkosc_tablicy - 1].imie = nowy.imie;
- pracownicy[wielkosc_tablicy - 1].nazwisko = nowy.nazwisko;
- pracownicy[wielkosc_tablicy - 1].wiek = nowy.wiek;
- pracownicy[wielkosc_tablicy - 1].plec = nowy.plec;
- pracownicy[wielkosc_tablicy - 1].placa = nowy.placa;
- }
- int main()
- {
- Pracownik* pracownicy;
- Pracownik nowy;
- pracownicy = new Pracownik[wielkosc_tablicy];
- ifstream plik;
- plik.open("plik.txt");
- if(plik.good())
- {
- while(!plik.eof()) // eof() zwraca true jeśli znajdujemy się na końcu pliku
- {
- plik >> nowy.imie >> nowy.nazwisko >> nowy.wiek >> nowy.plec >> nowy.placa;
- pracownicy = dodaj_pracownika(pracownicy);
- wpisz_dane_pracownika(pracownicy, nowy);
- }
- }
- plik.close();
- for(unsigned i = 0; i < wielkosc_tablicy; ++i)
- wypisz_dane(pracownicy[i]);
- // MENU:
- cout << endl << "Zdecyduj jak posortowac dane: " << endl;
- cout << "N - wedlug nazwiska" << endl;
- cout << "P - wedlug placy" << endl;
- cout << "W - wedlug wieku" << endl;
- cout << "inny klawisz - pomin" << endl << endl;
- char znak = getch();
- znak = toupper(znak);
- switch(znak)
- {
- case 'N':
- cout << "sortowanie danych wedlug nazwiska" << endl;
- sortuj_wedlug_nazwiska(pracownicy);
- break;
- case 'P':
- cout << "sortowanie danych wedlug placy" << endl;
- sortuj_wedlug_placy(pracownicy);
- break;
- case 'W':
- cout << "sortowanie danych wedlug wieku" << endl;
- sortuj_wedlug_wieku(pracownicy);
- break;
- default:
- break;
- }
- for(unsigned i = 0; i < wielkosc_tablicy; ++i)
- wypisz_dane(pracownicy[i]);
- delete[] pracownicy;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement