Posted By

markoaleric on 11/12/12


Tagged

lista implementacija evidencija zivotinja


Versions (?)

Zadatak 1 Glavni program


 / Published in: C++
 

Programsko rješenje za Evidenciju životinja za kolegij Strukture Podataka.

  1. #include<iostream>
  2. #include "lista_polje.h"
  3. //#include "lista_pokazivac.h"
  4. using namespace std;
  5. int sifra1=1;
  6.  
  7. int datum(int koje){
  8. int dan, mj, god;
  9. if(koje==0)
  10. return rand()%30+1;
  11. if(koje==1)
  12. return rand()%11+1;
  13. if(koje==2)
  14. return rand()%5+2010;
  15. }
  16. element unos(lista *l){
  17. tzivotinja un;
  18. un.sifra=sifra1++;
  19. cout<<"Sifra: "<<un.sifra<<endl;
  20. cin.ignore();
  21. cout<<"Unesi VRSTU: ";
  22. cin.getline(un.vrsta,40);
  23. cout<<"Unesi IME: ";
  24. cin.getline(un.ime,40);
  25. un.cijena=(rand()%15)*50;
  26. cout<<"Cijena: "<<un.cijena<<endl;
  27.  
  28. un.dan=datum(0);
  29. un.mj=datum(1);
  30. un.god=datum(2);
  31. cout<<"Datum dostave je "<<un.dan<<"."<<un.mj<<"."<<un.god<<endl;
  32. int a=InsertL(un,EndL(l),l);
  33. if(a!=0) cout<<"Uspjesno dodano...\n";
  34. else cout<<"Zapis nije uspjesno dodan...\n";
  35. }
  36.  
  37. void ispis(lista *l){
  38. element lokacija=EndL(l);
  39. if(EndL(l)!=FirstL(l)){
  40. cout<<"SIFRA\t\tVRSTA\t\tIME\t\tCIJENA\t\tDATUM\n";
  41. cout<<"-----\t\t-----\t\t---\t\t------\t\t-----\n";
  42. do{
  43. lokacija=PreviousL(lokacija,l);
  44. tzivotinja isp=RetreiveL(lokacija,l);
  45. cout<<isp.sifra<<"\t\t";
  46. cout<<isp.vrsta<<"\t\t";
  47. cout<<isp.ime<<"\t\t";
  48. cout<<isp.cijena<<"\t\t";
  49. cout<<isp.dan<<"."<<isp.mj<<"."<<isp.god<<endl;
  50. }while(lokacija!=FirstL(l));
  51. }
  52. }
  53.  
  54. void ispis_datum(lista *l){
  55. int m,d,g, ukupno=0;
  56. element lokacija=EndL(l);
  57. if(EndL(l)!=FirstL(l)){
  58. cout<<"SIFRA\t\tVRSTA\t\tIME\t\tCIJENA\t\tDATUM\n";
  59. cout<<"-----\t\t-----\t\t---\t\t------\t\t-----\n";
  60. do{
  61. lokacija=PreviousL(lokacija,l);
  62. tzivotinja ispis=RetreiveL(lokacija,l);
  63. d=ispis.dan;
  64. m=ispis.mj;
  65. g=ispis.god;
  66. if(g>2012){
  67. cout<<ispis.sifra<<"\t\t";
  68. cout<<ispis.vrsta<<"\t\t";
  69. cout<<ispis.ime<<"\t\t";
  70. cout<<ispis.cijena<<"\t\t";
  71. cout<<ispis.dan<<"."<<ispis.mj<<"."<<ispis.god<<endl;
  72. ukupno++;
  73. }
  74. else if(g==2012)
  75. if(m>9){
  76. cout<<ispis.sifra<<"\t\t";
  77. cout<<ispis.vrsta<<"\t\t";
  78. cout<<ispis.ime<<"\t\t";
  79. cout<<ispis.cijena<<"\t\t";
  80. cout<<ispis.dan<<"."<<ispis.mj<<"."<<ispis.god<<endl;
  81. ukupno++;
  82. }
  83. else if(g==2012)
  84. if(m==9)
  85. if(d>23){
  86. cout<<ispis.sifra<<"\t\t";
  87. cout<<ispis.vrsta<<"\t\t";
  88. cout<<ispis.ime<<"\t\t";
  89. cout<<ispis.cijena<<"\t\t";
  90. cout<<ispis.dan<<"."<<ispis.mj<<"."<<ispis.god<<endl;
  91. ukupno++;
  92. }
  93.  
  94.  
  95. }while(lokacija!=FirstL(l));
  96. cout<<"Ukupno: "<<ukupno<<endl;
  97. }
  98. }
  99. void brisi_ime(lista *l){
  100. if(FirstL(l)==EndL(l)){
  101. cout<<"Lista prazna\n";
  102. return;}
  103. tzivotinja brisi;
  104. cout<<"Unesite ime: ";
  105. cin.ignore();
  106. cin.getline(brisi.ime,40);
  107. brisiime=1;
  108. element pozicija=LocateL(brisi,l);
  109. int a=DeleteL(pozicija, l);
  110. if(a==1)
  111. cout<<"Zapis uspjesno ukonjen "<<endl;
  112. else
  113. cout<<"Zapis nije obrisan "<<endl;
  114. }
  115.  
  116. void brisi_vrsta(lista *l){
  117. tzivotinja e, brisi;
  118. bool uspjesno=false;
  119. cout<<"Unesite vrstu "<<endl;
  120. cin.ignore();
  121. cin.getline(brisi.vrsta,35);
  122. if(FirstL(l)==EndL(l))return;
  123. brisiime=0;
  124. element lokacija=LocateL(brisi,l);
  125.  
  126. while(lokacija!=EndL(l)){
  127. DeleteL(lokacija,l);
  128. uspjesno=true;
  129. lokacija=LocateL(brisi,l);
  130. }
  131.  
  132. if(uspjesno)
  133. cout<<"Zapisi uspjesno uklonjeni... "<<endl;
  134. else
  135. cout<<"Zapis nije obrisan... "<<endl;
  136. }
  137.  
  138. int main(){
  139. int izbor;
  140. lista *L=InitL(L);
  141. do{
  142. cout<<"\n1. Unos zivotinja\n";
  143. cout<<"2. Ispis od zadnjeg dodanog\n";
  144. cout<<"3. Ispis zivotinja dodanih nakon 23/09/2012\n";
  145. cout<<"4. Brisanje zapisa prema imenu\n";
  146. cout<<"5. Brisanje zapisa prema vrsti\n";
  147. cout<<"6. Sortiraj silazno prema cijeni i nazivu\n";
  148. cout<<"9. Izlaz\n";
  149. cout<<"Odaberi: ";
  150. cin>> izbor;
  151. cout<<endl;
  152.  
  153. switch(izbor){
  154. case 1:
  155. unos(L);break;
  156. case 2:
  157.  
  158. ispis(L);break;
  159. case 3:
  160. ispis_datum(L);break;
  161. case 4:
  162. brisi_ime(L);break;
  163. case 5:
  164. brisi_vrsta(L);break;
  165. case 6:;
  166. MSort(L);ispis(L);break;
  167.  
  168.  
  169.  
  170.  
  171. }
  172. }while(izbor!=9);
  173. system("pause");
  174. return 0;
  175. }

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: dmacan23 on November 12, 2012

Kod brisanja vrste, ti si radio while(lokacija != Endl), odnosno, ti si while izvršavao sve dok nisi došao do kraja liste, a ja sam stavio while(1), te jedan if koji provjerava jesam li došao do kraja i ako jesam, onda sam samo break-ao petlju

You need to login to post a comment.