Strukture podataka - main program


/ Published in: C++
Save to your folder(s)

Prikaz glavnog programa u kojem su realizirane funkcije za unos, ispis i brisanje. U glavnom programu pozivamo header listapokazivac.h ili listapolje.h


Copy this code and paste it in your HTML
  1. #include<iostream>
  2. #include "lista_polje.h"
  3. //#include "lista_pokazivac.h"
  4. using namespace std;
  5. int counter=1;
  6. element unos(lista *novi){
  7. zivotinja unos,trenutni;
  8. int uvecaj=0;
  9. element lokacija=FirstL(novi);
  10. cout<<"Sifra zivotinje "<<endl;
  11. cout<<counter<<endl;
  12. unos.sifra=counter;
  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. counter++;
  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 trenutni=RetreiveL(lokacija,ispis);
  40. cout<<"Sifra "<<trenutni.sifra<<endl;
  41. cout<<"Vrsta "<<trenutni.vrsta<<endl;
  42. cout<<"Naziv "<<trenutni.naziv<<endl;
  43. cout<<"Datum "<<trenutni.datum[0]<<"."<<trenutni.datum[1]<<"."<<trenutni.datum[2]<<endl;
  44. cout<<"Cijena "<<trenutni.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 trenutni=RetreiveL(lokacija,pretraga);
  58. if(trenutni.datum[2]==2012){
  59. if((trenutni.datum[1]>=9)){
  60. if(trenutni.datum[1]==9){
  61. if(trenutni.datum[0]>23){
  62. cout<<"Sifra "<<trenutni.sifra<<endl;
  63. cout<<"Naziv "<<trenutni.naziv<<endl;
  64. cout<<"Datum "<<trenutni.datum[0]<<"."<<trenutni.datum[1]<<"."<<trenutni.datum[2]<<endl;
  65. cout<<"Vrsta "<<trenutni.vrsta<<endl;
  66. cout<<"Cijena "<<trenutni.cijena<<endl;
  67. cout<<"\t\t\t\t\t\t"<<endl;
  68. broj++;
  69. }
  70. }
  71. else{
  72. cout<<"Sifra "<<trenutni.sifra<<endl;
  73. cout<<"Naziv "<<trenutni.naziv<<endl;
  74. cout<<"Datum "<<trenutni.datum[0]<<"."<<trenutni.datum[1]<<"."<<trenutni.datum[2]<<endl;
  75. cout<<"Vrsta "<<trenutni.vrsta<<endl;
  76. cout<<"Cijena "<<trenutni.cijena<<endl;
  77. cout<<"\t\t\t\t\t\t"<<endl;
  78. broj++;
  79.  
  80. }
  81. }
  82. }
  83. else if(trenutni.datum[2]>2012){
  84. cout<<"Sifra "<<trenutni.sifra<<endl;
  85. cout<<"Naziv "<<trenutni.naziv<<endl;
  86. cout<<"Datum "<<trenutni.datum[0]<<"."<<trenutni.datum[1]<<"."<<trenutni.datum[2]<<endl;
  87. cout<<"Vrsta "<<trenutni.vrsta<<endl;
  88. cout<<"Cijena "<<trenutni.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 trenutni;
  104. cout<<"Unesite naziv "<<endl;
  105. cin.ignore();
  106. cin.getline(trenutni.naziv,35);
  107. element pozicija=LocateL(trenutni,brisi);
  108. potvrda=DeleteL(pozicija,brisi);
  109. if(potvrda==1)
  110. cout<<"Element uspjesno ukonjen "<<endl;
  111. else
  112. cout<<"Element nije obrisan "<<endl;
  113. }
  114. void brisanje_vrsta(lista *ukloni){
  115. zivotinja e;
  116. bool potvrda=false;
  117. if(FirstL(ukloni)==EndL(ukloni)){
  118. cout<<"Lista je prazna "<<endl;
  119. return;}
  120. cout<<"Unesite vrstu "<<endl;
  121. cin.ignore();
  122. cin.getline(e.vrsta,35);
  123. element lokacija=LocateL(e,ukloni);
  124. if(lokacija==0){
  125. DeleteL(lokacija,ukloni);
  126. potvrda=true;
  127. return;
  128. }
  129. else
  130. while(lokacija!=EndL(ukloni)){
  131. DeleteL(lokacija,ukloni);
  132. potvrda=true;
  133. lokacija=LocateL(e,ukloni);
  134. }
  135. if(potvrda==true)
  136. cout<<"Elementi uspjesno obrisani "<<endl<<endl;
  137. else
  138. cout<<"Elementi nisu obrisani "<<endl<<endl;
  139. }
  140. int main(){
  141. int select;
  142. lista *L=InitL(L);
  143. do{
  144. cout<<"1. Dodaj zapis u listu po rastucoj sifri "<<endl<<endl;
  145. cout<<"2. Ispis svih unesenih elemenata (od zadnjeg do prvog unesenog) "<<endl<<endl;
  146. cout<<"3. Svi elementi novijeg datuma od 23.9.2012"<<endl<<endl;
  147. cout<<"4. Brisanje elementa sa odredenim nazivom "<<endl<<endl;
  148. cout<<"5. Brisanje svih elemenata odredene vrste "<<endl<<endl;
  149. cout<<"6. Merge sort elemenata liste (silazno po cijeni i silazno po nazivu)"<<endl<<endl;
  150. cout<<"0. Kraj programa "<<endl;
  151. cin>>select;
  152. switch(select){
  153. case 1:
  154. unos(L);
  155. break;
  156. case 2:
  157. ispis(L);
  158. break;
  159. case 3:
  160. datum(L);
  161. break;
  162. case 4:
  163. brisanje(L);
  164. break;
  165. case 5:
  166. brisanje_vrsta(L);
  167. break;
  168. case 6:
  169. MSort(L,FirstL(L),EndL(L)-1);
  170. break;
  171. }
  172. }while(select!=0);
  173. system("pause");
  174. return 0;
  175. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.