Posted By

nsantek on 11/11/12


Tagged

Strukture podataka zadatak


Versions (?)

Zadatak_1 Strukture


 / Published in: C++
 

Rijesenje zadatka iz strukture podataka

  1. #include<iostream>
  2. #include "lista_polje.h"
  3. //#include "lista_pokazivac.h"
  4. using namespace std;
  5. int br=1;
  6. element unos(lista *novi){
  7. zivotinja unos,tren;
  8. int uvecaj=0;
  9. element lokacija=FirstL(novi);
  10. cout<<"Sifra zivotinje generirana! : "<<endl;
  11. cout<<br<<endl;
  12. unos.sifra=br;
  13. cin.ignore();
  14. cout<<"Vrsta zivotinje : "<<endl;
  15. cin.getline(unos.vrsta,35);
  16. cout<<"Naziv zivotinje : "<<endl;
  17. cin.getline(unos.naziv,35);
  18. cout<<"Dan : "<<endl;
  19. cin>>unos.datum[0];
  20. cout<<"Mjesec : "<<endl;
  21. cin>>unos.datum[1];
  22. cout<<"Godina : "<<endl;
  23. cin>>unos.datum[2];
  24. cout<<"Cijena : "<<endl;
  25. cin>>unos.cijena;
  26. uvecaj=InsertL(unos,EndL(novi),novi);
  27. if(uvecaj==1){
  28. cout<<endl<<"Element je uspjesno dodan!"<<endl<<endl;
  29. br++;
  30. }
  31. else
  32. cout<<"Element nije dodan! "<<endl<<endl;
  33. }
  34. void ispis(lista *ispis){
  35. element lokacija=EndL(ispis);
  36. lokacija=PreviousL(lokacija,ispis);
  37. if(EndL(ispis)!=FirstL(ispis)){
  38. while(5){
  39. zivotinja tren=RetreiveL(lokacija,ispis);
  40. cout<<"Sifra: "<<tren.sifra<<endl;
  41. cout<<"Vrsta: "<<tren.vrsta<<endl;
  42. cout<<"Naziv: "<<tren.naziv<<endl;
  43. cout<<"Datum: "<<tren.datum[0]<<"."<<tren.datum[1]<<"."<<tren.datum[2]<<endl;
  44. cout<<"Cijena: "<<tren.cijena<<endl;
  45. cout<<"\t\t\t\t\t\t\t\t"<<endl;
  46. if(lokacija==FirstL(ispis))break;
  47. lokacija=PreviousL(lokacija,ispis);
  48. }
  49. }
  50. }
  51. void datum(lista *pretraga){
  52. int broj=0;
  53. element lokacija=EndL(pretraga);
  54. lokacija=PreviousL(lokacija,pretraga);
  55. if(EndL(pretraga)!=FirstL(pretraga)){
  56. while(1){
  57. zivotinja tren=RetreiveL(lokacija,pretraga);
  58. if(tren.datum[2]==2012){
  59. if((tren.datum[1]>=9)){
  60. if(tren.datum[1]==9){
  61. if(tren.datum[0]>23){
  62. cout<<"Sifra: "<<tren.sifra<<endl;
  63. cout<<"Naziv: "<<tren.naziv<<endl;
  64. cout<<"Datum: "<<tren.datum[0]<<"."<<tren.datum[1]<<"."<<tren.datum[2]<<endl;
  65. cout<<"Vrsta: "<<tren.vrsta<<endl;
  66. cout<<"Cijena: "<<tren.cijena<<endl;
  67. cout<<"\t\t\t\t\t\t"<<endl;
  68. broj++;
  69. }
  70. }
  71. else{
  72. cout<<"Sifra: "<<tren.sifra<<endl;
  73. cout<<"Naziv: "<<tren.naziv<<endl;
  74. cout<<"Datum:: "<<tren.datum[0]<<"."<<tren.datum[1]<<"."<<tren.datum[2]<<endl;
  75. cout<<"Vrsta: "<<tren.vrsta<<endl;
  76. cout<<"Cijena: "<<tren.cijena<<endl;
  77. cout<<"\t\t\t\t\t\t"<<endl;
  78. broj++;
  79.  
  80. }
  81. }
  82. }
  83. else if(tren.datum[2]>2012){
  84. cout<<"Sifra: "<<tren.sifra<<endl;
  85. cout<<"Naziv: "<<tren.naziv<<endl;
  86. cout<<"Datum: "<<tren.datum[0]<<"."<<tren.datum[1]<<"."<<tren.datum[2]<<endl;
  87. cout<<"Vrsta: "<<tren.vrsta<<endl;
  88. cout<<"Cijena: "<<tren.cijena<<endl;
  89. cout<<"\t\t\t\t\t\t"<<endl;
  90. broj++;
  91.  
  92. }
  93.  
  94. if(lokacija==FirstL(pretraga))break;
  95. lokacija=PreviousL(lokacija,pretraga);
  96. }
  97. cout<<endl<<"Broj: "<<broj<<endl;
  98. }
  99. }
  100. void brisanje(lista *brisi){
  101. int potvrda;
  102. if(FirstL(brisi)==EndL(brisi))return;
  103. zivotinja tren;
  104. element lokacija=EndL(brisi);
  105. lokacija=PreviousL(lokacija,brisi);
  106. cout<<"Unesite naziv: "<<endl;
  107. cin.ignore();
  108. cin.getline(tren.naziv,35);
  109. element pozicija=LocateL(tren,brisi);
  110. potvrda=DeleteL(pozicija,brisi);
  111. if(potvrda==1)
  112. cout<<"Element uspjesno ukonjen! "<<endl;
  113. else
  114. cout<<"Element nije obrisan! "<<endl;
  115. }
  116. void brisanje_vrsta(lista *ukloni){
  117. zivotinja e;
  118. bool potvrda=false;
  119. if(FirstL(ukloni)==EndL(ukloni)){
  120. cout<<"Lista je prazna! "<<endl;
  121. return;}
  122. cout<<"Unesite vrstu: "<<endl;
  123. cin.ignore();
  124. cin.getline(e.vrsta,35);
  125. element lokacija=LocateL(e,ukloni);
  126. if(lokacija==0){
  127. DeleteL(lokacija,ukloni);
  128. potvrda=true;
  129. return;
  130. }
  131. else
  132. while(lokacija!=EndL(ukloni)){
  133. DeleteL(lokacija,ukloni);
  134. potvrda=true;
  135. lokacija=LocateL(e,ukloni);
  136. }
  137. if(potvrda==true)
  138. cout<<"Elementi uspjesno obrisani! "<<endl<<endl;
  139. else
  140. cout<<"Elementi nisu obrisani! "<<endl<<endl;
  141. }
  142. int main(){
  143. int izb;
  144. lista *L=InitL(L);
  145. do{
  146. cout<<" ########### IZBORNIK #############"<<endl;
  147. cout<<" 1. Dodaj zapis u listu po rastucoj sifri "<<endl;
  148. cout<<" 2. Ispis svih unesenih elemenata (od zadnjeg do prvog unesenog) "<<endl;
  149. cout<<" 3. Svi elementi novijeg datuma od 23.9.2012"<<endl;
  150. cout<<" 4. Brisanje elementa sa odredenim nazivom "<<endl;
  151. cout<<" 5. Brisanje svih elemenata odredene vrste "<<endl;
  152. cout<<" 6. Merge sort elemenata liste (silazno po cijeni i silazno po nazivu)"<<endl;
  153. cout<<" 0. Kraj programa "<<endl;
  154. cout<<" ###################################"<<endl;
  155. cout<<"->";
  156. cin>>izb;
  157. switch(izb){
  158. case 1:
  159. unos(L);
  160. break;
  161. case 2:
  162. ispis(L);
  163. break;
  164. case 3:
  165. datum(L);
  166. break;
  167. case 4:
  168. brisanje(L);
  169. break;
  170. case 5:
  171. brisanje_vrsta(L);
  172. break;
  173. case 6:
  174. element kraj=PreviousL(EndL(L),L);
  175. MSort(L,FirstL(L),EndL(L)-1);
  176. break;
  177. }
  178. }while(izb!=0);
  179. system("pause");
  180. return 0;
  181. }

Report this snippet  

You need to login to post a comment.