Advertisement
Garusek

Untitled

Apr 13th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.51 KB | None | 0 0
  1. //Proszê mi wybaczyæ nieczytelnoœc kodu.
  2.  
  3. #include <iostream>
  4. using namespace std;
  5. #include <string>
  6.  
  7.  
  8.  
  9. class rejestr
  10.  
  11. {
  12.         private:
  13.     string Imie;
  14.     string Nazwisko;
  15.     string data;
  16.     string Adres;
  17.  
  18.         public:
  19.         rejestr *nastepny;
  20.     rejestr()
  21.     {
  22.         cout<<"Podaj imie: ";
  23.         cin>>Imie;
  24.         cout<<"Podaj nazwisko: ";
  25.         cin>>Nazwisko;
  26.         cout<<"Podaj date urodzenia: ";
  27.         cin>> data;
  28.         cout<<"Podaj adres: ";
  29.                 cin.sync();
  30.                 getline(cin, Adres);
  31.         nastepny=NULL;
  32.     }
  33.  
  34.  
  35.         void setImie(string imie){Imie = imie;}
  36.         string getImie()      {return Imie;}
  37.         void setNazwisko(string nazwisko)     {Nazwisko = nazwisko;}
  38.         string getNazwisko()    {return Nazwisko;}
  39.         void setData(string data)     {data = data;}
  40.         string getData()      {return data;}
  41.         void setAdres(string adres)   {Adres = adres;}
  42.         string getAdres()     {return Adres;}
  43.  
  44.     void wypisz()
  45.     {
  46.         cout<<"Imie: "<<Imie<<"\tNazwisko :"<<Nazwisko
  47.         <<"\tData: "<<data<<"\tAdres: "<<Adres<<endl;
  48.     }
  49.  
  50. };
  51.  
  52. void dodaj_pacjenta(rejestr**korzen)
  53. {
  54. rejestr *nowa = new rejestr;
  55. rejestr *pomoc = (*korzen), *pomoc1 = NULL;
  56.  
  57. while (pomoc != NULL && (pomoc->getNazwisko()).compare(nowa->getNazwisko()) == -1)
  58. {
  59. pomoc1 = pomoc;
  60. pomoc = pomoc->nastepny;
  61. }
  62.  
  63. if (pomoc != NULL && (pomoc->getNazwisko()).compare(nowa->getNazwisko()) == 0)
  64. {
  65. cout << "Pacjent " << nowa->getNazwisko() << " juz istanieje w rejestrze\n";
  66. delete nowa;
  67. }
  68. else if ((*korzen) == NULL || (pomoc == (*korzen) && (pomoc->getNazwisko()).compare(nowa->getNazwisko()) == 1))
  69. {
  70. nowa->nastepny = (*korzen);
  71. (*korzen) = nowa;
  72. }
  73. else
  74. pomoc1->nastepny = nowa;
  75. nowa->nastepny = pomoc;
  76. }
  77. void wypisz_pacjenta(rejestr *korzen)
  78. {
  79. cout << "Zawartosc wizytownika:\n";
  80.  
  81. while(korzen != NULL)
  82. {
  83. korzen->wypisz();
  84. korzen = korzen->nastepny;
  85. }
  86. }
  87. void wyszukaj_pacjenta(rejestr *korzen,string a)
  88. {
  89. while (korzen!=NULL && (korzen->getNazwisko()).compare(a)!=0)
  90. korzen=korzen->nastepny;
  91. if (korzen==NULL)
  92. cout<<"Nie ma takiego pacjenta "<<a<<endl;
  93. else
  94. korzen ->wypisz();
  95. }
  96.  
  97. bool usun_pacjenta(rejestr **korzen, string a)
  98. {
  99. if ((*korzen) == NULL)
  100. return false;
  101. rejestr *pomoc = (*korzen), *pomoc1 = NULL;
  102. while(pomoc != NULL && (pomoc->getNazwisko()).compare(a) != 0)
  103. {
  104. pomoc1 = pomoc;
  105. pomoc = pomoc->nastepny;
  106. }
  107.  
  108. if (pomoc == NULL)
  109. return false;
  110. else if (pomoc == (*korzen))
  111. {
  112. (*korzen) = (*korzen)->nastepny;
  113. delete pomoc;
  114. }
  115. else
  116. {
  117. pomoc1->nastepny = pomoc->nastepny;
  118. delete pomoc;
  119. }
  120. return true;
  121. }
  122.  
  123.  
  124. int main()
  125. {
  126. char instrukcja;
  127. string Nazwisko;
  128. rejestr *korzen = NULL;
  129. cout << "MENU - mozliwe operacje na rejestrze\n"
  130. << "d - dodanie pacjenta\n"
  131. << "w - wypisanie wszystkich wizytowek\n"
  132. << "u - usuniecie pacjenta\n"
  133. << "s - wyszukanie pacjenta\n";
  134. while (cin >> instrukcja)
  135. {
  136. switch (instrukcja)
  137. {
  138. case 'd':
  139. dodaj_pacjenta(&korzen);
  140. break;
  141. case 's':
  142. cout << "Podaj nazwisko: ";
  143. cin >> Nazwisko;
  144. wyszukaj_pacjenta(korzen, Nazwisko);
  145. break;
  146. case 'w':
  147. wypisz_pacjenta(korzen);
  148. break;
  149. case 'u':
  150. cout << "Podaj nazwisko: ";
  151. cin >> Nazwisko;
  152. if (!usun_pacjenta(&korzen, Nazwisko))
  153. cout << "Nie odnaleziono pacjenta z podanym nazwiskiem" << endl;
  154. else
  155. cout << "Pacjent z podanym nazwiskiem zostal usuniety" << endl;
  156. break;
  157. default:
  158. cout << "Musisz wybrac jedna z opcji: d - dodawanie, w - wypisanie zawartosci, s - wyszukanie lub u - usuwanie\n";
  159. break;
  160. }
  161. }
  162.  
  163. return 0;
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement