Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. #include "ListaZatrudnionych.h"
  2.  
  3. /*Dawid Zięba*/
  4.  
  5. ListaZatrudnionych::ListaZatrudnionych(void)
  6. {
  7. m_pPierwszy = NULL;
  8. m_pOstatni = NULL;
  9. m_nLiczbaPracownikow = 0;
  10. }
  11.  
  12. ListaZatrudnionych::~ListaZatrudnionych(void)
  13. {
  14. while(m_pPierwszy!=0)
  15. {
  16. Pracownik *tmp = m_pPierwszy;
  17. m_pPierwszy = m_pPierwszy->m_pNastepny;
  18. delete tmp;
  19. }
  20. }
  21.  
  22. void ListaZatrudnionych::DodajNaPoczatek(const Pracownik & p)
  23. {
  24. Pracownik *nowy = new Pracownik(p);
  25. nowy->m_pPoprzedni = NULL;
  26. nowy->m_pNastepny = m_pPierwszy;
  27. if (m_pPierwszy == 0)
  28. {
  29. m_pOstatni = nowy;
  30. }
  31. else m_pPierwszy->m_pPoprzedni = nowy;
  32. m_pPierwszy = nowy;
  33. m_nLiczbaPracownikow++;
  34. }
  35.  
  36. void ListaZatrudnionych::DodajNaKoniec(const Pracownik &p)
  37. {
  38. Pracownik *nowy = new Pracownik(p);
  39. nowy->m_pPoprzedni = m_pOstatni;
  40. nowy->m_pNastepny = 0;
  41. if(m_pOstatni == 0){
  42. m_pPierwszy = nowy;
  43. }
  44. else m_pOstatni->m_pNastepny = nowy;
  45. m_pOstatni = nowy;
  46. m_nLiczbaPracownikow++;
  47. }
  48.  
  49. void ListaZatrudnionych::WstawWPolozenie(int n, Pracownik &p)
  50. {
  51. Pracownik * nowy = new Pracownik(p);
  52. Pracownik * tmp = &Zwroc(n);
  53. if(n <= 1) DodajNaPoczatek(p);
  54. else if(n>=m_nLiczbaPracownikow)
  55. DodajNaKoniec(p);
  56. else
  57. {
  58. tmp->m_pPoprzedni->m_pNastepny=nowy;
  59. nowy->m_pPoprzedni=tmp->m_pPoprzedni;
  60. nowy->m_pNastepny=tmp;
  61. tmp->m_pPoprzedni=nowy;
  62. }
  63. m_nLiczbaPracownikow++;
  64. }
  65.  
  66. void ListaZatrudnionych::UsunPierwszy()
  67. {
  68. if(m_pPierwszy == m_pOstatni)
  69. {
  70. m_pPierwszy = NULL;
  71. m_pOstatni = NULL;
  72. m_nLiczbaPracownikow=0;
  73. }
  74. else
  75. {
  76. m_pPierwszy=m_pPierwszy->m_pNastepny;
  77. delete m_pPierwszy->m_pPoprzedni;
  78. m_pPierwszy->m_pPoprzedni = NULL;
  79. m_nLiczbaPracownikow--;
  80.  
  81. }
  82. }
  83.  
  84. void ListaZatrudnionych::UsunOstatni()
  85. {
  86. if(m_pOstatni == m_pPierwszy)
  87. {
  88. m_pPierwszy = NULL;
  89. m_pOstatni = NULL;
  90. m_nLiczbaPracownikow=0;
  91. }
  92. else
  93. {
  94. m_pOstatni=m_pOstatni->m_pPoprzedni;
  95. delete m_pOstatni->m_pNastepny;
  96. m_pOstatni->m_pNastepny = NULL;
  97. m_nLiczbaPracownikow--;
  98.  
  99. }
  100. }
  101.  
  102. void ListaZatrudnionych::UsunWybrany(int n)
  103. {
  104. Pracownik * tmp = &Zwroc(n);
  105. if(m_nLiczbaPracownikow >0)
  106. {
  107. if(n<=1)
  108. UsunPierwszy();
  109. else if(n>=m_nLiczbaPracownikow)
  110. UsunOstatni();
  111. else
  112. {
  113. tmp->m_pPoprzedni->m_pNastepny=tmp->m_pNastepny;
  114. tmp->m_pNastepny->m_pPoprzedni=tmp->m_pPoprzedni;
  115. delete tmp;
  116. }
  117. }
  118. }
  119.  
  120. void ListaZatrudnionych::WypiszListeZatrudnionych() const
  121. {
  122. Pracownik *tmp = m_pPierwszy;
  123. if (m_nLiczbaPracownikow==0) cout<<"Brak pracownikow";
  124. while(tmp!=NULL)
  125. {
  126. tmp->Wypisz();
  127. tmp = tmp->m_pNastepny;
  128. }
  129. }
  130.  
  131. int ListaZatrudnionych::SzukajPoNazwisku(const char *nazwisko) const
  132. {
  133. Pracownik *tmp = m_pPierwszy;
  134. int l = 1;
  135. while(tmp != NULL)
  136. {
  137. if(tmp->SprawdzNazwisko(nazwisko)) return l;
  138. else
  139. {
  140. tmp = tmp->m_pNastepny;
  141. l++;
  142. }
  143. }
  144. return 0;
  145. }
  146.  
  147. Pracownik & ListaZatrudnionych::Zwroc(int n)
  148. {
  149. Pracownik * tmp = m_pPierwszy;
  150. if(n<=1)
  151. return* m_pPierwszy;
  152. if(n>=m_nLiczbaPracownikow)
  153. return* m_pOstatni;
  154. else
  155. {
  156. for(int i=1; i<n; i++)
  157. tmp = tmp->m_pNastepny;
  158.  
  159. return* tmp;
  160. }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement