Advertisement
zerocode77

sve oop

Feb 8th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.42 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. using namespace std;
  15. class Pilot {
  16. private:
  17.     string *puno_ime;
  18. public:
  19.     void setPunoIme(){
  20.         cin.sync(); cin.clear(); getline(cin,*puno_ime);
  21.     }
  22.     string getPunoIme(){ return *puno_ime; }
  23.     string *ccin;
  24.     virtual void unaprjedjenje() = 0;
  25.     Pilot(){
  26.         puno_ime = new string; ccin = new string;
  27.         *puno_ime = "Marko Markovic"; *ccin = "Novak";
  28. }
  29.     ~Pilot(){ delete puno_ime; delete ccin; }
  30. };
  31. class Vojni : public Pilot {
  32. public:
  33.     void unaprjedjenje(){ *ccin = "pukovnik"; };
  34.     static int brv;
  35.     Vojni(){ brv++; }
  36.     ~Vojni(){ brv--; }
  37. };
  38. class Civilni : public Pilot {
  39. public:
  40.     void unaprjedjenje(){ *ccin = "kapetan"; };
  41. };
  42. int Vojni::brv = 0;
  43. int main(){
  44.     int *brp = new int; int *i = new int;
  45.     cout << "Broj pilota: "; cin >> *brp;
  46.     vector<Civilni*> *nc = new vector<Civilni*>(*brp);
  47.     vector<Vojni*> *nv = new vector<Vojni*>(*brp);
  48.     for (*i=0;*i<*brp;(*i)++){
  49.         nc->at(*i) = new Civilni;
  50.         nv->at(*i) = new Vojni;
  51.     }
  52.     for (*i=0;*i<*brp;(*i)++){
  53.         cout << "Ime vojnog: "; nv->at(*i)->setPunoIme();
  54.         cout << "Cin vojnog: ";
  55.         cin.sync(); cin.clear(); getline(cin,*(nv->at(*i)->ccin));
  56.         cout << "Ime civilnog: "; nc->at(*i)->setPunoIme();
  57.         cout << "Cin civilnog: ";
  58.         cin.sync(); cin.clear(); getline(cin,*(nc->at(*i)->ccin));
  59.     }
  60.     for (*i=0;*i<*brp;(*i)++){
  61.         if (nv->at(*i)->getPunoIme()=="Marko Markovic"){
  62.             cout << *(nv->at(*i)->ccin) << endl;
  63.         }
  64.     }
  65.     cout << "Vojnih ima: " << Vojni::brv << endl;
  66.     system("pause");
  67.     return 0;
  68. }
  69. -----------------------------------------------------------------
  70. */
  71. /* 1. rok GRUPA B
  72. Definiraj klasu brod sa privatnim atributom naziv_broda,
  73. javim atributom brzina, te virtualnom metodom ubrzanje.
  74. Pretpostavljene vrijednosti su Crni Biser i 0.
  75. Brodovi se djele na drvene i metalne.
  76. Drveni prilikom ubrzanja povecaju brzinu na 50,a metalni za 100.
  77. Cijelo vrijeme pomocu jednog statickog atributa prati se koliko
  78. postoji brodova(neovisno o vrsti),te se taj podatak konstantno
  79. mjenja po potrebi.
  80. Korisnik u glavnom programu unosi broj,taj brioj predstavjati ce velicinu oba vektora(vektora drvenih i vektora metalnih brodova).
  81. Nakon toga unose se svi podaci za sve brodove. Nakon popune, program ispise nazive svih metalnih brodova ciji nazivi pocinju na
  82. C(dodati funkciju koja vraca prvo slovo imena),  te ispise koliko brodova postoji(statican atribut)*/
  83. /*
  84. #include <iostream>
  85. #include <string>
  86. #include <vector>
  87. using namespace std;
  88. class Brod {
  89. private:
  90.     string *naziv_broda;
  91. public:
  92.     void setNazivBroda(){
  93.         cin.sync(); cin.clear(); getline(cin,*naziv_broda);
  94.     }
  95.     string getNazivBroda(){ return *naziv_broda; }
  96.     char getSlovo(){ return (*naziv_broda).at(0); }
  97.     int *brzina;
  98.     virtual void ubrzanje() = 0;
  99.     static int brb;
  100.     Brod(){
  101.         naziv_broda = new string; brzina = new int;
  102.         *naziv_broda = "Crni Biser"; *brzina = 0; brb++;
  103.     }
  104.     ~Brod(){ delete naziv_broda; delete brzina; brb--; }
  105. };
  106. class Drveni : public Brod {
  107. public:
  108.     void ubrzanje(){ *brzina = (*brzina) + 50; };
  109. };
  110. class Metalni : public Brod {
  111. public:
  112.     void ubrzanje(){ *brzina = (*brzina) + 100; };
  113. };
  114. int Brod::brb = 0;
  115. int main(){
  116.     int *i = new int; int *br = new int;
  117.     cout << "Broj brodova: "; cin >> *br;
  118.     vector<Drveni*> *nd = new vector<Drveni*>(*br);
  119.     vector<Metalni*> *nm = new vector<Metalni*>(*br);
  120.     for (*i=0;*i<*br;(*i)++){
  121.         nd->at(*i) = new Drveni;
  122.         nm->at(*i) = new Metalni;
  123.     }
  124.     for (*i=0;*i<*br;(*i)++){
  125.         cout << "Naziv drvenog: ";
  126.         nd->at(*i)->setNazivBroda();
  127.         cout << "Brzina drvenog: ";
  128.         cin >> *(nd->at(*i)->brzina);
  129.         cout << "Naziv metalnog: ";
  130.         nm->at(*i)->setNazivBroda();
  131.         cout << "Brzina metalnog: ";
  132.         cin >> *(nm->at(*i)->brzina);
  133.     }
  134.     for (*i=0;*i<*br;(*i)++){
  135.         if (nm->at(*i)->getSlovo()=='C'){
  136.             cout << nm->at(*i)->getNazivBroda() << endl;
  137.         }
  138.     }
  139.     cout << "Brodova ima: " << Brod::brb << endl;
  140.     system("pause");
  141.     return 0;
  142. }
  143. ----------------------------------------------------------------------------------------
  144. */
  145. /* 2. rok GRUPA A */
  146. /*
  147. #include <iostream>
  148. #include <string>
  149. #include <vector>
  150. using namespace std;
  151. class Pilot {
  152. private:
  153.     double *masa, *godine;
  154. public:
  155.     void setMasa(double m){ *masa = m; }
  156.     double getMasa(){ return *masa; }
  157.     void setGodine(double g){ *godine = g; }
  158.     double getGodine(){ return *godine; }
  159.     virtual void starenje() = 0;
  160.     Pilot(){
  161.         masa = new double; godine = new double;
  162.         *masa = 75.5; *godine = 29;
  163.     }
  164.     ~Pilot(){ delete masa; delete godine; }
  165. };
  166. class Zemljani : public Pilot {
  167. public:
  168.     void starenje(){ setGodine(getGodine()+1); };
  169. };
  170. class Astronaut : public Pilot {
  171. public:
  172.     void starenje(){ setGodine(getGodine()+0.5); };
  173.     static int aa;
  174.     Astronaut(){ aa++; }
  175.     ~Astronaut(){ aa--; }
  176. };
  177. int Astronaut::aa = 0;
  178. int main(){
  179.     int *brz = new int; int *bra = new int; int *i = new int;
  180.     cout << "Broj zemljanih: "; cin >> *brz;
  181.     cout << "Broj astronauta: "; cin >> *bra;
  182.     vector<Zemljani*> *vz = new vector<Zemljani*>(*brz);
  183.     vector<Astronaut*> *va = new vector<Astronaut*>(*bra);
  184.     for (*i=0;*i<*brz;(*i)++){ vz->at(*i) = new Zemljani; }
  185.     for (*i=0;*i<*bra;(*i)++){ va->at(*i) = new Astronaut; }
  186.     double *g = new double; double *m = new double;
  187.     for (*i=0;*i<*brz;(*i)++){
  188.         cout << "Masa zemljanog: "; cin >> *m; vz->at(*i)->setMasa(*m);
  189.         cout << "Godine zemljanog: "; cin >> *g; vz->at(*i)->setGodine(*g);
  190.     }
  191.     for (*i=0;*i<*bra;(*i)++){
  192.         cout << "Masa astronauta: "; cin >> *m; va->at(*i)->setMasa(*m);
  193.         cout << "Godine astronauta: "; cin >> *g; va->at(*i)->setGodine(*g);
  194.     }
  195.     for (*i=0;*i<*brz;(*i)++){
  196.         if (vz->at(*i)->getMasa()>vz->at(*i)->getGodine()){ vz->at(*i)->starenje(); }
  197.     }
  198.     for (*i=0;*i<*bra;(*i)++){
  199.         if (va->at(*i)->getMasa()>va->at(*i)->getGodine()){ va->at(*i)->starenje(); }
  200.     }
  201.     for (*i=0;*i<*brz;(*i)++){delete vz->at(*i);} vz->clear(); delete vz;
  202.     for (*i=0;*i<*bra;(*i)++){delete va->at(*i);} va->clear(); delete va;
  203.     delete brz, bra, i, g, m;
  204.     system("pause");
  205.     return 0;
  206. }
  207. -------------------------------------------------------------------------------------------------------
  208. /*
  209. Definiraj klasu Brod sa privatnim atributima naziv_broda i naziv_maticne_luke, te virtualnom metodom slovo.
  210. Pretpostavljene vrijednosti su Oluja i Rijeka.
  211. Brodovi se dijele na teretne i putnicke. Teretnim se u funkciji slovo vraca prvo slovo imena, a putnickim prvo slovo luke.
  212. Cijelo vrijeme pomocu jednog statickog atributa prati se kolko postoji brodova (neovisno o vrsti), te se taj podataka konstantno mijenja po potrebi.
  213. Korisnik u glavnom programu unosi broj, taj broj predstavljati ce velicinu vektora putnickih i niza teretnih brodova. Nakon toga unose se svi podaci za brodove.
  214. Nakon popune, program provjerava brodove na istim pozicijama u nizu/vektoru putnickih i teretnih brodova (prvi vs. prvi, drugi vs. drugi itd.) te ispise nazive
  215. onih cije funkcije vrate isto slovo.
  216.  
  217. Koristite dinamicke elemente svuda u programu (za staticki atribut nije potrebno). Dealocirati memoriju nakon koristenja.
  218. */
  219. /*  2. Rok GRUPA B */
  220. #include <iostream>
  221. #include <string>
  222. #include <vector>
  223. using namespace std;
  224. class Brod {
  225. private: string *naziv_broda, *naziv_luke;
  226. public:
  227.     static int bb;
  228.     void setBrod(string nb){ *naziv_broda = nb; }
  229.     string getBrod(){ return *naziv_broda; }
  230.     void setLuka(string nl){ *naziv_luke = nl; }
  231.     string getLuka(){ return *naziv_luke; }
  232.     virtual char slovo() = 0;
  233.     Brod(){
  234.         naziv_broda = new string; naziv_luke = new string;
  235.         *naziv_broda = "Galeb"; *naziv_luke = "Rijeka"; bb++;
  236.     }
  237.     ~Brod(){ delete naziv_broda; delete naziv_luke; bb--; }
  238. };
  239. class Teretni : public Brod {
  240. public: char slovo(){ return getBrod().at(0); };
  241. };
  242. class Putnicki : public Brod {
  243. public: char slovo(){ return getLuka().at(0); };
  244. };
  245. int Brod::bb = 0;
  246. int main(){
  247.     int *brb = new int; int *i = new int;
  248.     cout << "Broj brodova: "; cin >> *brb;
  249.     vector<Putnicki*> *vp = new vector<Putnicki*>(*brb);
  250.     for (*i=0;*i<*brb;(*i)++){
  251.         vp->at(*i) = new Putnicki;
  252.     }
  253.     Teretni* *nt = new Teretni*[*brb];
  254.     for (*i=0;*i<*brb;(*i)++){
  255.         (*(nt+(*i))) = new Teretni;
  256.     }
  257.     string *nb = new string; string *nl = new string;
  258.     for (*i=0;*i<*brb;(*i)++){
  259.         cout << "Naziv P: "; cin.sync(); cin.clear(); getline(cin,*nb);
  260.         vp->at(*i)->setBrod(*nb);
  261.         cout << "Luka P: "; cin.sync(); cin.clear(); getline(cin,*nl);
  262.         vp->at(*i)->setLuka(*nl);
  263.         cout << "Naziv T: "; cin.sync(); cin.clear(); getline(cin,*nb);
  264.         (*(nt+(*i)))->setBrod(*nb);
  265.         cout << "Luka T: "; cin.sync(); cin.clear(); getline(cin,*nl);
  266.         (*(nt+(*i)))->setLuka(*nl);
  267.     }
  268.     for (*i=0;*i<*brb;(*i)++){
  269.         if(vp->at(*i)->slovo()==(*(nt+(*i)))->slovo()){
  270.             cout<<vp->at(*i)->getBrod()<<endl;
  271.             cout<<(*(nt+(*i)))->getBrod()<<endl;
  272.         }
  273.     }
  274.     for (*i=0;*i<*brb;(*i)++){
  275.         delete vp->at(*i);
  276.         }
  277.         vp->clear(); delete vp;
  278.     for (*i=0;*i<*brb;(*i)++){
  279.         delete (*(nt+(*i)));
  280.         }
  281.         delete[] nt;
  282.  
  283.     delete brb, i, nb, nl;
  284.  
  285.     return 0;
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement