Posted By

Pvrbek on 11/12/12


Tagged

Strukture podataka foi


Versions (?)

Strukture podataka/Evidencija životinja/Main


 / Published in: C++
 

Ovaj program služi za evidenciju životinja (šifra životinja,vrsta,naziv,cijenu i datum dostave).Program je implementiran pomoću lista s pomoću pokazivača i pomoču polja koje smo stavili kao dvije različite datoteke zaglavlja s pomoću kojih možemo pokrenuti program.Mislim da je moj program dobar i drugaciji od ostalih jer sam stavio da se kod krivog unosa datuma ili cijene skoči ponovo na njihov upis da se nebi upisali krivi brojevi što bih naveo kao glavnu razliku od programa ostalih studenata koje sam vidio te sam uglavnom koristio imena varijabli i funkcija na način da se jednostavno i brzo primjeti čemu služe, te sam također upotrebljavao liste na način kako smo to radili na programiranju 2 pa mislim da je jednostavno za razumjeti.

  1. #include<iostream>
  2. //#include "lista_polje.h"
  3. #include "lista_pokazivac.h"
  4. using namespace std;
  5. int sif=1;
  6. clan dodaj(lis *novi){
  7. zivine dodaj,tekuci;
  8. int stavi=0;
  9. clan mjesto=FirstL(novi);
  10. cout<<"Sifra zivotinje: "<<sif<<"."<<endl;
  11. dodaj.sifra=sif;
  12. cin.ignore();
  13. cout<<"Vrsta zivotinje: "<<endl;
  14. cin.getline(dodaj.vrsta,40);
  15. cout<<"Naziv zivotinje: "<<endl;
  16. cin.getline(dodaj.naziv,40);
  17. p1: cout<<"Dan: "<<endl;
  18. cin>>dodaj.dat[0];
  19. if(dodaj.dat[0]<1 || dodaj.dat[0]>31){
  20. cout<<"Taj dan ne postoji.Unesite ponovo."<<endl;
  21. goto p1;}
  22. p2: cout<<"Mjesec: "<<endl;
  23. cin>>dodaj.dat[1];
  24. if(dodaj.dat[1]<1 || dodaj.dat[1]>12){
  25. cout<<"Taj mjesec ne postoji.Unesite ponovo."<<endl;
  26. goto p2;}
  27. cout<<"Godina: "<<endl;
  28. cin>>dodaj.dat[2];
  29. p3: cout<<"Cijena: "<<endl;
  30. cin>>dodaj.cijena;
  31. if(dodaj.cijena<1){
  32. cout<<"Unesena pogresna cijena.Unesite ponovo."<<endl;
  33. goto p3;}
  34. stavi=InsertL(dodaj,EndL(novi),novi);
  35. if(stavi==1){
  36. cout<<endl<<"1"<<endl<<endl;
  37. sif++;
  38. }
  39. else cout<<"0"<<endl<<endl;
  40. }
  41. void ispis(lis *ispis){
  42. clan mjesto=EndL(ispis);
  43. mjesto=PreviousL(mjesto,ispis);
  44. if(EndL(ispis)!=FirstL(ispis)){
  45. while(1){
  46. zivine tekuci=RetreiveL(mjesto,ispis);
  47. cout<<"Sifra: "<<tekuci.sifra<<endl;
  48. cout<<"Vrsta: "<<tekuci.vrsta<<endl;
  49. cout<<"Naziv: "<<tekuci.naziv<<endl;
  50. cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
  51. cout<<"Cijena: "<<tekuci.cijena<<endl;
  52. if(mjesto==FirstL(ispis))break;
  53. mjesto=PreviousL(mjesto,ispis);
  54. cout<<endl;
  55. }//while
  56. }//if
  57. }
  58. void dat(lis *pretraga){
  59. int broj=0;
  60. clan mjesto=EndL(pretraga);
  61. mjesto=PreviousL(mjesto,pretraga);
  62. if(EndL(pretraga)!=FirstL(pretraga)){
  63. while(1){
  64. zivine tekuci=RetreiveL(mjesto,pretraga);
  65. if(tekuci.dat[2]==2012){
  66. if((tekuci.dat[1]>=9)){
  67. if(tekuci.dat[1]==9){
  68. if(tekuci.dat[0]>23){
  69. cout<<"Sifra: "<<tekuci.sifra<<endl;
  70. cout<<"Naziv: "<<tekuci.naziv<<endl;
  71. cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
  72. cout<<"Vrsta: "<<tekuci.vrsta<<endl;
  73. cout<<"Cijena: "<<tekuci.cijena<<endl;
  74. broj++;
  75. }
  76. }
  77. else{
  78. cout<<"Sifra: "<<tekuci.sifra<<endl;
  79. cout<<"Naziv: "<<tekuci.naziv<<endl;
  80. cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
  81. cout<<"Vrsta: "<<tekuci.vrsta<<endl;
  82. cout<<"Cijena: "<<tekuci.cijena<<endl;
  83. broj++;
  84. }
  85. }
  86. }
  87. else if(tekuci.dat[2]>2012){
  88. cout<<"Sifra: "<<tekuci.sifra<<endl;
  89. cout<<"Naziv: "<<tekuci.naziv<<endl;
  90. cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
  91. cout<<"Vrsta: "<<tekuci.vrsta<<endl;
  92. cout<<"Cijena: "<<tekuci.cijena<<endl;
  93. broj++;
  94. }
  95. if(mjesto==FirstL(pretraga))break;
  96. mjesto=PreviousL(mjesto,pretraga);
  97. cout<<endl;
  98. }//while
  99. cout<<endl<<"Broj: "<<broj<<endl;
  100. }//if(endl)
  101. }//funk
  102. void brisi(lis *brisi){
  103. int t;
  104. if(FirstL(brisi)==EndL(brisi))return;
  105. zivine tekuci;
  106. clan mjesto=EndL(brisi);
  107. mjesto=PreviousL(mjesto,brisi);
  108. cout<<"Unesite naziv: "<<endl;
  109. cin.ignore();
  110. cin.getline(tekuci.naziv,40);
  111. clan pozicija=LocateL(tekuci,brisi);
  112. t=DeleteL(pozicija,brisi);
  113. if(t==1)
  114. cout<<"1"<<endl;
  115. else
  116. cout<<"0"<<endl;
  117. }
  118.  
  119. void brisiv(lis *makni){
  120. zivine brisi;
  121. bool t=false;
  122. if(FirstL(makni)==EndL(makni)){
  123. cout<<"Lista je prazna... "<<endl;
  124. return;}
  125. cout<<"Unesite vrstu: "<<endl;
  126. cin.ignore();
  127. cin.getline(brisi.vrsta,40);
  128. clan mjesto=LocateL(brisi,makni);
  129. if(mjesto==0){
  130. DeleteL(mjesto,makni);
  131. t=true;
  132. return;}
  133. else
  134. while(mjesto!=EndL(makni)){
  135. DeleteL(mjesto,makni);
  136. t=true;
  137. mjesto=LocateL(brisi,makni);}
  138. if(t==true) cout<<"1"<<endl<<endl;
  139. else cout<<"0"<<endl<<endl;}
  140. int main(){
  141. int odabir;
  142. lis *L=InitL(L);
  143. do{
  144. cout<<"\t\t\t\tIZBORNIK"<<endl;
  145. cout<<"\t\t\t\t--------"<<endl;
  146. cout<<"1. Dovanje zapisa po rastucoj sifri zivotinje "<<endl;
  147. cout<<"2. Ispis sadrzaja liste od posljednje"<<endl;
  148. cout<<"3. Pretrazivanje liste i ispis svih zivotinja(poslje 23.9.2012)"<<endl;
  149. cout<<"4. Brisanje pojedinih zivotinja po nazivu"<<endl;
  150. cout<<"5. Brisanje zivotinja odredene vrste"<<endl;
  151. cout<<"6. Silazni Merge sort"<<endl;
  152. cout<<"7. Kraj programa"<<endl;
  153. cout<<endl;
  154. p4 : cout<<"ODABIR: ";
  155. cin>>odabir;
  156. if(odabir<1 || odabir>7){
  157. cout<<"Krivi unos!"<<endl;
  158. goto p4;}
  159. switch(odabir){
  160. case 1:dodaj(L);break;
  161. case 2:ispis(L);break;
  162. case 3:dat(L);break;
  163. case 4:brisi(L);break;
  164. case 5:brisiv(L);break;
  165. case 6:clan kraj=PreviousL(EndL(L),L);Merge(L,FirstL(L),EndL(L)-1);break;
  166. }
  167. }while(odabir!=7);
  168. return 0;
  169. }

Report this snippet  

You need to login to post a comment.