Posted By

estimac on 11/16/10


Tagged


Versions (?)

Main


 / Published in: C++
 

  1. #include <iostream>
  2. #include <stdio.h>
  3. //#include "impl_polje.h"
  4. #include "impl_pok.h"
  5. using namespace std;
  6.  
  7. st *stog = InitS(stog);
  8.  
  9. void upis()
  10. {
  11. autom novi;
  12. cin.ignore();
  13.  
  14. printf( "\nSerijski broj: ");
  15. scanf("%d",&novi.serbr);
  16. cin.ignore();
  17. printf( "Proizvodac: ");
  18. scanf("%s",&novi.pro);
  19. cin.ignore();
  20. printf( "Model: ");
  21. scanf("%s",&novi.model);
  22. printf( "Godina proizvodnje: ");
  23. scanf("%d", &novi.god);
  24. if(novi.god < 1995 || novi.god > 2010) {printf("\nGodine nisu priznate. Moraju biti izmedu 1995 i 2010.\nPonovo unesi godine:\n");
  25. scanf("%d", &novi.god);
  26. cin.ignore();}
  27. PushS(novi, stog);
  28. }
  29.  
  30.  
  31. void ispis_zapisa()
  32. {
  33. autom ispis[25];
  34. int top = 0;
  35. printf( "\n.......................................\n");
  36. while(!(IsEmptyS(stog)))
  37. {
  38. ispis[top] = TopS(stog);
  39. PopS(stog);
  40.  
  41. printf( "\nSerijski broj: %d" , ispis[top].serbr);
  42. printf( "\nProizvodjac: %s" , ispis[top].pro);
  43. printf( "\nModel: %s" , ispis[top].model);
  44. printf( "\nGodina proizvodnje: %d" , ispis[top].god);
  45. printf("\n");
  46. top++;
  47. }
  48.  
  49. for(int i = top - 1; i >= 0; i--)
  50. PushS(ispis[i], stog);
  51. printf("\n\n");
  52. system("PAUSE");
  53. }
  54.  
  55.  
  56. void ispis2()
  57. {
  58. if(!IsEmptyS(stog))
  59. {
  60. autom x = TopS(stog);
  61. PopS(stog);
  62. if(!IsEmptyS(stog)) ispis2();
  63.  
  64. if(strcmp(x.pro, "Audi") == 0)
  65. {
  66. printf( "\nSerijski broj: %d" , x.serbr);
  67. printf( "\nProizvodjac: %s" , x.pro);
  68. printf( "\nModel: %s" , x.model);
  69. printf( "\nGodina proizvodnje: %d" , x.god);
  70. printf("\n");
  71.  
  72. }else PushS(x, stog);
  73. }
  74. system("PAUSE");
  75. }
  76.  
  77.  
  78. void ispis()
  79. {
  80. st *pom = InitS(pom);
  81. while(!IsEmptyS(stog))
  82. {
  83. autom y = TopS(stog);
  84. if(strcmp(y.pro, "Audi") != 0 && y.god > 2006)
  85. {
  86. printf( "\nSerijski broj: %d" , y.serbr);
  87. printf( "\nProizvodjac: %s" , y.pro);
  88. printf( "\nModel: %s" , y.model);
  89. printf( "\nGodina proizvodnje: %d" , y.god);
  90. printf("\n");
  91.  
  92. PopS(stog);
  93. }else
  94. {
  95. PushS(y, pom);
  96. PopS(stog);
  97. }
  98. }
  99.  
  100. while(!(IsEmptyS(pom)))
  101. {
  102. autom y = TopS(pom);
  103. PushS(y, stog);
  104. PopS(pom);
  105. }
  106.  
  107. printf("\nPreostali automobili:\n");
  108. ispis_zapisa();
  109. }
  110.  
  111.  
  112. int main()
  113. {
  114. int izbor;
  115. do{
  116. do{
  117. system("cls");
  118. printf("...............................\n");
  119. printf( "1. Ukrcavanje automobila\n");
  120. if(!IsEmptyS(stog)){ printf( "2. Ispis svih zapisa na ekran\n");
  121. printf( "3. Iskrcavanje automobila ( >2006 && !Audi )\n");
  122. printf( "4. Iskrcavanje automobila (Audi)\n"); }
  123. printf( "0. Izlaz\n");
  124. printf( "Izbor: ");
  125. scanf("%d", &izbor);
  126. if(izbor > 4 || (izbor==2 && (IsEmptyS(stog)) || izbor==3 && (IsEmptyS(stog)) || izbor==4 && (IsEmptyS(stog)) )) printf("Unos nije valjan!\n");
  127. }while(izbor > 4 || izbor < 0 || (izbor==2 && (IsEmptyS(stog)) || izbor==3 && (IsEmptyS(stog)) || izbor==4 && (IsEmptyS(stog)) ));
  128.  
  129. switch(izbor)
  130. {
  131. case 1:
  132. upis();
  133. break;
  134.  
  135. case 2:
  136. ispis_zapisa();
  137. break;
  138.  
  139. case 3:
  140. ispis();
  141. break;
  142.  
  143. case 4:
  144. ispis2();
  145. break;
  146. }
  147. }while(izbor != 0);
  148.  
  149. system("PAUSE");
  150. return 0;
  151. }

Report this snippet  

You need to login to post a comment.