Posted By

juricamlak on 11/15/10


Tagged

zad2


Versions (?)

Main


 / Published in: C++
 

  1. #include <iostream>
  2. //#include "polje.h"
  3. #include "pokazivaci.h"
  4. #include <string.h>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. void DodajZapis(stog *S, car X) {
  10. PushS(S, X);
  11. }
  12.  
  13. void IskrcajOsimAudi(stog *S) {
  14.  
  15. stog Pomocni;
  16. InitS(&Pomocni);
  17. car Tekuci;
  18.  
  19. while (!IsEmptyS(S)) {
  20. Tekuci = TopS(S); PopS(S);
  21. if (strcmp(Tekuci.model.c_str(),"AUDI") != 0 && Tekuci.godina_proizvodnje > 2006) {
  22. cout << "Iskrcavam: " << Tekuci.broj << " ";
  23. cout << Tekuci.proizvodjac << " "; cout << Tekuci.model << " ";
  24. cout << Tekuci.godina_proizvodnje << endl;
  25.  
  26. }
  27. else {
  28. PushS(&Pomocni, Tekuci);
  29. }
  30. }
  31.  
  32. cout << endl << "Neiskrcana vozila, od dna prema vrhu:" << endl;
  33. while (!IsEmptyS(&Pomocni)) {
  34. Tekuci = TopS(&Pomocni); PopS(&Pomocni);
  35. cout << Tekuci.broj << " " << Tekuci.proizvodjac << " ";
  36. cout << Tekuci.model << " " << Tekuci.godina_proizvodnje << endl;
  37. PushS(S, Tekuci);
  38. }
  39.  
  40. }
  41.  
  42. void IskrcajAudi(stog *S) {
  43.  
  44. if (IsEmptyS(S)) {
  45. return;
  46. }
  47. else {
  48. car Tekuci;
  49. Tekuci = TopS(S); PopS(S);
  50.  
  51. IskrcajAudi(S); // rekurzivan poziv
  52.  
  53. if (strcmp(Tekuci.model.c_str(),"AUDI") == 0) {
  54. cout << "Iskrcavam: " << Tekuci.broj << " ";
  55. cout << Tekuci.proizvodjac << " "; cout << Tekuci.model << " ";
  56. cout << Tekuci.godina_proizvodnje << endl;
  57. }
  58. else {
  59. PushS(S, Tekuci);
  60. }
  61. }
  62.  
  63. }
  64.  
  65. int main() {
  66.  
  67. stog StogAutomobila;
  68. stog StogKopija;
  69.  
  70.  
  71. InitS(&StogAutomobila);
  72. InitS(&StogKopija);
  73. int izbor;
  74. car Auto;
  75. do {
  76. cout<<"----------------------------------------------------"<<endl;
  77. cout<< "IZBORNIK"<<endl;
  78. cout << "1 unesite za dodavanje zapisa." << endl;
  79. cout << "2 nesite za iskrcaj novih auta koji nisu Audi." << endl;
  80. cout << "3 unesite za iskrcaj svih Audija." << endl;
  81. cout << "4 unesite za izlaz." << endl;
  82. cout << "------------------------------------------------"<<endl;
  83. cout<<"Vas izbor: ";
  84. cin >> izbor;
  85. cout<<endl<<endl;
  86. switch (izbor) {
  87. case 1:
  88.  
  89. for (int i = 0; i < 15; i++) {
  90. cout << "Unesite sifru auta: ";
  91. cin >> Auto.broj;
  92. do {
  93. cout << "Unesite godinu proizvodnje: ";
  94. cin >> Auto.godina_proizvodnje;
  95. } while (Auto.godina_proizvodnje < 1995 ||Auto.godina_proizvodnje>2010);
  96. cout << "Unesite proizvodac: ";
  97. cin >> Auto.model;
  98. cout << "Unesite model: ";
  99. cin >> Auto.proizvodjac;
  100. cout<<endl<<endl;
  101. DodajZapis(&StogAutomobila, Auto);
  102. DodajZapis(&StogKopija, Auto);
  103. }
  104. break;
  105. case 2:
  106. // funkciju iz b) zadatka testiramo nad StogAutomobila
  107. IskrcajOsimAudi(&StogAutomobila);
  108. break;
  109. case 3:
  110. // ... dok funkciju iz c) zadatka nad StogKopija
  111. IskrcajAudi(&StogKopija);
  112.  
  113. car Tekuci;
  114. cout << endl << "Neiskrcana vozila, od vrha prema dnu (ispraznjuje stog):" << endl;
  115. while (!IsEmptyS(&StogKopija)) {
  116. Tekuci = TopS(&StogKopija); PopS(&StogKopija);
  117. cout << Tekuci.broj << " " << Tekuci.proizvodjac << " ";
  118. cout << Tekuci.model << " " << Tekuci.godina_proizvodnje << endl;
  119. }
  120.  
  121. break;
  122. }
  123. } while(izbor!=4);
  124.  
  125. return 0;
  126. }

Report this snippet  

You need to login to post a comment.