Posted By

Mathabaws on 11/12/12


Tagged

1 Strukture podataka zadatak evidencija zivotinja listah


Versions (?)

lista.h


 / Published in: C++
 

Header file za 1 zadatak strukture podataka 2012

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<cstring>
  4. using namespace std;
  5.  
  6. struct pzivotinja{
  7. int sifra;
  8. char vrsta[30];
  9. char naziv[30];
  10. float cijena;
  11. int dan, mjesec, godina;
  12. pzivotinja *slijedeci;
  13. pzivotinja *prethodni;
  14. };
  15. pzivotinja *lista = new pzivotinja;
  16.  
  17. int sifra = 100;
  18.  
  19. int InsertL(int p, pzivotinja*lista){
  20. if(p==1){ lista->slijedeci = NULL;
  21. lista->prethodni = NULL;
  22. }
  23. pzivotinja *novi,*zadnji;
  24. zadnji = lista;
  25. while(zadnji->slijedeci)
  26. zadnji = zadnji->slijedeci;
  27. novi = new pzivotinja;
  28. novi->prethodni = zadnji;
  29. novi->slijedeci = NULL;
  30. zadnji->slijedeci = novi;
  31.  
  32. novi->sifra = sifra;
  33. cout << "Unesite vrstu zivotinje: ";
  34. cin>> novi->vrsta;
  35. cout << "Unesite naziv zivotinje: ";
  36. cin>> novi->naziv;
  37. cout << "Unesite cijenu zivotinje: ";
  38. cin>> novi->cijena;
  39. cout << "Unesite dan zaprimanja: ";
  40. cin >>novi->dan;
  41. cout << "Unesite mjesec zaprimanja: ";
  42. cin >>novi->mjesec;
  43. cout << "Unesite godinu zaprimanja: ";
  44. cin >>novi->godina;
  45. sifra++;
  46. cout << "Zapis uspjesno dodan!"<<endl;
  47. return 1;
  48. }
  49. int NumberL(pzivotinja*lista){
  50. pzivotinja*zadnji;
  51. zadnji = lista;
  52. int brojac = 0;
  53. while(zadnji ->slijedeci){
  54. zadnji = zadnji -> slijedeci;
  55. brojac ++;
  56. }
  57. return brojac;
  58. }// NumberL
  59.  
  60. int RetriveL(int p, pzivotinja *lista){
  61. pzivotinja*zadnji;
  62. zadnji =lista;
  63. int brojac = 0;
  64. while(brojac < p){
  65. zadnji = zadnji->slijedeci;
  66. brojac++;
  67. }
  68. cout<< "-----------------------------------"<<endl;
  69. cout<< "Sifra: "<<zadnji->sifra<<endl;
  70. cout<<"Naziv zivotinje: "<<zadnji->naziv<<endl;
  71. cout<<"Vrsta zivotinje: "<<zadnji->vrsta<<endl;
  72. cout<<"Cijena zivotinje: "<<zadnji->cijena<<" kn."<<endl;
  73. cout<<"Datum zaprimanja: "<<zadnji->dan<<"/"<<zadnji->mjesec<<"/"<<zadnji->godina<<"."<<endl;
  74. cout<< "-----------------------------------"<<endl;
  75. }
  76. int pretrazi(pzivotinja *lista){
  77. pzivotinja *tekuci = lista->slijedeci;
  78. int br2=0;
  79. cout<<"Izvotinje unesene poslije 23/9/2012 su:"<<endl;
  80. while(tekuci){
  81. if(tekuci->godina<2012) { tekuci=tekuci->slijedeci; continue;}
  82. if(tekuci->godina==2012 && tekuci->mjesec<9) { tekuci=tekuci->slijedeci; continue;}
  83. if(tekuci->mjesec==9 && tekuci->godina==2012 && tekuci->dan<=23) { tekuci=tekuci->slijedeci; continue;}
  84.  
  85. else{
  86. cout<<"------------------------------------"<<endl;
  87. cout <<"Sifra: "<<tekuci->sifra<<endl;
  88. cout<<"Vrsta zivotinje: "<<tekuci->vrsta<<endl;
  89. cout<<"Naziv zivotinje: "<<tekuci->naziv<<endl;
  90. cout<<"Cijena zivotinje: "<<tekuci->cijena<<endl;
  91. cout<<"Datum zaprimanja: "<<tekuci->dan<<"/"<<tekuci->mjesec<<"/"<<tekuci->godina<<"."<<endl;
  92. br2++;
  93.  
  94.  
  95. }//ispis
  96. tekuci = tekuci->slijedeci;
  97.  
  98. }//while tekuci
  99. cout<<"Broj zivotinja unesenih poslije 23/09/2012.: "<<br2<<endl;
  100. }//pretrazi
  101.  
  102. int LocateL(pzivotinja *lista, char naziv[]){
  103. pzivotinja *tekuci = lista->slijedeci;
  104. int br3 = 0;
  105. while(tekuci){
  106. br3++;
  107. if(strcmp(naziv, tekuci->naziv)) return br3;
  108. tekuci = tekuci->slijedeci;
  109. }
  110.  
  111. }//locatel
  112.  
  113. int DeleteL(pzivotinja *lista, char naziv[]){
  114. pzivotinja *brisi = lista->slijedeci, *prethodni =lista;
  115. while(brisi){
  116. if(!strcmp(naziv, brisi->naziv)){
  117. prethodni->slijedeci = brisi->slijedeci;
  118. delete brisi;
  119. cout << "Zivotinja je izbrisana sa liste. " << endl;
  120. return 1;
  121. }
  122. prethodni = brisi;
  123. brisi = brisi->slijedeci;
  124. }
  125. cout<<"Zivotinja za brisanje nije proadjena!"<<endl;
  126. return 0;
  127. }
  128.  
  129. int DeleteL(char vrsta[],pzivotinja *lista){
  130.  
  131. pzivotinja *brisi = lista->slijedeci, *prethodni =lista;
  132. while(brisi){
  133. if(!strcmp(vrsta, brisi->vrsta)){
  134. prethodni->slijedeci = brisi->slijedeci;
  135. delete brisi;
  136.  
  137. return DeleteL(vrsta,lista);
  138. }
  139.  
  140. prethodni = brisi;
  141. brisi = brisi->slijedeci;
  142. cout << "Vrsta je izbrisana sa liste. " << endl;
  143. }
  144.  
  145. cout<<"Vrsta za brisanje nije proadjena!"<<endl;
  146. return 0;
  147.  
  148. }

Report this snippet  

You need to login to post a comment.