10
Zajęcia 3: Rozbudowa projektu -cz. I
1. Modyfikacja klasy Pracownik
Do klasy Pracownik dodaj publiczne pola składowe:
• Pracownik* m_pPoprzedni;
• Pracownik* m_pNastepny;
2. Stworzenie listy dwukierunkowej - klasa ListaZatrudnionych
Korzystając z kreatora w środowisku Visual C++ stwórz klasę ListaZatrudnionych oraz dodaj do niej
następujące prywatne dane składowe:
• Pracownik* m_pPierwszy;
• Pracownik* m_pOstatni;
• int m_nLiczbaPracownikow;
Następnie w części publicznej klasy zdefiniuj:
• Konstruktor bezparametrowy inicjujący pola składowe;
• Funkcję void Dodaj NaPoczatek (const Pracownik & p), której zadaniem jest wstawienie kopii obiektu typu Pracownik przekazanego do funkcji na początek listy.
• Funkcję void DodajNaKoniec (const Pracownik & p), która ma wstawić kopię obiektu typu Pracownik przekazanego do funkcji na koniec listy.
• Funkcję void WstawWPolozenie (int n, Pracownik & p), która ma wstawić kopię obiektu typu Pracownik przekazanego do funkcji na n-tą pozycję od początku listy (w przypadku, gdy n jest większe od liczby pracowników w liście - funkcja ma wstawiać kopię obiektu na koniec listy);
• Funkcję void UsunPierws zy (), której zadaniem jest usunięcie obiektu znajdującego się na początku listy.
• Funkcję void UsunOstatni (), która ma usuwać obiekt znajdujący się na końcu listy.
• Funkcję void UsunWybrany (int n), której zadaniem jest usunięcie z listy obiektu znajdującego się na n-tym miejscu od początku listy (w przypadku, gdy n jest większe od liczby pracowników -funkcja ma usunąć ostatni element).
• Destruktor usuwający wszystkich pracowników z listy;
• Funkcję void WypiszListeZatrudnionych () const, której zadaniem jest wypisanie
wszystkich pracowników.
• Funkcję int Szukaj PoNazwisku (const char* nazwisko) const, której zadaniem jest znalezienie miejsca pierwszego pracownika o zadanym nazwisku licząc od początku listy. W przypadku, gdy pracownik o takim nazwisku nie istnieje, funkcja ma zwrócić 0.
• Funkcję Pracownik & Zwroc (int n), która ma zwrócić n-tego pracownika listy (w przypadku, gdy n jest większe od liczby pracowników w liście - zwraca ostatniego pracownika z listy).