/*! \file Naukowiec.h \brief Plik naglowkowy klasy Naukowiec \author Michal Dabrowski \author Tomasz Kazimierczuk \date 2017 Plik zawiera klase Naukowiec do zapoznania sie w ramach przygotowania do egzaminu. */ #ifndef _NAUKOWIEC_H_ #define _NAUKOWIEC_H_ #include /*! \class Naukowiec \brief Klasa reprezentujaca Naukowca z parametrami cytowan */ class Naukowiec { private: std::string _name; /// nazwisko naukowca int _publikacje; /// sumaryczna liczba publikacji int _cytowania; /// sumaryczna liczba cytowan public: /// konstruktor bezargumentowy (dla porzadku) Naukowiec(); ///konstruktor trzyargumentowy Naukowiec (const std::string &name, int publikacje, int cytowania); ///zwraca indeks=double(_cytowania/_publikacje) double indeks(); ///dodaje n publikacji dla danego Naukowca void publikuj (int n); ///dodaje jedno cytowanie dla danego Naukowca Naukowiec &operator ++ (); /*! operator porownywania dwoch Naukowcow Lepszy jest Naukowiec z wieksza liczba cytowan; jezeli liczba cytowan jest identyczna, to lepszy jest Naukowiec majacy wiekszy indeks. */ friend bool operator < (Naukowiec &first, Naukowiec &second); /// wypisywanie danych o Naukowcu: (_name, _publikacje, _cytowania) friend std::ostream &operator << (std::ostream &stream, const Naukowiec &naukowiec); ///wczytywanie danych o Naukowcu: (_name, _publikacje, _cytowania) friend std::istream &operator >> (std::istream &stream, Naukowiec &naukowiec); }; #endif