Advertisement
Garusek

Untitled

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