Posted By

barrogar on 10/24/10


Tagged


Versions (?)

Sp zadatak 1 main, Barbara Rogar


 / Published in: C++
 

  1. #include <iostream>
  2.  
  3. #include "list_pokazivaci.h"
  4. //#include "list_polje.h"
  5.  
  6. using namespace std;
  7.  
  8. void unos (list* lista) {
  9. int broj, uspjesno_dodan=0, lokacija;
  10. cout << "===================================" << endl;
  11. cout << "Koliko pacijenata zelite unijeti: ";
  12. cin >> broj;
  13. cout << endl;
  14. for (int i=0; i<broj; i++){
  15. cout << "Maticni broj pacijenta: ";
  16. cin >> pacijent.mb;
  17. cout << "Ime i prezime pacijenta: ";
  18. cin.ignore();
  19. cin.getline(pacijent.ime, 30);
  20. cout << "Godine pacijenta: ";
  21. cin >> pacijent.godine;
  22. cout << endl << "Zelite li pacijenta dodati na " << endl
  23. << "1.Pocetak liste" << endl
  24. << "2.Kraj liste" << endl
  25. << "Izbor: ";
  26. cin >> lokacija;
  27. cout << endl;
  28. if (lokacija==1)
  29. uspjesno_dodan = InsertL(pacijent, FirstL(lista), lista);
  30. if (lokacija==2)
  31. uspjesno_dodan = InsertL(pacijent, EndL(lista), lista);
  32. if (uspjesno_dodan)
  33. cout << "Pacijent je evidentiran" << endl;
  34. else
  35. cout << "Greska, pacijent nije evidentiran" << endl;
  36. cout << "---------------------------------" << endl << endl;
  37. }
  38. };
  39.  
  40.  
  41. void sort(list *lista) {
  42. int broj_elemenata=0;
  43. tpacijent polje[100];
  44. element pozicija = FirstL(lista);
  45. while (pozicija != EndL(lista)){
  46. polje[broj_elemenata]=RetrieveL(pozicija, lista);
  47. pozicija = NextL(pozicija, lista);
  48. broj_elemenata++;
  49. }
  50.  
  51. for (int i = 1; i<broj_elemenata;i++) {
  52. int j = i-1;
  53. tpacijent pom = polje[i];
  54. while (j>=0 && polje[j].mb>pom.mb)
  55. polje[j+1] = polje[j--];
  56. polje[j+1] = pom;
  57. }
  58.  
  59. cout << "========== Sortirani pacijenti ==========" << endl << endl;
  60. for (int i=0; i<broj_elemenata; i++)
  61. cout << "Maticni broj pacijenta: " << polje[i].mb << endl
  62. << "Ime i prezime pacijenta: " << polje[i].ime << endl
  63. << "Godine pacijenta: " << polje[i].godine << endl
  64. << "-------------------------------------------" << endl;
  65. };
  66.  
  67. void ispis(list* lista) {
  68. int broj_maloljetnika=0;
  69. tpacijent maloljetnik;
  70. cout << "======== Maloljetni pacijenti ========" << endl << endl;
  71. element pozicija = FirstL(lista);
  72. while (pozicija != EndL(lista)){
  73. maloljetnik = RetrieveL(pozicija, lista);
  74. if (maloljetnik.godine<=18){
  75. cout << "Maticni broj pacijenta: " << maloljetnik.mb << endl
  76. << "Ime i prezime pacijenta: " << maloljetnik.ime << endl
  77. << "Godine pacijenta: " << maloljetnik.godine << endl
  78. << "-------------------------------------------" << endl;
  79. broj_maloljetnika++;
  80. }
  81. pozicija = NextL(pozicija, lista);
  82. }
  83. cout << "Ukupno pacijenata mladih od 18 godina: " << broj_maloljetnika << endl;
  84. };
  85.  
  86. void brisanje (list* lista) {
  87. int izbor;
  88. tpacijent maticni;
  89. element pozicija;
  90. cout << "Unesite maticni broj osobe za brisanje: ";
  91. cin >> maticni.mb;
  92. pozicija = LocateL(maticni, lista);
  93. if (pozicija != EndL(lista)) {
  94. maticni = RetrieveL(pozicija, lista);
  95. cout << "===== Pronadjen pacijent ===== " << endl
  96. << "Maticni broj pacijenta: " << maticni.mb << endl
  97. << "Ime i prezime pacijenta: " << maticni.ime << endl
  98. << "Godine pacijenta: " << maticni.godine << endl
  99. << "--------------------------------------" << endl << endl
  100. << "Sigurno obisati?" << endl
  101. << "1. Obrisati" << endl
  102. << "2. Ostaviti" << endl
  103. << "Vas izbor: ";
  104. cin >> izbor;
  105.  
  106. if (izbor == 1) {
  107. int izbrisan = DeleteL(pozicija, lista);
  108. if (izbrisan){
  109. cout << "Pacijent je obrisan iz baze" << endl;
  110. return;
  111. }
  112. else{
  113. cout << "Greska, pacijent nije obrisan" << endl;
  114. return;
  115. }
  116. } // if izbor 1
  117. else if (izbor == 2) {
  118. cout << "Pacijent nije obrisan prema izboru korisnika" << endl;
  119. return;
  120. }
  121. else cout << "Krivi odabir, pacijent nije obrisan" << endl;
  122. } // if pozicija
  123. cout << "Pacijent s trazenim maticnim brojem ne postoji u evidenciji" << endl;
  124. };
  125.  
  126. int main () {
  127. int izbor;
  128. list* lista = InitL(lista);
  129. do {
  130. cout << "========== Izbornik ==========" << endl
  131. << "1. Unos pacijenata" << endl
  132. << "2. Sortiranje pacijenata" << endl
  133. << "3. Ispis maloljetnih pacijenata" << endl
  134. << "4. Brisanje pacijenata" << endl
  135. << "9. Izlaz iz programa" << endl
  136. << "Izbor: ";
  137. cin >> izbor;
  138. cout << endl << endl;
  139.  
  140. switch (izbor) {
  141. case 1:
  142. unos(lista);
  143. cout << endl;
  144. break;
  145. case 2:
  146. sort(lista);
  147. cout << endl;
  148. break;
  149. case 3:
  150. ispis(lista);
  151. cout << endl;
  152. break;
  153. case 4:
  154. brisanje(lista);
  155. cout << endl;
  156. break;
  157. case 9:
  158. break;
  159. }
  160. } while (izbor!=9);
  161. return 0;
  162. };

Report this snippet  

You need to login to post a comment.