Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ListaZatrudnionych.h"
- /*Dawid Zięba*/
- ListaZatrudnionych::ListaZatrudnionych(void)
- {
- m_pPierwszy = NULL;
- m_pOstatni = NULL;
- m_nLiczbaPracownikow = 0;
- }
- ListaZatrudnionych::~ListaZatrudnionych(void)
- {
- while(m_pPierwszy!=0)
- {
- Pracownik *tmp = m_pPierwszy;
- m_pPierwszy = m_pPierwszy->m_pNastepny;
- delete tmp;
- }
- }
- void ListaZatrudnionych::DodajNaPoczatek(const Pracownik & p)
- {
- Pracownik *nowy = new Pracownik(p);
- nowy->m_pPoprzedni = NULL;
- nowy->m_pNastepny = m_pPierwszy;
- if (m_pPierwszy == 0)
- {
- m_pOstatni = nowy;
- }
- else m_pPierwszy->m_pPoprzedni = nowy;
- m_pPierwszy = nowy;
- m_nLiczbaPracownikow++;
- }
- void ListaZatrudnionych::DodajNaKoniec(const Pracownik &p)
- {
- Pracownik *nowy = new Pracownik(p);
- nowy->m_pPoprzedni = m_pOstatni;
- nowy->m_pNastepny = 0;
- if(m_pOstatni == 0){
- m_pPierwszy = nowy;
- }
- else m_pOstatni->m_pNastepny = nowy;
- m_pOstatni = nowy;
- m_nLiczbaPracownikow++;
- }
- void ListaZatrudnionych::WstawWPolozenie(int n, Pracownik &p)
- {
- Pracownik * nowy = new Pracownik(p);
- Pracownik * tmp = &Zwroc(n);
- if(n <= 1) DodajNaPoczatek(p);
- else if(n>=m_nLiczbaPracownikow)
- DodajNaKoniec(p);
- else
- {
- tmp->m_pPoprzedni->m_pNastepny=nowy;
- nowy->m_pPoprzedni=tmp->m_pPoprzedni;
- nowy->m_pNastepny=tmp;
- tmp->m_pPoprzedni=nowy;
- }
- m_nLiczbaPracownikow++;
- }
- void ListaZatrudnionych::UsunPierwszy()
- {
- if(m_pPierwszy == m_pOstatni)
- {
- m_pPierwszy = NULL;
- m_pOstatni = NULL;
- m_nLiczbaPracownikow=0;
- }
- else
- {
- m_pPierwszy=m_pPierwszy->m_pNastepny;
- delete m_pPierwszy->m_pPoprzedni;
- m_pPierwszy->m_pPoprzedni = NULL;
- m_nLiczbaPracownikow--;
- }
- }
- void ListaZatrudnionych::UsunOstatni()
- {
- if(m_pOstatni == m_pPierwszy)
- {
- m_pPierwszy = NULL;
- m_pOstatni = NULL;
- m_nLiczbaPracownikow=0;
- }
- else
- {
- m_pOstatni=m_pOstatni->m_pPoprzedni;
- delete m_pOstatni->m_pNastepny;
- m_pOstatni->m_pNastepny = NULL;
- m_nLiczbaPracownikow--;
- }
- }
- void ListaZatrudnionych::UsunWybrany(int n)
- {
- Pracownik * tmp = &Zwroc(n);
- if(m_nLiczbaPracownikow >0)
- {
- if(n<=1)
- UsunPierwszy();
- else if(n>=m_nLiczbaPracownikow)
- UsunOstatni();
- else
- {
- tmp->m_pPoprzedni->m_pNastepny=tmp->m_pNastepny;
- tmp->m_pNastepny->m_pPoprzedni=tmp->m_pPoprzedni;
- delete tmp;
- }
- }
- }
- void ListaZatrudnionych::WypiszListeZatrudnionych() const
- {
- Pracownik *tmp = m_pPierwszy;
- if (m_nLiczbaPracownikow==0) cout<<"Brak pracownikow";
- while(tmp!=NULL)
- {
- tmp->Wypisz();
- tmp = tmp->m_pNastepny;
- }
- }
- int ListaZatrudnionych::SzukajPoNazwisku(const char *nazwisko) const
- {
- Pracownik *tmp = m_pPierwszy;
- int l = 1;
- while(tmp != NULL)
- {
- if(tmp->SprawdzNazwisko(nazwisko)) return l;
- else
- {
- tmp = tmp->m_pNastepny;
- l++;
- }
- }
- return 0;
- }
- Pracownik & ListaZatrudnionych::Zwroc(int n)
- {
- Pracownik * tmp = m_pPierwszy;
- if(n<=1)
- return* m_pPierwszy;
- if(n>=m_nLiczbaPracownikow)
- return* m_pOstatni;
- else
- {
- for(int i=1; i<n; i++)
- tmp = tmp->m_pNastepny;
- return* tmp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement