Posted By

Sico0713 on 11/14/10


Tagged


Versions (?)

Zadatak 2


 / Published in: C++
 

Prikaz glavnog koda

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. #include "stog_pokazivac.h"
  5. //#include "stog_polje.h"
  6. STACK *s;
  7. automobil a;
  8. char audi[] = "Audi";
  9. void Unos (STACK *stack1) {
  10. automobil A;
  11. cout << "\nSerijski broj: ";
  12. cin >> A.sbroj;
  13. cout << "Proizvodjac: ";
  14. cin.ignore(); cin.getline(A.proizv, 20);
  15. cout << "Model: ";
  16. cin.getline(A.model, 20);
  17. int p = 0;
  18. do {
  19. cout << "Godina proizvodnje: ";
  20. cin >> A.god;
  21. if (A.god < 1995 || A.god > 2010) {
  22. cout << "Godista automobila moraju biti u rasponu od 1995 do 2010!\n";
  23. p = 1;
  24. }
  25. } while (p);
  26. PushS(A, stack1);
  27. }
  28. void Stanje_na_stogu (STACK *stack1) {
  29. STACK *stack2 = new STACK;
  30. InitS(stack2);
  31. while ( !IsEmptyS(stack1) ) {
  32. a = TopS(stack1);
  33. cout << "\nSerijski broj: " << a.sbroj << "\nProizvodjac: " << a.proizv << "\nModel: " << a.model << "\nGodina proizvodnje: " << a.god << "\n";
  34. PushS(a, stack2);
  35. PopS(stack1);
  36. }
  37. while ( !IsEmptyS(stack2)) {
  38. a = TopS(stack2);
  39. PushS(a, stack1);
  40. PopS(stack2);
  41. }
  42. }
  43. void Iskrcaj (STACK *stack1) {
  44. s = new STACK;
  45. InitS(s);
  46. while (!IsEmptyS(stack1)) {
  47. a = TopS(stack1);
  48. if (a.god >= 2007 && strcmp(a.proizv, audi)) cout << "\nSerijski broj: " << a.sbroj << "\nProizvodjac: " << a.proizv << "\nModel: " << a.model << "\nGodina proizvodnje: " << a.god;
  49. else PushS(a, s);
  50. PopS(stack1);
  51. }
  52. while ( !IsEmptyS(s)) {
  53. a = TopS(s);
  54. PopS(s);
  55. PushS(a, stack1);
  56. }
  57. delete s;
  58. }
  59. void Iskrcaj_2 (STACK *stack1) {
  60. automobil a = TopS(stack1);
  61. PopS(stack1);
  62. bool v = false;
  63. if (! strcmp(a.proizv, audi)) cout << "\nSerijski broj: " << a.sbroj << "\nProizvodjac: " << a.proizv << "\nModel: " << a.model << "\nGodina proizvodnje: " << a.god << "\n"; // ispis podataka o automobil ako je marke Audi
  64. else v = true;
  65. if ( !IsEmptyS(stack1)) Iskrcaj_2(stack1);
  66. if (v) PushS(a, stack1);
  67. }
  68. int main() {
  69. STACK *stack1 = new STACK;
  70. InitS(stack1);
  71. int opcija;
  72. do {
  73. cout << "\n\nOdaberite opciju:\n1. Funkcija 1 (unos)\n2. Funkcija 2 (ispis/iskrcaj)\n3. Funkcija 3 (ispis/iskrcaj)\n4. Izlaz\nVas izbor: ";
  74. cin >> opcija;
  75. switch (opcija)
  76. {
  77. case 1:
  78. Unos(stack1);
  79. break;
  80. case 2:
  81. cout << "\n\nPocetno stanje na stogu: \n";
  82. Stanje_na_stogu(stack1);
  83. cout << "\n\nIskrcani automobili:\n";
  84. Iskrcaj(stack1);
  85. cout << "\n\n\nStanje na stogu nakon iskrcaja: \n\n";
  86. Stanje_na_stogu(stack1);
  87. break;
  88. case 3:
  89. cout << "\n\nPocetno stanje na stogu: \n";
  90. Stanje_na_stogu(stack1);
  91. cout << "\nIskrcani automobili:\n";
  92. Iskrcaj_2(stack1);
  93. cout << "\n\n\nStanje na stogu nakon iskrcaja: \n\n";
  94. Stanje_na_stogu(stack1);
  95. break;
  96. }
  97. } while (opcija != 4);
  98. delete stack1;
  99. system("pause");
  100. return 0;
  101. }

Report this snippet  

You need to login to post a comment.