Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Mar 22nd, 2012  |  syntax: None  |  size: 7.10 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. //automobili.cpp//
  2.  
  3. #include <iostream>
  4.  
  5. //#include "stog_polje.h"
  6. #include "stog_pokazivac.h"
  7.  
  8.  
  9. using namespace std;
  10.  
  11.  
  12. void dodaj_automobil(stack *S)
  13. {
  14.      elementtype automobil;
  15.          
  16.      cout << "--Sifra: ";
  17.      cin >> automobil.serijski_broj;
  18.      cout << "--Proizvodac: ";
  19.      cin.ignore();
  20.      cin.getline(automobil.proizvodac,20);
  21.      cout << "--Model: ";
  22.      cin.getline(automobil.model,20);
  23.      bool upit=false;
  24.      do
  25.      {
  26.         if(upit) cout << "---Krivi unos." << endl;
  27.         cout << "--Godina proizvodnje (1995-2010): ";
  28.         cin >> automobil.godina_proizvodnje;
  29.         upit = true;
  30.      }while(automobil.godina_proizvodnje < 1995 || automobil.godina_proizvodnje > 2010);
  31.      PushS(automobil, S);
  32. }
  33.  
  34. void iskrcavanje_kod_prve_autokuce(stack *stog)
  35. {
  36.      if(!IsEmptyS(stog)){
  37.                        elementtype temp;
  38.                        stack tempStog;
  39.                        InitS(&tempStog);
  40.                        while(!IsEmptyS(stog))
  41.                        {
  42.  
  43.                            temp = TopS(stog);
  44.                            PopS(stog);
  45.                            PushS(temp, &tempStog);
  46.                            if(temp.godina_proizvodnje >= 2006 && stricmp(temp.proizvodac, "audi"))
  47.                            {
  48.                              cout<<"Iskrcavam automobil:"<<endl;
  49.                              cout<<endl;
  50.                              cout<<"_____________________________________"<<endl;
  51.                              cout<<"--Serijski broj: "<< temp.serijski_broj<<endl;
  52.                              cout<<"--Proizvodac: "<< temp.proizvodac<<endl;
  53.                              cout<<"--Model: " <<temp.model<<endl;
  54.                              cout<<"--Godina proizvodnje: " <<temp.godina_proizvodnje<<endl;                                        
  55.                              cout<<"_____________________________________"<<endl;
  56.                            }                          
  57.                        }    
  58.                        cout << endl;
  59.                        
  60.                        if(!IsEmptyS(&tempStog))
  61.                        {
  62.                            cout<<"--Automobili na prikolici kamiona:"<<endl;
  63.                            cout<<endl;
  64.                            cout << "_____________________________________"<<endl;
  65.                            while(!IsEmptyS(&tempStog))
  66.                            {
  67.                                   temp = TopS(&tempStog);
  68.                                   PopS(&tempStog);
  69.                                   if(temp.godina_proizvodnje < 2006 || !(stricmp(temp.proizvodac, "audi")) )
  70.                                   {
  71.                                     PushS(temp, stog);              
  72.                                      cout<<"--Serijski broj: "<<temp.serijski_broj<<endl;
  73.                                      cout<<"--Proizvodac: "<<temp.proizvodac<<endl;
  74.                                      cout<<"--Model: "<<temp.model<<endl;
  75.                                      cout<<"--Godina proizvodnje: "<<temp.godina_proizvodnje<<endl;
  76.                                      cout<<"_____________________________________"<<endl;
  77.                                      cout<<endl;          
  78.                                   }  }} }
  79.      else{
  80.                   cout<<"---Nema unesenih automobila."<<endl;
  81.                   return;}
  82.    
  83. }
  84.            
  85. void iskrcavanje_kod_druge_autokuce(stack *S)
  86. {            
  87.             if(!IsEmptyS(S))
  88.             {
  89.                 elementtype temp = TopS(S);
  90.                 PopS(S);
  91.                 if(!IsEmptyS(S))
  92.                                iskrcavanje_kod_druge_autokuce(S);
  93.                 if(!(stricmp(temp.proizvodac, "audi")))
  94.                 {
  95.                   cout<<"Iskrcavam automobil:"<<endl;
  96.                   cout<<endl;
  97.                   cout<<"_____________________________________"<<endl;
  98.                   cout<<"--Serijski broj: "<< temp.serijski_broj<<endl;
  99.                   cout<<"--Proizvodac: "<< temp.proizvodac<<endl;
  100.                   cout<<"--Model: " <<temp.model<<endl;
  101.                   cout<<"--Godina proizvodnje: " <<temp.godina_proizvodnje<<endl;                                        
  102.                   cout<<"_____________________________________"<<endl;                                                        
  103.                 }          
  104.                 else
  105.                     PushS(temp, S);
  106.                 return;
  107.             }
  108.             else{
  109.                   cout<<"---Nema unesenih automobila."<<endl;
  110.                   return;}
  111. }
  112.  
  113. void popis_automobila(stack* S) {            
  114.      if(IsEmptyS(S)){
  115.                  cout<<"---Nema unesenih automobila."<<endl;
  116.                  return;
  117.                  }
  118.     elementtype pomocna[20];
  119.     int br=0;
  120.     while(!IsEmptyS(S)){
  121.       stog = TopS(S);
  122.       pomocna[br] = stog;
  123.       br++;
  124.       PopS(S);                  
  125.     }
  126.     cout<<endl;
  127.     cout<<"--Automobili na prikolici kamiona:"<<endl;
  128.     cout<< endl;
  129.     cout<<"_____________________________________"<<endl;
  130.     cout<< endl;
  131.     for (int i=br-1;i>=0;i--) {
  132.       cout<<"--Serijski broj: " << pomocna[i].serijski_broj<<endl;
  133.       cout<<"--Proizvodjac: " << pomocna[i].proizvodac<<endl;
  134.       cout<<"--Model: " << pomocna[i].model<<endl;
  135.       cout<<"--Godina proizvodnje: " << pomocna[i].godina_proizvodnje<<endl;
  136.       cout<<"_____________________________________"<<endl;
  137.       cout<<endl;  
  138.       stog = pomocna[i];
  139.       PushS(stog, S);
  140.    }
  141. }
  142.  
  143. int main()
  144. {
  145.     stack stog;
  146.     elementtype element;
  147.     InitS(&stog);
  148.    
  149.     int brojacZapisa = 0;
  150.     int brojacUpisa = 0;
  151.     int izbor;
  152.  
  153.         do{
  154.             cout << "_____________________________________________"<<endl;
  155.             cout << "-  ZADATAK 2 - STRUKTURE PODATAKA - 10/11'  -"<<endl;
  156.             cout << "============================================="<<endl;
  157.             cout << "1. Ukrcaj automobil na prikolicu" << endl;
  158.             cout << "2. Iskrcaj automobila kod prve autokuce" << endl;
  159.             cout << "3. Iskrcaj automobila kod druge autokuce" << endl;
  160.             cout << "4. Popis automobila sa prikolice" << endl;
  161.             cout <<endl;
  162.             cout << "0. Izlaz" << endl;
  163.             cout << "---------------------------------------------"<<endl;
  164.             cout << "-Izbor: ";
  165.             cin >> izbor;
  166.             cout << endl << endl;
  167.            
  168.             switch(izbor)
  169.             {
  170.                           case 1:
  171.                                dodaj_automobil(&stog);
  172.                                brojacZapisa++;
  173.                                break;
  174.                           case 2:
  175.                                iskrcavanje_kod_prve_autokuce(&stog);
  176.                                break;
  177.                           case 3:
  178.                                iskrcavanje_kod_druge_autokuce(&stog);  
  179.                                break;
  180.                           case 4:
  181.                                popis_automobila(&stog);
  182.                                break;
  183.                           case 0:
  184.                                break;
  185.                           default:
  186.                                cout<<"---Krivi izbor";
  187.             }
  188.             system("pause");
  189.         }while(izbor != 0);
  190.         return 0;
  191. }