Guest User

Untitled

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