Posted By

lugerovac on 11/15/10


Tagged

stack progrmming


Versions (?)

Z2_lugerovac.cpp


 / Published in: C++
 

Glavni program mog zadatka

  1. #include <iostream>
  2. //#include "stog_polje.h"
  3. #include "stog_pokazivac.h"
  4. using namespace std;
  5.  
  6. st *stog = InitS(stog);
  7.  
  8. unsigned short izbornik()
  9. {
  10. cout << "\n--------------------------------\n";
  11. cout << "1. Dodavanje novog zapisa u bazu\n";
  12. if(!IsEmptyS(stog)) cout << "2. Ispis svih zapisa\n";
  13. if(!IsEmptyS(stog)) cout << "3. Iskrcavanje automobila (noviji od 2006 i nisu Audi)\n";
  14. if(!IsEmptyS(stog)) cout << "4. Iskrcavanje automobila (samo Audi)\n";
  15. cout << "0. Izlaz iz programa\n";
  16. cout << "--------------------------------\n";
  17.  
  18. unsigned short izb;
  19. do
  20. {
  21. cout << "Vas izbor: ";
  22. cin >> izb;
  23. if(izb > 4) cout << "Nevaljati unos!\n";
  24. }while(izb > 4);
  25.  
  26. return izb;
  27. } //unsigned short izbornik()
  28.  
  29.  
  30. void dodaj()
  31. {
  32. automobil novi;
  33. cin.ignore();
  34.  
  35. cout << "\nSerijski broj: ";
  36. cin.getline(novi.sb, sizeof(novi.sb));
  37. cout << "Proizvodjac: ";
  38. cin.getline(novi.proizv, sizeof(novi.proizv));
  39. cout << "Model: ";
  40. cin.getline(novi.model, sizeof(novi.model));
  41.  
  42. cout << "Godina proizvodnje (u rasponu 1995-2010): ";
  43. cin >> novi.godp;
  44.  
  45. if(novi.godp < 1995) novi.godp = 1995;
  46. else if(novi.godp > 2010) novi.godp = 2010;
  47.  
  48. PushS(novi, stog);
  49. } //void dodaj()
  50.  
  51.  
  52. void ispis()
  53. {
  54. automobil isp[1000];
  55. int top = 0;
  56.  
  57. while(!(IsEmptyS(stog)))
  58. {
  59. isp[top] = TopS(stog);
  60. PopS(stog);
  61.  
  62. cout << "\n--------------------------------------------------";
  63. cout << "\nSerijski broj: " << isp[top].sb;
  64. cout << "\nProizvodjac: " << isp[top].proizv;
  65. cout << "\nModel: " << isp[top].model;
  66. cout << "\nGodina proizvodnje: " << isp[top].godp;
  67. cout << "\n--------------------------------------------------\n";
  68.  
  69. top++;
  70. } //while(!(IsEmpty(pom)))
  71.  
  72. for(int i = top - 1; i >= 0; i--)
  73. PushS(isp[i], stog);
  74. } //void ispis()
  75.  
  76.  
  77. void iskrcaj2()
  78. {
  79. if(!IsEmptyS(stog))
  80. {
  81. automobil p = TopS(stog);
  82. PopS(stog);
  83. if(!IsEmptyS(stog)) iskrcaj2();
  84.  
  85. if(strcmp(p.proizv, "Audi") == 0)
  86. {
  87. cout << "\n--------------------------------------------------";
  88. cout << "\nSerijski broj: " << p.sb;
  89. cout << "\nProizvodjac: " << p.proizv;
  90. cout << "\nModel: " << p.model;
  91. cout << "\nGodina proizvodnje: " << p.godp;
  92. cout << "\n--------------------------------------------------\n";
  93. }else PushS(p, stog);
  94. }
  95. } //void iskrcaj2()
  96.  
  97.  
  98. void iskrcaj()
  99. {
  100. cout << "\nIskrcavanje u prvoj auto kuci:\n";
  101. st *pom = InitS(pom);
  102.  
  103. while(!IsEmptyS(stog))
  104. {
  105. automobil p = TopS(stog);
  106. if(strcmp(p.proizv, "Audi") != 0 && p.godp > 2006)
  107. {
  108. cout << "\n--------------------------------------------------";
  109. cout << "\nSerijski broj: " << p.sb;
  110. cout << "\nProizvodjac: " << p.proizv;
  111. cout << "\nModel: " << p.model;
  112. cout << "\nGodina proizvodnje: " << p.godp;
  113. cout << "\n--------------------------------------------------\n";
  114.  
  115. PopS(stog);
  116. }else
  117. {
  118. PushS(p, pom);
  119. PopS(stog);
  120. } //if(strcmp(p.proizv, "Audi") != 0 && p.godp > 2006)
  121. } //while(!IsEmpty(stog))
  122.  
  123. while(!(IsEmptyS(pom)))
  124. {
  125. automobil p = TopS(pom);
  126. PushS(p, stog);
  127. PopS(pom);
  128. } //while(!(IsEmpty(pom))
  129.  
  130. system("pause");
  131. cout << "\nAuti koji se nisu iskrcali:\n";
  132. ispis();
  133. } //void iskrcaj()
  134.  
  135.  
  136. int main()
  137. {
  138. unsigned short izb;
  139. do
  140. {
  141. izb = izbornik();
  142. switch(izb)
  143. {
  144. case 1:
  145. dodaj();
  146. break;
  147.  
  148. case 2:
  149. ispis();
  150. break;
  151.  
  152. case 3:
  153. iskrcaj();
  154. break;
  155.  
  156. case 4:
  157. iskrcaj2();
  158. break;
  159. }
  160. }while(izb != 0);
  161.  
  162. system("pause");
  163. return 0;
  164. }

Report this snippet  

You need to login to post a comment.