Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ListaPracownikow.h"
- #include "Pracownik.h"
- ListaPracownikow::ListaPracownikow() : m_nLiczbaPracownikow(0), m_pPoczatek(nullptr)
- {
- }
- ListaPracownikow::~ListaPracownikow()
- {
- Pracownik *s = m_pPoczatek;
- Pracownik *tmp;
- while (s != nullptr) {
- tmp = s;
- s = s->m_pNastepny;
- delete tmp;
- }
- }
- void ListaPracownikow::Dodaj(const Pracownik & p) {
- Pracownik *cp = new Pracownik(p);
- if (m_pPoczatek == nullptr) {
- cp->m_pNastepny = nullptr;
- m_pPoczatek = cp;
- m_nLiczbaPracownikow = 1;
- return;
- }
- Pracownik *old = nullptr;
- Pracownik *s = m_pPoczatek;
- // Pracownik *tmp;
- while (s != nullptr) {
- auto cmpp = cp->Porownaj(*s);
- if (cmpp < 0) {
- if (old != nullptr) {
- old->m_pNastepny = cp;
- cp->m_pNastepny = s;
- }
- else {
- m_pPoczatek = cp;
- cp->m_pNastepny = s;
- }
- m_nLiczbaPracownikow++;
- /*
- tmp = s->m_pNastepny;
- s->m_pNastepny = cp;
- cp->m_pNastepny = tmp;
- m_nLiczbaPracownikow++;*/
- return;
- }
- else if (cmpp == 0) {
- delete cp;
- return;
- }
- old = s;
- s = s->m_pNastepny;
- }
- s = old;
- s->m_pNastepny = cp;
- cp->m_pNastepny = nullptr;
- m_nLiczbaPracownikow++;
- }
- void ListaPracownikow::Usun(const Pracownik & wzorzec) {
- Pracownik *old = nullptr;
- Pracownik *s = m_pPoczatek;
- while (s != nullptr) {
- if (wzorzec.Porownaj(*s) == 0) {
- if (old != nullptr) {
- old->m_pNastepny = s->m_pNastepny;
- }
- else {
- m_pPoczatek = s->m_pNastepny;
- }
- delete s;
- m_nLiczbaPracownikow--;
- break;
- }
- old = s;
- s = s->m_pNastepny;
- }
- }
- void ListaPracownikow::WypiszPracownikow() const {
- Pracownik *s = m_pPoczatek;
- while (s != nullptr) {
- s->Wypisz();
- std::cout << std::endl;
- s = s->m_pNastepny;
- }
- }
- const Pracownik * ListaPracownikow::Szukaj(const char *nazwisko, const char * imie) const {
- Pracownik *s = m_pPoczatek;
- while (s != nullptr) {
- if ( s->SprawdzNazwisko(nazwisko) == 0 && s->SprawdzImie(imie) == 0) {
- return s;
- }
- s = s->m_pNastepny;
- }
- return nullptr;
- }
- void ListaPracownikow::zapiszDoPliku(Napis &p) {
- std::ofstream plik;
- plik.open(p.Zwroc());
- Pracownik *s = m_pPoczatek;
- while (s != nullptr) {
- plik << *s;
- if (s->m_pNastepny != nullptr) {
- plik << std::endl;
- }
- s = s->m_pNastepny;
- }
- plik.close();
- }
- void ListaPracownikow::zaladujZPliku(Napis &p) {
- std::ifstream plik;
- plik.open(p.Zwroc());
- Pracownik s;
- while (!plik.eof()) {
- plik >> s;
- Dodaj(s);
- }
- plik.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement