Simulacija ukrcaja, transporta i iskrcaja raznih marki i godišta automobila


/ Published in: C++
Save to your folder(s)



Copy this code and paste it in your HTML
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include "stog_polje.h"
  4. //#include "stog_pokazivac.h"
  5. using namespace std;
  6.  
  7. void unos(stog *S) {
  8. element b;
  9. int n;
  10. cout << "Koliko automobila zelite ukrcati: ";
  11. cin >> n;
  12. cout << "-------" << endl;
  13. for(int i = 0; i < n; i++){
  14. cout << "Serijski broj: ";
  15. cin >> b.serijski_broj;
  16. cin.ignore();
  17. cout <<"Proizvodac: ";
  18. cin.getline(b.proizvodac,40);
  19. cout << "Model: ";
  20. cin.getline(b.model,20);
  21. do{
  22. cout<<"Godina proizvodnje: ";
  23. cin>>b.godina;
  24. if (b.godina < 1995 || b.godina > 2010) cout<<"!!Godina mora biti unutar rasponu (1995-2010)!! ... "<<endl;
  25. } while (b.godina < 1995 || b.godina > 2010);
  26. PushS(b, S);
  27. cout << "Automobil je uspjesno ukrcan!\n\n------------" << endl;
  28. }
  29. };
  30.  
  31. void prvo_uvjetno_iskrcavanje(stog *S,stog *pomS){
  32. cout << "\n=Iskrcani automobili=" << endl;
  33. cout << "=====================\n"<<endl;
  34. while ( IsEmptyS(S)==0 ){
  35. if (TopS(S).godina>2006 && strcmp(TopS(S).proizvodac,"Audi")){
  36. cout<<"Automobil: " << TopS(S).proizvodac << " (" << TopS(S).godina << ")" << "\tModel: " << TopS(S).model << endl << endl;
  37. PopS(S);
  38. }
  39. else {
  40. PushS( TopS(S), pomS);
  41. PopS(S);
  42. }
  43. }
  44. cout << "\n=Stanje na skladistu poslije iskrcavanja=" << endl;
  45. cout << "=========================================\n"<<endl;
  46. while ( IsEmptyS(pomS)==0 ){
  47. PushS( TopS(pomS), S);
  48. cout << "Automobil: " << TopS(S).proizvodac << " (" << TopS(S).godina << ")" << "\tModel: " << TopS(S).model << endl << endl;
  49. PopS(pomS);
  50. }
  51. };
  52. int stanje = 0;
  53. int drugo_uvjetno_iskrcavanje(stog *S){
  54. element b = TopS(S);
  55. bool rek = false;
  56. if (!strcmp(b.proizvodac,"Audi")) cout << "Automobil: " << b.proizvodac << " (" << b.godina << ")" << "\tModel: " << b.model << endl << endl;
  57. PopS(S);
  58. if (!IsEmptyS(S) || rek) drugo_uvjetno_iskrcavanje(S);
  59. rek = true;
  60. if (strcmp(b.proizvodac,"Audi")){
  61. PushS(b, S);
  62. if (stanje == 0){
  63. cout << "Stanje na skladistu poslije iskrcavanja" << endl;
  64. cout << "=======================================\n"<<endl;
  65. stanje = 1;
  66. };
  67. cout<<"Automobil: " << b.proizvodac << " (" << b.godina << ")" << "\tModel: " << b.model << endl << endl;
  68. }
  69. };
  70.  
  71. int main(){
  72. int izbor;
  73. stog *S = InitS();
  74. stog *pomS = InitS();
  75. do{
  76. cout << "====================IZBORNIK====================" << endl;
  77. cout << "1. Unos novih automobila" << endl;
  78. cout << "2. Iskrcavanje automobila u prvu auto kucu" << endl;
  79. cout << "3. Iskrcaj automobila u drugu auto kucu" << endl;
  80. cout << "9. Izlazak iz programa"<<endl;
  81. cout << "================================================" << endl;
  82. cout << "Vas izbor: ";
  83. cin>>izbor;
  84. cout << "------" << endl;
  85.  
  86. switch(izbor){
  87. case 1:{unos(S);}break;
  88. case 2:{prvo_uvjetno_iskrcavanje(S,pomS);}break;
  89. case 3:{
  90. cout << "\n=Iskrcani automobili=" << endl;
  91. cout << "=====================\n"<<endl;
  92. drugo_uvjetno_iskrcavanje(S);}break;
  93. case 9:{cout << "Hvala sto ste koristili ovaj program" << endl;}break;
  94. default:{cout << "Opcija ne postoji" << endl;}
  95. }
  96. }while (izbor != 9);
  97. system("pause");
  98. return 1;
  99. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.