Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <fstream>
- #include <cstdlib>
- #include <sstream>
- #include <string>
- #include <algorithm>
- #include <iterator>
- using namespace std;
- class Pracownik
- {
- public:
- string imie, nazwisko;
- int rok_urodzenia;
- public:
- Pracownik(string im="brak", string na="brak", int ro=0)
- {
- imie = im;
- nazwisko = na;
- rok_urodzenia = ro;
- }
- ~Pracownik()
- {
- }
- virtual void wyswietl()=0;
- };
- class Programista : public Pracownik
- {
- int staz_pracy;
- vector <string> technologie;
- public:
- Programista(string im, string na, int ro, int sp, vector <string> &te) : Pracownik(im, na, ro)
- {
- staz_pracy = sp;
- technologie = te;
- }
- ~Programista()
- {
- }
- virtual void wyswietl()
- {
- cout << imie << " " << nazwisko << ", " << rok_urodzenia << ", " << staz_pracy << ", " << endl;
- }
- };
- class Kierownik : public Pracownik
- {
- int lata_doswiadczenia;
- vector <string> szkolenia;
- public:
- Kierownik(string im, string na, int ro, int ld, vector <string> &sz) : Pracownik(im, na, ro)
- {
- lata_doswiadczenia = ld;
- szkolenia = sz;
- }
- ~Kierownik()
- {
- }
- virtual void wyswietl()
- {
- cout << imie << " " << nazwisko << ", " << rok_urodzenia << ", " << lata_doswiadczenia << ", " << endl;
- }
- };
- class Handlowiec : public Pracownik
- {
- int liczba_sprzedanych;
- vector <string> jezyki;
- public:
- Handlowiec(string im, string na, int ro, int ls, vector <string> &je) : Pracownik(im, na, ro)
- {
- liczba_sprzedanych = ls;
- jezyki = je;
- }
- ~Handlowiec()
- {
- }
- virtual void wyswietl()
- {
- cout << imie << " " << nazwisko << ", " << rok_urodzenia << ", " << liczba_sprzedanych << ", " << endl;
- }
- };
- /*
- class Lista
- {
- vector<Pracownik> pracownicy;
- public:
- void sortuj_nazwiska()
- void sortuj_urodzenia()
- };
- */
- Pracownik* generator_klas(string text)
- {
- int rok, staz;
- istringstream iss(text);
- vector<string> results((istream_iterator<string>(iss)),
- istream_iterator<string>());
- size_t const half_size = 5;
- vector<string> split_lo(results.begin(), results.begin() + half_size);
- vector<string> split_hi;
- split_hi.push_back("");
- Pracownik *pracownik;
- if (split_lo[0] == "P:")
- {
- rok = atoi(split_lo[3].c_str());
- staz = atoi(split_lo[4].c_str());
- pracownik = new Programista(split_lo[1], split_lo[2], rok, staz, split_hi);
- pracownik ->wyswietl();
- }
- else if (split_lo[0] == "K:")
- {
- rok = atoi(split_lo[3].c_str());
- staz = atoi(split_lo[4].c_str());
- pracownik = new Kierownik(split_lo[1], split_lo[2], rok, staz, split_hi);
- pracownik ->wyswietl();
- }
- else if (split_lo[0] == "H:")
- {
- rok = atoi(split_lo[3].c_str());
- staz = atoi(split_lo[4].c_str());
- pracownik = new Handlowiec(split_lo[1], split_lo[2], rok, staz, split_hi);
- pracownik ->wyswietl();
- }
- else
- {
- cout << "BLAD: nieznany typ rekordu! - linia: " << text;
- }
- return pracownik;
- }
- void zaladuj_dane(string nazwa_pliku)
- {
- fstream plik;
- string linia;
- plik.open(nazwa_pliku.c_str());
- if(plik.good()==false)
- {
- cout << "BLAD: nieznaleziono danych!";
- exit(0);
- }
- while(!plik.eof())
- {
- getline(plik, linia);
- generator_klas(linia);
- //vector<Pracownik> pracownicy(generator_klas(linia));
- }
- }
- /*
- void wypisz_dane()
- {
- }
- */
- int main()
- {
- zaladuj_dane("dane.txt");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement