Posted By

dmacan23 on 11/12/12


Tagged

lista sp Strukture ATP strukturepodataka Macan


Versions (?)

Strukture_Podataka_Z1-glavna.cpp


 / Published in: C++
 

  1. Zadatak kolegija "Strukture podataka" na Fakultetu Organizacije i Informatike u Varaždinu. Trebalo je napraviti program koji služi za evidenciju kućnih ljubimaca u trgovini za kućne ljubimce, i to pomoću ATP liste implementirane poljem i pokazivačima. Ovo je glavna funkcija koja treba još ili "listapokazivaci.h", ili "listapolje.h" kako bi radila
  1. /*
  2.  * glavna.cpp
  3.  *
  4.  * Created on: Nov 8, 2012
  5.  * Author: David Ante Macan
  6.  */
  7.  
  8. #include <iostream>
  9. //#include "lista_pokazivaci.h"
  10. #include "lista_polje.h"
  11. bool polje = false;
  12. using namespace std;
  13.  
  14. void unos(char *niz){
  15. cin.getline(niz, 100);
  16. if(cin.gcount()==1)
  17. cin.getline(niz,100);
  18. }
  19.  
  20. int sif=1;
  21. int mog_1(tlista *L){
  22. tziv nova;
  23. nova.sifra = sif;
  24. cout<<"Sifra zivotinje: "<<nova.sifra<<endl;
  25. cout<<"Vrsta zivotinje: ";
  26. unos(nova.vrsta);
  27. cout<<"Naziv zivotinje: ";
  28. unos(nova.naziv);
  29. cout<<"Cijena zivotinje: ";
  30. cin>>nova.cijena;
  31. cout<<"Datum: "<<endl;
  32. do{
  33. cout<<"\tGodina (YYYY): ";
  34. cin>>nova.datum[0];
  35. }while(nova.datum[0]<1970 || nova.datum[0]>2020);
  36. do{
  37. cout<<"\tMjesec (MM): ";
  38. cin>>nova.datum[1];
  39. }while(nova.datum[1]<0 || nova.datum[1]>12);
  40. do{
  41. cout<<"\tDan (DD): ";
  42. cin>>nova.datum[2];
  43. }while(nova.datum[2]<0 || nova.datum[2]>30);
  44. int provjera_upisa = InsertL(nova, EndL(L), L);
  45. if(provjera_upisa){
  46. cout<<"Upis je bio uspjesan!"<<endl;
  47. sif++;
  48. return 1;
  49. }
  50. else
  51. return 0;
  52.  
  53. }
  54.  
  55. void ispis(tziv tekuci){
  56. cout<<"\n\n"
  57. <<"Sifra zivotinje: "<<tekuci.sifra<<endl
  58. <<"Vrsta zivotinje: "<<tekuci.vrsta<<endl
  59. <<"Naziv zivotinje: "<<tekuci.naziv<<endl
  60. <<"Cijena zivotinje: "<<tekuci.cijena<<endl
  61. <<"Datum dostave: "<<tekuci.datum[2]<<"."<<tekuci.datum[1]<<"."<<tekuci.datum[0]<<"."<<endl
  62. <<"-------------------------------------"<<endl<<endl;
  63. }
  64.  
  65. int mog_2(tlista *L){
  66. tziv z;
  67. tip zadnji = PreviousL(EndL(L),L);
  68. while(EndL(L)!=FirstL(L)){
  69. z = RetrieveL(zadnji, L);
  70. ispis(z);
  71. if(zadnji == FirstL(L))
  72. break;
  73. zadnji = PreviousL(zadnji,L);
  74. }
  75. return 1;
  76. }
  77.  
  78. int mog_3(tlista *L){
  79. tziv z;
  80. tip iduci = FirstL(L);
  81. cout<<"Ispis: "<<endl;
  82. while(1){
  83. z = RetrieveL(iduci,L);
  84. if(z.datum[0]>2012)
  85. ispis(z);
  86. if(z.datum[0]==2012){
  87. if((z.datum[1]==9) && (z.datum[2]>=23))
  88. ispis(z);
  89. else if(z.datum[1]>9)
  90. ispis(z);
  91. }
  92. if(iduci == PreviousL(EndL(L),L))
  93. break;
  94. iduci = NextL(iduci, L);
  95. }
  96. return 1;
  97.  
  98. }
  99.  
  100. int mog_4(tlista *L){
  101. tziv z;
  102. tip tekuci = FirstL(L);
  103. char vrsta[30];
  104. cout<<"Unesite vrstu koju zelite obrisati: ";
  105. unos(vrsta);
  106. cout<<"\n\nBrisanje"<<endl<<endl;
  107. while(1){
  108. z = RetrieveL(tekuci,L);
  109. if(strcmp(vrsta, z.vrsta)==0){
  110. cout<<tekuci<<" | ";
  111. DeleteL(tekuci, L);
  112. if(tekuci==PreviousL(EndL(L),L))
  113. break;
  114. }
  115. if(tekuci == NextL(EndL(L),L))
  116. break;
  117. tekuci = NextL(tekuci,L);
  118. }
  119. return 1;
  120. }
  121.  
  122.  
  123. int mog_5(tlista *L){
  124. tziv z;
  125. tip tekuci = FirstL(L);
  126. char naziv[30];
  127. cout<<"Unesite koji naziv zelite obrisati: ";
  128. unos(naziv);
  129. cout<<"\n\nBrisanje"<<endl<<endl;
  130. while(1){
  131. z = RetrieveL(tekuci,L);
  132. if(strcmp(naziv, z.naziv)==0){
  133. DeleteL(tekuci,L);
  134. if(tekuci==PreviousL(EndL(L),L))
  135. break;
  136. }
  137. if(tekuci == PreviousL(EndL(L),L))
  138. break;
  139. tekuci = NextL(tekuci,L);
  140. }
  141. return 1;
  142. }
  143.  
  144.  
  145. int main(){
  146. tlista *L = InitL(L);
  147. int odabir;
  148. do{
  149. cout<<"\n\n\n----------------------------------------------------"<<endl
  150. <<"1. Zapis prema rastucoj sifri zivotinje"<<endl
  151. <<"2. Ispis svih zivotinja od posljednje unesene"<<endl
  152. <<"3. Ispis svih zivotinja sa datumom nakon 23.09.2012."<<endl
  153. <<"4. Brisanje pojedinacnih unosa prema vrsti"<<endl
  154. <<"5. Brisanje pojedinacnih unosa prema nazivu"<<endl
  155. <<"6. Silazno sortiranje sadrzaja liste prema cijeni i nazivu"<<endl
  156. <<"7. {TEST} DeleteAllL(L)"<<endl
  157. <<"9. Izlaz iz programa"<<endl
  158. <<"----------------------------------------------------------"<<endl
  159. <<"\nOdabir: ";
  160. cin>>odabir;
  161.  
  162. switch(odabir){
  163. case 1: mog_1(L); break;
  164. case 2: mog_2(L); break;
  165. case 3: mog_3(L); break;
  166. case 4: mog_4(L); break;
  167. case 5: mog_5(L); break;
  168. case 6: MSort(L,FirstL(L),EndL(L)-1); break;
  169. case 7: DeleteAllL(L); break;
  170. case 9: cout<<"\n\n\n\t\t--- KRAJ PROGRAMA ---"<<endl; break;
  171. default: cout<<"\n\nPogresan unos! Odaberite jedan od ponudjenih!"<<endl; break;
  172. }
  173. }while(odabir!=9);
  174. return 0;
  175. }

Report this snippet  

You need to login to post a comment.