Posted By

Simec_Tino on 11/11/12


Tagged

1 - Strukture podataka zadatak tino simec


Versions (?)

Strukture podataka - zadatak 1


 / Published in: C++
 

Smatram da je moj kod specifičniji i jednostavniji za shvatiti drugima pošto koristim imena varijable preko kojih se može lako zaključiti o čemu se radi. Kod je napisan tako da bude što kraći, a opet da bude kvalitetan, lako čitljiv te pouzdan. Izbornik i ostale stvari koje se ispisuju naredbom cout grafički su uređene tako da output window bude što čitljiviji i uredniji.

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

Report this snippet  

You need to login to post a comment.