Advertisement
Garusek

Untitled

Apr 7th, 2015
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1.  
  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