Advertisement
zerocode77

pilot oop

Feb 8th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. /* 1. rok grupa A
  2. Definiraj klasu pilot s privatnim atributnom puno_ime, javnim èin, te virtualnom metodom unaprijeðenje.
  3. Pretpostavljene vrijednosti imena i èina su Marko Markovic i novak.
  4. Piloti se dijele na vojne i civilne. Vojni prilikom unaprijeðenja postaju pukovnici, a civilni kapetani.
  5. Statièki atributi prate koliko je vojnih, i konstantno se mjenjaju po potrebi.
  6. Korisnik u glavnom programu unosi broj koji predstavlja velièinu vektora vojnih i civilnih pilota.Unose se imena i èinovi.
  7. Nakon popune, pogram ispiše èinove svih vojnih pilota koji se zovu Marko Markoviæ.
  8. Ispiše koliko vojnih pilota postoji.
  9. */
  10.  
  11. #include <iostream>
  12. #include <string>
  13. #include <vector>
  14.  
  15. using namespace std;
  16.  
  17. class Pilot{
  18. private:
  19.     string *puno_ime;
  20. public:
  21.     string *javni_cin;
  22.     virtual void unaprijedenje()=0;
  23.     void setIme(){
  24.         cin.sync();cin.clear();getline(cin,*puno_ime);
  25.     }
  26.     string getIme(){
  27.         return *puno_ime;
  28.     }
  29.     Pilot(){
  30.         puno_ime=new string;
  31.         javni_cin=new string;
  32.         *puno_ime="Marko Markovic";
  33.         *javni_cin="novak";
  34.     }
  35.     ~Pilot(){
  36.         delete puno_ime;
  37.         delete javni_cin;
  38.     }
  39.  
  40. };
  41.  
  42. class Vojni:public Pilot{
  43. public:
  44.     void unaprijedenje(){
  45.         *javni_cin="pukovnik";
  46.     }
  47.     static int brv;
  48.     Vojni(){
  49.         brv++;
  50.     }
  51.     ~Vojni(){
  52.         brv--;
  53.         }
  54. };
  55.  
  56. class Civilni:public Pilot{
  57. public:
  58.     void unaprijedenje(){
  59.         *javni_cin="kapetan";
  60.     }
  61. };
  62. int Vojni::brv=0;
  63.  
  64. int main(){
  65.     int *brp=new int;
  66.     int *i=new int;
  67.     cout<<"Unesite broj pilota:"<<endl;
  68.     cin>>*brp;
  69.     vector <Vojni*> *vv=new vector <Vojni*> (*brp);
  70.     vector <Civilni*> *vc=new vector <Civilni*> (*brp);
  71.  
  72.     for(*i=0;*i<*brp;(*i)++){
  73.         vv->at(*i)=new Vojni;
  74.         vc->at(*i)=new Civilni;
  75.     }
  76.     for(*i=0;*i<*brp;(*i)++){
  77.         cout<<"Unesite ime vojnog pilota:"<<endl;
  78.         vv->at(*i)->setIme();
  79.         cout<<"Unesite cin vojnog pilota:"<<endl;
  80.         cin.sync();cin.clear();getline(cin,*(vv->at(*i)->javni_cin));
  81.         cout<<"Unesite ime civilnog pilota:"<<endl;
  82.         vc->at(*i)->setIme();
  83.         cout<<"Unesite cin civilnog pilota:"<<endl;
  84.         cin.sync();cin.clear();getline(cin,*(vc->at(*i)->javni_cin));
  85.     }
  86.     for(*i=0;*i<*brp;(*i)++){
  87.         if(vv->at(*i)->getIme()=="Marko Markovic"){
  88.             cout<<*(vv->at(*i)->javni_cin)<<endl;
  89.         }
  90.     }
  91.  
  92.     cout<<"Vojnih pilota ima: "<<Vojni::brv;
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement