Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ListaPracownikow.h"
- #include"Pracownik.h"
- #include <iostream>
- using namespace std;
- ListaPracownikow::ListaPracownikow()
- {
- m_pPoczatek = NULL;
- m_nLiczbaPracownikow = 0;
- }
- ListaPracownikow::~ListaPracownikow()
- {
- Pracownik* tmp = m_pPoczatek;
- Pracownik* usun;
- while (tmp != NULL)
- {
- usun = tmp;
- tmp = tmp->m_pNastepny;
- delete usun;
- }
- m_pPoczatek = NULL;
- m_nLiczbaPracownikow = 0;
- }
- void ListaPracownikow::Dodaj(const Pracownik& p)
- {
- Pracownik* nowy = new Pracownik(p);
- if (m_nLiczbaPracownikow == 0)
- {
- m_pPoczatek = nowy;
- m_nLiczbaPracownikow++;
- }
- else
- {
- Pracownik* tmp = m_pPoczatek;
- for (int i = 0; i < m_nLiczbaPracownikow; i++)
- {
- if (tmp->Porownaj(*nowy) == -1)
- {
- if (tmp->m_pNastepny)
- {
- tmp = tmp->m_pNastepny;
- }
- else
- {
- tmp->m_pNastepny = nowy;
- m_nLiczbaPracownikow++;
- break;
- }
- }
- else if (tmp->Porownaj(*nowy) == 1)
- {
- Pracownik* tmp2 = m_pPoczatek;
- if (tmp == tmp2)
- {
- if (!m_pPoczatek->m_pNastepny)
- {
- tmp2->m_pNastepny = NULL;
- }
- m_pPoczatek = nowy;
- nowy->m_pNastepny = tmp;
- m_nLiczbaPracownikow++;
- }
- else
- {
- while (tmp2->m_pNastepny != tmp)
- {
- tmp2 = tmp2->m_pNastepny;
- }
- nowy->m_pNastepny = tmp;
- tmp2->m_pNastepny = nowy;
- m_nLiczbaPracownikow++;
- break;
- }
- break;
- }
- else if(tmp->Porownaj(*nowy) == 0)
- {
- break;
- }
- }
- }
- }
- void ListaPracownikow::Usun(const Pracownik & wzorzec)
- {
- Pracownik * tmp = m_pPoczatek;
- if (!tmp->Porownaj(wzorzec))
- {
- m_pPoczatek = tmp->m_pNastepny;
- delete tmp;
- m_nLiczbaPracownikow--;
- }
- else
- {
- while (tmp->m_pNastepny->Porownaj(wzorzec))
- {
- tmp = tmp->m_pNastepny;
- }
- Pracownik * usun = tmp->m_pNastepny;
- tmp->m_pNastepny = tmp->m_pNastepny->m_pNastepny;
- delete usun;
- m_nLiczbaPracownikow--;
- }
- }
- void ListaPracownikow::WypiszPracownikow() const
- {
- Pracownik * tmp = m_pPoczatek;
- while(tmp)
- {
- tmp->Wypisz();
- tmp = tmp->m_pNastepny;
- }
- }
- const Pracownik* ListaPracownikow::Szukaj(const char* nazwisko, const char* imie) const
- {
- Pracownik* tmp = m_pPoczatek;
- for (int i = 0; i<m_nLiczbaPracownikow; i++)
- {
- if (!tmp->SprawdzNazwisko(nazwisko) && !tmp->SprawdzImie(imie))
- {
- return tmp;
- break;
- }
- tmp = tmp->m_pNastepny;
- }
- return nullptr;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////main
- #include "Data.h"
- #include "Napis.h"
- #include "Pracownik.h"
- #include "ListaPracownikow.h"
- #include <iostream>
- using namespace std;
- int main()
- {
- ListaPracownikow lista;
- Pracownik p;
- Napis imie, nazwisko;
- int wybor;
- do
- {
- system("cls");
- cout << "1) Wprowadz nowego pracownika" << endl;
- cout << "2) Usun pracownika z listy" << endl;
- cout << "3) Wypisz liste pracownikow" << endl;
- cout << "4) Znajdz pracownika" << endl;
- cout << "5) Wyjscie" << endl;
- cin >> wybor;
- switch (wybor)
- {
- case 1:
- system("cls");
- p.Wpisz();
- lista.Dodaj(p);
- cout << "Dodano pracownika." << endl;
- system("pause");
- break;
- case 2:
- system("cls");
- p.Wpisz();
- lista.Usun(p);
- cout << "Usunieto pracownika." << endl;
- system("pause");
- break;
- case 3:
- system("cls");
- lista.WypiszPracownikow();
- system("pause");
- break;
- case 4:
- system("cls");
- cout << "Podaj imie pracownika do wyszukania: ";
- char i[50];
- cin >> i;
- imie.Ustaw(i);
- cout << "Podaj nazwisko pracownika do wyszukania: ";
- char n[50];
- cin >> n;
- nazwisko.Ustaw(n);
- if (lista.Szukaj(nazwisko.Zwroc(), imie.Zwroc()))
- {
- lista.Szukaj(nazwisko.Zwroc(), imie.Zwroc())->Wypisz();
- }
- else
- {
- cout << "Nie znaleziono pracownika." << endl;
- }
- system("pause");
- break;
- case 5:
- break;
- }
- } while (wybor != 5);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement