Posted By

tovrbosic on 10/24/10


Tagged


Versions (?)

lista_polje.h


 / Published in: C++
 

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct pacijent{
  5. int matbr;
  6. int dob;
  7. };
  8.  
  9. struct tpacijenti{
  10. pacijent podaci[500];
  11. int kursor;
  12. };
  13.  
  14. void InitL(tpacijenti *lista){
  15. lista->kursor=0;
  16. }
  17.  
  18. int FirstL(tpacijenti *lista){
  19. return 0;
  20. }
  21.  
  22. int EndL(tpacijenti *lista){
  23. return lista->kursor;
  24. }
  25.  
  26. int NextL(int p, tpacijenti *lista){
  27. if(p==lista->kursor-1) return EndL(lista);
  28. if (p>=lista->kursor) cout << "Greska lista nije definirana"<<endl;
  29. else{
  30. cout << "Maticni broj pacijenta "<<lista->podaci[p+1].matbr;
  31. cout << "Dob pacijenta "<<lista->podaci[p+1].dob;
  32. }
  33. }
  34.  
  35. void PreviousL(int p, tpacijenti *lista){
  36. if(p==lista->kursor) {
  37. cout << "Maticni broj pacijenta "<<lista->podaci[lista->kursor-1].matbr;
  38. cout << "Dob pacijenta "<<lista->podaci[lista->kursor-1].dob;
  39. }
  40. else{
  41. if (p<=0 || p>lista->kursor) cout << "Greska lista nije definirana"<<endl;
  42. else{
  43. cout << "Maticni broj pacijenta "<<lista->podaci[p-1].matbr;
  44. cout << "Dob pacijenta "<<lista->podaci[p-1].dob;
  45. }
  46. }
  47. }
  48.  
  49. int LocateL(int x, tpacijenti *lista){
  50. for (int i=0;i<lista->kursor;i++){
  51. if (lista->podaci[i].matbr==x) return i;
  52. }
  53. return EndL(lista);
  54. }
  55. void InsertL(pacijent x, int p, tpacijenti *lista){
  56. if(p>=0 && p<=lista->kursor){
  57. lista->kursor++;
  58. for (int i=lista->kursor-1;i>=p;i--){
  59. lista->podaci[i]=lista->podaci[i-1];
  60. }
  61. lista->podaci[p]=x;
  62. }
  63. else cout << "Niste unijeli dobru poziciju"<<endl;
  64. }
  65.  
  66. void DeleteL(int p, tpacijenti *lista){
  67. if(p>=0 && p<=lista->kursor){
  68. for (int i=p;i<lista->kursor-1;i++){
  69. lista->podaci[i]=lista->podaci[i+1];
  70. }
  71. lista->kursor--;
  72. }
  73. else cout << "Niste unijeli dobru poziciju"<<endl;
  74. }
  75.  
  76. pacijent RetrieveL(int p, tpacijenti *lista){
  77. if (p<0 || p>=lista->kursor) cout << "Krivo unesena pozicija"<<endl;
  78. else return lista->podaci[p];
  79. }
  80.  
  81. void DeleteAllL(tpacijenti *lista){
  82. lista->kursor=0;
  83. }
  84.  
  85. void sort(tpacijenti *lista){
  86. for (int i=1; i<lista->kursor; i++){
  87. int j=i-1;
  88. pacijent pom=lista->podaci[i];
  89. while(j>=0 && lista->podaci[j].matbr>pom.matbr)
  90. {lista->podaci[j+1]=lista->podaci[j];
  91. j=j-1;}
  92. lista->podaci[j+1]=pom;
  93. }
  94. }
  95. void ispis(tpacijenti *lista){
  96. for(int i=0;i<lista->kursor;i++){
  97. cout << "Maticni broj: "<<lista->podaci[i].matbr<<endl;
  98. cout << "Dob: "<<lista->podaci[i].dob<<endl;
  99. cout <<"-------------------"<<endl;
  100. }
  101.  
  102. }
  103.  
  104. void ispisgodine(tpacijenti *lista){
  105. int brojac=0;
  106. for (int i=0;i<lista->kursor;i++){
  107. if (lista->podaci[i].dob<18){
  108. cout << "Maticni broj: "<<lista->podaci[i].matbr<<endl;
  109. cout << "Dob: "<<lista->podaci[i].dob<<endl;
  110. cout << "----------------"<<endl;
  111. brojac++;
  112. }}
  113. cout << "Mladih od 18 ima: "<<brojac<<endl;
  114. }
  115.  
  116.  
  117. void unos(pacijent x, tpacijenti *lista){
  118.  
  119. lista->podaci[lista->kursor]=x;
  120. lista->kursor++;
  121. }
  122.  
  123. void Delete(tpacijenti *lista, int matbr){
  124. for (int i=0;i<lista->kursor;i++){
  125. if(lista->podaci[i].matbr==matbr){
  126. for (int j=i;j<lista->kursor-1;j++){
  127. lista->podaci[j]=lista->podaci[j+1];
  128. }
  129. lista->kursor--;
  130. }
  131. }
  132. }

Report this snippet  

You need to login to post a comment.