Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 1. rok grupa A
- Definiraj klasu pilot s privatnim atributnom puno_ime, javnim èin, te virtualnom metodom unaprijeðenje.
- Pretpostavljene vrijednosti imena i èina su Marko Markovic i novak.
- Piloti se dijele na vojne i civilne. Vojni prilikom unaprijeðenja postaju pukovnici, a civilni kapetani.
- Statièki atributi prate koliko je vojnih, i konstantno se mjenjaju po potrebi.
- Korisnik u glavnom programu unosi broj koji predstavlja velièinu vektora vojnih i civilnih pilota.Unose se imena i èinovi.
- Nakon popune, pogram ispiše èinove svih vojnih pilota koji se zovu Marko Markoviæ.
- Ispiše koliko vojnih pilota postoji.
- */
- /*
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- class Pilot {
- private:
- string *puno_ime;
- public:
- void setPunoIme(){
- cin.sync(); cin.clear(); getline(cin,*puno_ime);
- }
- string getPunoIme(){ return *puno_ime; }
- string *ccin;
- virtual void unaprjedjenje() = 0;
- Pilot(){
- puno_ime = new string; ccin = new string;
- *puno_ime = "Marko Markovic"; *ccin = "Novak";
- }
- ~Pilot(){ delete puno_ime; delete ccin; }
- };
- class Vojni : public Pilot {
- public:
- void unaprjedjenje(){ *ccin = "pukovnik"; };
- static int brv;
- Vojni(){ brv++; }
- ~Vojni(){ brv--; }
- };
- class Civilni : public Pilot {
- public:
- void unaprjedjenje(){ *ccin = "kapetan"; };
- };
- int Vojni::brv = 0;
- int main(){
- int *brp = new int; int *i = new int;
- cout << "Broj pilota: "; cin >> *brp;
- vector<Civilni*> *nc = new vector<Civilni*>(*brp);
- vector<Vojni*> *nv = new vector<Vojni*>(*brp);
- for (*i=0;*i<*brp;(*i)++){
- nc->at(*i) = new Civilni;
- nv->at(*i) = new Vojni;
- }
- for (*i=0;*i<*brp;(*i)++){
- cout << "Ime vojnog: "; nv->at(*i)->setPunoIme();
- cout << "Cin vojnog: ";
- cin.sync(); cin.clear(); getline(cin,*(nv->at(*i)->ccin));
- cout << "Ime civilnog: "; nc->at(*i)->setPunoIme();
- cout << "Cin civilnog: ";
- cin.sync(); cin.clear(); getline(cin,*(nc->at(*i)->ccin));
- }
- for (*i=0;*i<*brp;(*i)++){
- if (nv->at(*i)->getPunoIme()=="Marko Markovic"){
- cout << *(nv->at(*i)->ccin) << endl;
- }
- }
- cout << "Vojnih ima: " << Vojni::brv << endl;
- system("pause");
- return 0;
- }
- -----------------------------------------------------------------
- */
- /* 1. rok GRUPA B
- Definiraj klasu brod sa privatnim atributom naziv_broda,
- javim atributom brzina, te virtualnom metodom ubrzanje.
- Pretpostavljene vrijednosti su Crni Biser i 0.
- Brodovi se djele na drvene i metalne.
- Drveni prilikom ubrzanja povecaju brzinu na 50,a metalni za 100.
- Cijelo vrijeme pomocu jednog statickog atributa prati se koliko
- postoji brodova(neovisno o vrsti),te se taj podatak konstantno
- mjenja po potrebi.
- Korisnik u glavnom programu unosi broj,taj brioj predstavjati ce velicinu oba vektora(vektora drvenih i vektora metalnih brodova).
- Nakon toga unose se svi podaci za sve brodove. Nakon popune, program ispise nazive svih metalnih brodova ciji nazivi pocinju na
- C(dodati funkciju koja vraca prvo slovo imena), te ispise koliko brodova postoji(statican atribut)*/
- /*
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- class Brod {
- private:
- string *naziv_broda;
- public:
- void setNazivBroda(){
- cin.sync(); cin.clear(); getline(cin,*naziv_broda);
- }
- string getNazivBroda(){ return *naziv_broda; }
- char getSlovo(){ return (*naziv_broda).at(0); }
- int *brzina;
- virtual void ubrzanje() = 0;
- static int brb;
- Brod(){
- naziv_broda = new string; brzina = new int;
- *naziv_broda = "Crni Biser"; *brzina = 0; brb++;
- }
- ~Brod(){ delete naziv_broda; delete brzina; brb--; }
- };
- class Drveni : public Brod {
- public:
- void ubrzanje(){ *brzina = (*brzina) + 50; };
- };
- class Metalni : public Brod {
- public:
- void ubrzanje(){ *brzina = (*brzina) + 100; };
- };
- int Brod::brb = 0;
- int main(){
- int *i = new int; int *br = new int;
- cout << "Broj brodova: "; cin >> *br;
- vector<Drveni*> *nd = new vector<Drveni*>(*br);
- vector<Metalni*> *nm = new vector<Metalni*>(*br);
- for (*i=0;*i<*br;(*i)++){
- nd->at(*i) = new Drveni;
- nm->at(*i) = new Metalni;
- }
- for (*i=0;*i<*br;(*i)++){
- cout << "Naziv drvenog: ";
- nd->at(*i)->setNazivBroda();
- cout << "Brzina drvenog: ";
- cin >> *(nd->at(*i)->brzina);
- cout << "Naziv metalnog: ";
- nm->at(*i)->setNazivBroda();
- cout << "Brzina metalnog: ";
- cin >> *(nm->at(*i)->brzina);
- }
- for (*i=0;*i<*br;(*i)++){
- if (nm->at(*i)->getSlovo()=='C'){
- cout << nm->at(*i)->getNazivBroda() << endl;
- }
- }
- cout << "Brodova ima: " << Brod::brb << endl;
- system("pause");
- return 0;
- }
- ----------------------------------------------------------------------------------------
- */
- /* 2. rok GRUPA A */
- /*
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- class Pilot {
- private:
- double *masa, *godine;
- public:
- void setMasa(double m){ *masa = m; }
- double getMasa(){ return *masa; }
- void setGodine(double g){ *godine = g; }
- double getGodine(){ return *godine; }
- virtual void starenje() = 0;
- Pilot(){
- masa = new double; godine = new double;
- *masa = 75.5; *godine = 29;
- }
- ~Pilot(){ delete masa; delete godine; }
- };
- class Zemljani : public Pilot {
- public:
- void starenje(){ setGodine(getGodine()+1); };
- };
- class Astronaut : public Pilot {
- public:
- void starenje(){ setGodine(getGodine()+0.5); };
- static int aa;
- Astronaut(){ aa++; }
- ~Astronaut(){ aa--; }
- };
- int Astronaut::aa = 0;
- int main(){
- int *brz = new int; int *bra = new int; int *i = new int;
- cout << "Broj zemljanih: "; cin >> *brz;
- cout << "Broj astronauta: "; cin >> *bra;
- vector<Zemljani*> *vz = new vector<Zemljani*>(*brz);
- vector<Astronaut*> *va = new vector<Astronaut*>(*bra);
- for (*i=0;*i<*brz;(*i)++){ vz->at(*i) = new Zemljani; }
- for (*i=0;*i<*bra;(*i)++){ va->at(*i) = new Astronaut; }
- double *g = new double; double *m = new double;
- for (*i=0;*i<*brz;(*i)++){
- cout << "Masa zemljanog: "; cin >> *m; vz->at(*i)->setMasa(*m);
- cout << "Godine zemljanog: "; cin >> *g; vz->at(*i)->setGodine(*g);
- }
- for (*i=0;*i<*bra;(*i)++){
- cout << "Masa astronauta: "; cin >> *m; va->at(*i)->setMasa(*m);
- cout << "Godine astronauta: "; cin >> *g; va->at(*i)->setGodine(*g);
- }
- for (*i=0;*i<*brz;(*i)++){
- if (vz->at(*i)->getMasa()>vz->at(*i)->getGodine()){ vz->at(*i)->starenje(); }
- }
- for (*i=0;*i<*bra;(*i)++){
- if (va->at(*i)->getMasa()>va->at(*i)->getGodine()){ va->at(*i)->starenje(); }
- }
- for (*i=0;*i<*brz;(*i)++){delete vz->at(*i);} vz->clear(); delete vz;
- for (*i=0;*i<*bra;(*i)++){delete va->at(*i);} va->clear(); delete va;
- delete brz, bra, i, g, m;
- system("pause");
- return 0;
- }
- -------------------------------------------------------------------------------------------------------
- /*
- Definiraj klasu Brod sa privatnim atributima naziv_broda i naziv_maticne_luke, te virtualnom metodom slovo.
- Pretpostavljene vrijednosti su Oluja i Rijeka.
- Brodovi se dijele na teretne i putnicke. Teretnim se u funkciji slovo vraca prvo slovo imena, a putnickim prvo slovo luke.
- Cijelo vrijeme pomocu jednog statickog atributa prati se kolko postoji brodova (neovisno o vrsti), te se taj podataka konstantno mijenja po potrebi.
- 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.
- 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
- onih cije funkcije vrate isto slovo.
- Koristite dinamicke elemente svuda u programu (za staticki atribut nije potrebno). Dealocirati memoriju nakon koristenja.
- */
- /* 2. Rok GRUPA B */
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- class Brod {
- private: string *naziv_broda, *naziv_luke;
- public:
- static int bb;
- void setBrod(string nb){ *naziv_broda = nb; }
- string getBrod(){ return *naziv_broda; }
- void setLuka(string nl){ *naziv_luke = nl; }
- string getLuka(){ return *naziv_luke; }
- virtual char slovo() = 0;
- Brod(){
- naziv_broda = new string; naziv_luke = new string;
- *naziv_broda = "Galeb"; *naziv_luke = "Rijeka"; bb++;
- }
- ~Brod(){ delete naziv_broda; delete naziv_luke; bb--; }
- };
- class Teretni : public Brod {
- public: char slovo(){ return getBrod().at(0); };
- };
- class Putnicki : public Brod {
- public: char slovo(){ return getLuka().at(0); };
- };
- int Brod::bb = 0;
- int main(){
- int *brb = new int; int *i = new int;
- cout << "Broj brodova: "; cin >> *brb;
- vector<Putnicki*> *vp = new vector<Putnicki*>(*brb);
- for (*i=0;*i<*brb;(*i)++){
- vp->at(*i) = new Putnicki;
- }
- Teretni* *nt = new Teretni*[*brb];
- for (*i=0;*i<*brb;(*i)++){
- (*(nt+(*i))) = new Teretni;
- }
- string *nb = new string; string *nl = new string;
- for (*i=0;*i<*brb;(*i)++){
- cout << "Naziv P: "; cin.sync(); cin.clear(); getline(cin,*nb);
- vp->at(*i)->setBrod(*nb);
- cout << "Luka P: "; cin.sync(); cin.clear(); getline(cin,*nl);
- vp->at(*i)->setLuka(*nl);
- cout << "Naziv T: "; cin.sync(); cin.clear(); getline(cin,*nb);
- (*(nt+(*i)))->setBrod(*nb);
- cout << "Luka T: "; cin.sync(); cin.clear(); getline(cin,*nl);
- (*(nt+(*i)))->setLuka(*nl);
- }
- for (*i=0;*i<*brb;(*i)++){
- if(vp->at(*i)->slovo()==(*(nt+(*i)))->slovo()){
- cout<<vp->at(*i)->getBrod()<<endl;
- cout<<(*(nt+(*i)))->getBrod()<<endl;
- }
- }
- for (*i=0;*i<*brb;(*i)++){
- delete vp->at(*i);
- }
- vp->clear(); delete vp;
- for (*i=0;*i<*brb;(*i)++){
- delete (*(nt+(*i)));
- }
- delete[] nt;
- delete brb, i, nb, nl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement