Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #include <string>
- struct rejestr
- {
- string Imie;
- string Nazwisko;
- string data;
- string Adres;
- rejestr *nastepny;
- rejestr()
- {
- cout<<"Podaj imie: ";
- cin>>Imie;
- cout<<"Podaj nazwisko: ";
- cin>>Nazwisko;
- cout<<"Podaj date urodzenia: ";
- cin>>data;
- cout<<"Podaj adres: ";
- cin>>Adres;
- nastepny=NULL;
- }
- void wypisz()
- {
- cout<<"Imie: "<<Imie<<"\tNazwisko :"<<Nazwisko
- <<"\tData: "<<data<<"\tAdres: "<<Adres<<endl;
- }
- };
- void dodaj_pacjenta(rejestr**korzen)
- {
- rejestr *nowa = new rejestr;
- rejestr *pomoc = (*korzen), *pomoc1 = NULL;
- while (pomoc != NULL && (pomoc->Nazwisko).compare(nowa->Nazwisko) == -1)
- {
- pomoc1 = pomoc;
- pomoc = pomoc->nastepny;
- }
- if (pomoc != NULL && (pomoc->Nazwisko).compare(nowa->Nazwisko) == 0)
- {
- cout << "Pacjent " << nowa->Nazwisko << " juz istanieje w rejestrze\n";
- delete nowa;
- }
- else if ((*korzen) == NULL || (pomoc == (*korzen) && (pomoc->Nazwisko).compare(nowa->Nazwisko) == 1))
- {
- nowa->nastepny = (*korzen);
- (*korzen) = nowa;
- }
- else
- pomoc1->nastepny = nowa;
- nowa->nastepny = pomoc;
- }
- void wypisz_pacjenta(rejestr *korzen)
- {
- cout << "Zawartosc wizytownika:\n";
- while(korzen != NULL)
- {
- korzen->wypisz();
- korzen = korzen->nastepny;
- }
- }
- void wyszukaj_pacjenta(rejestr *korzen,string a)
- {
- while (korzen!=NULL && (korzen->Nazwisko).compare(a)!=0)
- korzen=korzen->nastepny;
- if (korzen==NULL)
- cout<<"Nie ma takiego pacjenta "<<a<<endl;
- else
- korzen ->wypisz();
- }
- bool usun_pacjenta(rejestr **korzen, string a)
- {
- if ((*korzen) == NULL)
- return false;
- rejestr *pomoc = (*korzen), *pomoc1 = NULL;
- while(pomoc != NULL && (pomoc->Nazwisko).compare(a) != 0)
- {
- pomoc1 = pomoc;
- pomoc = pomoc->nastepny;
- }
- if (pomoc == NULL)
- return false;
- else if (pomoc == (*korzen))
- {
- (*korzen) = (*korzen)->nastepny;
- delete pomoc;
- }
- else
- {
- pomoc1->nastepny = pomoc->nastepny;
- delete pomoc;
- }
- return true;
- }
- int main()
- {
- char instrukcja;
- string Nazwisko;
- rejestr *korzen = NULL;
- cout << "MENU - mozliwe operacje na rejestrze\n"
- << "d - dodanie pacjenta\n"
- << "w - wypisanie wszystkich wizytowek\n"
- << "u - usuniecie pacjenta\n"
- << "s - wyszukanie pacjenta\n";
- while (cin >> instrukcja)
- {
- switch (instrukcja)
- {
- case 'd':
- dodaj_pacjenta(&korzen);
- break;
- case 's':
- cout << "Podaj nazwisko: ";
- cin >> Nazwisko;
- wyszukaj_pacjenta(korzen, Nazwisko);
- break;
- case 'w':
- wypisz_pacjenta(korzen);
- break;
- case 'u':
- cout << "Podaj nazwisko: ";
- cin >> Nazwisko;
- if (!usun_pacjenta(&korzen, Nazwisko))
- cout << "Nie odnaleziono pacjenta z podanym nazwiskiem" << endl;
- else
- cout << "Pacjent z podanym nazwiskiem zostal usuniety" << endl;
- break;
- default:
- cout << "Musisz wybrac jedna z opcji: d - dodawanie, w - wypisanie zawartosci, s - wyszukanie lub u - usuwanie\n";
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement