Advertisement
NoName977

ListaPracownikow.cpp

Jan 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.89 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include "ListaPracownikow.h"
  3.  
  4. ListaPracownikow::ListaPracownikow()
  5. {
  6.     m_nLiczbaPracownikow = 0;
  7.     m_pPoczatek = NULL;
  8. }
  9.  
  10. ListaPracownikow::~ListaPracownikow()
  11. {
  12.     //dtor
  13. }
  14.  
  15. void ListaPracownikow::Dodaj(Pracownik& p)
  16. {
  17.     Pracownik* aktualny = m_pPoczatek;
  18.     Pracownik * nastepny;
  19.     int i = 0;
  20.     if(m_nLiczbaPracownikow == 0)
  21.     {
  22.         m_pPoczatek = &p;
  23.         p.m_pNastepny = NULL;
  24.         m_nLiczbaPracownikow++;
  25.         return;
  26.     }
  27.     else if(m_nLiczbaPracownikow == 1)
  28.     {
  29.         if(aktualny->SprawdzNazwisko(p.Nazwisko()) > 0)
  30.         {
  31.             m_pPoczatek = &p;
  32.             p.m_pNastepny = aktualny;
  33.             m_nLiczbaPracownikow++;
  34.             return;
  35.         }
  36.         else if(aktualny->SprawdzNazwisko(p.Nazwisko()) < 0)
  37.         {
  38.             aktualny->m_pNastepny = &p;
  39.             m_pPoczatek = NULL;
  40.             m_nLiczbaPracownikow++;
  41.             return;
  42.         }
  43.     }
  44.     else
  45.     {
  46.         nastepny = aktualny->m_pNastepny;
  47.         if(aktualny->SprawdzNazwisko(p.Nazwisko()) > 0)
  48.         {
  49.             m_pPoczatek = &p;
  50.             p.m_pNastepny = aktualny;
  51.             m_nLiczbaPracownikow++;
  52.             return;
  53.         }
  54.         while(i <= m_nLiczbaPracownikow)
  55.         {
  56.             if(nastepny->SprawdzNazwisko(p.Nazwisko()) > 0)
  57.             {
  58.                 aktualny->m_pNastepny = &p;
  59.                 p.m_pNastepny = nastepny;
  60.                 m_nLiczbaPracownikow++;
  61.                 return;
  62.             }
  63.             else if(nastepny->SprawdzNazwisko(p.Nazwisko()) < 0)
  64.             {
  65.                 aktualny = nastepny;
  66.                 nastepny = aktualny->m_pNastepny;
  67.                 i++;
  68.             }
  69.             if(nastepny == NULL)
  70.             {
  71.                 aktualny->m_pNastepny = &p;
  72.                 p.m_pNastepny = NULL;
  73.                 m_nLiczbaPracownikow++;
  74.                 return;
  75.             }
  76.  
  77.         }
  78.     }
  79. }
  80. void ListaPracownikow::Usun(const Pracownik& wzorzec)
  81. {
  82.     Pracownik* aktualny = m_pPoczatek;
  83.     Pracownik * poprzedni = NULL;
  84.     if(m_nLiczbaPracownikow == 0)
  85.     {
  86.         cout<<"Brak pracownikow w liscie!"<<endl;
  87.     }
  88.     else
  89.     {
  90.         int i = 0;
  91.  
  92.             while (i <= m_nLiczbaPracownikow)
  93.             {
  94.                 if(aktualny->Porownaj(wzorzec) == 0)
  95.                 {
  96.                 if(aktualny == m_pPoczatek)
  97.                 {
  98.                     m_pPoczatek = aktualny->m_pNastepny;
  99.                     m_nLiczbaPracownikow++;
  100.                     return;
  101.                 }
  102.  
  103.                 else
  104.                 {
  105.                     poprzedni->m_pNastepny = aktualny->m_pNastepny;
  106.                     m_nLiczbaPracownikow++;
  107.                     return;
  108.                 }
  109.             }
  110.             i++;
  111.         }
  112.         cout << "Nie znaleziono Pracownika!" <<endl;
  113.  
  114. }
  115. }
  116. void ListaPracownikow::WypiszPracownikow() const
  117. {
  118.     Pracownik* aktualny = m_pPoczatek;
  119.     if(m_nLiczbaPracownikow == 0)
  120.         cout<<"Lista jest pusta"<<endl;
  121.     else
  122.     {
  123.         for(int i = 0; i < m_nLiczbaPracownikow; i++)
  124.         {
  125.             cout<<"Pracownik nr. "<<i<<endl;
  126.             aktualny->Wypisz();
  127.             aktualny = aktualny->m_pNastepny;
  128.         }
  129.     }
  130. }
  131. const Pracownik* ListaPracownikow::Szukaj(const char * nazwisko, const char* imie) const
  132. {
  133.     Pracownik* aktualny = m_pPoczatek;
  134.     if(m_nLiczbaPracownikow == 0)
  135.         cout<<"Lista jest Pusta"<<endl;
  136.     else
  137.     {
  138.         for(int i = 1; i <= m_nLiczbaPracownikow; i++)
  139.         {
  140.             if((aktualny->SprawdzImie(imie) == 0) && (aktualny->SprawdzNazwisko(nazwisko) == 0))
  141.             {
  142.                 aktualny->Wypisz();
  143.                 return aktualny;
  144.             }
  145.             else
  146.             {
  147.                 aktualny = aktualny->m_pNastepny;
  148.             }
  149.  
  150.         }
  151.         return NULL;
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement