Posted By

Lovro_P on 11/12/12


Tagged

Strukture podataka c++ polja


Versions (?)

Lista polja


 / Published in: C++
 

biblioteka za implementaciju ATP lista preko polja

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void text(char *ime){
  5. cin.getline(ime,30);
  6. if(cin.gcount()==1)
  7. cin.getline(ime,30);
  8. }//void unos znakovnog niza
  9.  
  10. struct pzivotinja{
  11. int sifra,dan,mjesec,godina;
  12. float cijena;
  13. char naziv[20], vrsta[20];
  14. } ;//struktura
  15.  
  16.  
  17. struct tzivotinja{
  18. pzivotinja*element[1000];
  19. int kursor;
  20. };
  21.  
  22. tzivotinja polje[1000];
  23.  
  24. int FirstL(tzivotinja*zivotinja){
  25. return 0;
  26. }
  27.  
  28. int EndL(tzivotinja *zivotinja){
  29. return zivotinja->kursor;
  30. }
  31.  
  32. int NextL(int k,tzivotinja *zivotinja){
  33. return k+1;
  34. }
  35.  
  36. int PreviousL(int k,tzivotinja *zivotinja){
  37. return k-1;
  38. }
  39.  
  40. int LocateL(int n,tzivotinja *zivotinja){
  41. for(int i=0;i<zivotinja->kursor;i++){
  42. if(n==zivotinja->element[i]->sifra)return i;
  43. }
  44. return zivotinja->kursor;
  45. }
  46. void InsertL(pzivotinja*novi, int k, tzivotinja *zivotinja) {
  47. if(k>EndL(zivotinja))
  48. cout<<"Prevelika pozicija!\n";
  49.  
  50. else{
  51. for (int i = EndL(zivotinja); i > k; i--) {
  52. zivotinja->element[i] = zivotinja->element[i-1];
  53. }
  54. zivotinja->element[k] = novi;
  55. zivotinja->kursor = zivotinja->kursor + 1;
  56. }
  57. }
  58. int DeleteL(int k, tzivotinja *zivotinja){
  59. k-=1;
  60. if(k>EndL(zivotinja)-1)
  61. cout<<"Taj element ne postoji!\n";
  62. else{
  63. for(int i=k;i<EndL(zivotinja);i++){
  64. zivotinja->element[i]=zivotinja->element[i+1];
  65. }
  66. zivotinja->kursor=zivotinja->kursor-1;
  67. return 0;
  68. }
  69. }
  70. void DeleteAll(tzivotinja *zivotinja){
  71. zivotinja->kursor=0;
  72. }
  73. int NumberL(tzivotinja *zivotinja){
  74. int k=zivotinja->kursor;
  75. return k;
  76. }
  77. pzivotinja*RetrieveL(int k,tzivotinja *zivotinja){
  78. return zivotinja->element[k-1];
  79. }
  80. tzivotinja *InitL(tzivotinja *zivotinja){
  81. tzivotinja *novi=new tzivotinja;
  82. novi->kursor=0;
  83. return novi;
  84. }
  85.  
  86.  
  87. pzivotinja *UnosL(int a,pzivotinja *novi){
  88. int velicina=a;
  89. novi->sifra=velicina;
  90.  
  91. cout<< "-----------UNOS------------\n" ;
  92. cout<<"Unesite zivotinju pod sifrom " << novi->sifra << endl;
  93.  
  94. cout << "Vrsta zivotinje : ";
  95. text(novi->vrsta);
  96. cout<<endl;
  97.  
  98. cout<< "Naziv zivotinje : " ;
  99. text(novi->naziv);
  100. cout<<endl;
  101.  
  102. cout << "Cijena zivotinje :" << ((novi->sifra+1)*100) ;
  103. novi->cijena =(novi-> sifra+1)*100;
  104. cout<<endl;
  105.  
  106. cout <<"Datum dostave zivotinje (dd.mm.gggg) :" ;
  107.  
  108. do{
  109. cout<< " Dan unosa(1.-31.): " ;
  110. cin>>novi->dan ;
  111. cout<<endl;
  112. }while(novi->dan <0 || novi->dan >31);
  113.  
  114. do{
  115. cout << " Mjesec unosa (1.-12.): " ;
  116. cin >> novi->mjesec ;
  117. cout<<endl;
  118. }while(novi->mjesec <0 || novi->mjesec >12);
  119.  
  120. do{
  121. cout << " Godina unosa (2000-2020): " ;
  122. cin >> novi->godina;
  123. cout<<endl;
  124. }while(novi->godina <2000 || novi->godina >2020);
  125.  
  126. cout <<"VAS ZAPIS JE USPJESNO DODAN !!! " << endl;
  127.  
  128.  
  129. }

Report this snippet  

You need to login to post a comment.