Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //osoba.hpp
- #ifndef OSOBA_DEF
- #define OSOBA_DEF
- #include "dinstring.hpp" //osim dinstring.hpp mora postojati i dinstring.cpp
- #include <iostream>
- using namespace std;
- class Osoba{
- protected:
- DinString ime,prezime;
- public:
- Osoba(const char *s1="", const char *s2=""): ime(s1), prezime(s2) {}
- Osoba(const DinString &ds1, const DinString &ds2): ime(ds1), prezime(ds2) {}
- Osoba(const Osoba &os): ime(os.ime), prezime(os.prezime) {}
- ~Osoba() {}
- virtual void predstaviSe()const {cout<<"Zovem se "<<ime<<", prezivam "<<prezime<<" "<<endl;}
- };
- #endif
- //student.hpp
- #ifndef STUDENT_DEF
- #define STUDENT_DEF
- #include "osoba.hpp"
- class Student: public Osoba{
- protected:
- int brIndexa;
- public:
- Student(const char *s1="", const char *s2="", int i=0): Osoba(s1,s2), brIndexa(i) {}
- Student(const DinString &ds1, const DinString &ds2, int i): Osoba(ds1,ds2), brIndexa(i) {}
- Student(const Osoba &os, int i=0): Osoba(os), brIndexa(i) {}
- Student(const Student &st): Osoba((Osoba)st), brIndexa(st.brIndexa) {}
- ~Student(){}
- void predstaviSe() const {cout<<"Zovem se"<<ime<<" "<<prezime<<" " <<endl;
- cout<<"Moj broj indexa je: "<<brIndexa<<" "<<endl; }
- };
- #endif
- //zaposleni.hpp
- #ifndef ZAPOSLENI_DEF
- #define ZAPOSLENI_DEF
- #include "osoba.hpp"
- class Zaposleni: public Osoba{
- protected:
- int brRadnihSati;
- double vrSata;
- public:
- Zaposleni(const char *s1="", const char *s2="", int sat=0, double cena=0): Osoba(s1,s2), brRadnihSati(sat), vrSata(cena) {}
- Zaposleni(const DinString &ds1, const DinString &ds2,int sat, double cena): Osoba(ds1,ds2), brRadnihSati(sat), vrSata(cena) {}
- Zaposleni(const Osoba &os,int sat, double cena ): Osoba(os), brRadnihSati(sat), vrSata(cena) {}
- Zaposleni(const Zaposleni &zap): Osoba((Osoba)zap), brRadnihSati(zap.brRadnihSati), vrSata(zap.vrSata) {}
- ~Zaposleni() {}
- double getPlata()const {return brRadnihSati*vrSata;}
- void predstaviSe()const {cout<<"Zovem se "<<ime<<" "<<prezime<<". "<<endl;
- cout<<"Moja plata iznosi: "<<getPlata()<<" eura. "<<endl;}
- };
- #endif
- //direktor.hpp
- #ifndef DIREKTOR_DEF
- #define DIREKTOR_DEF
- #include "zaposleni.hpp"
- class Direktor: public Zaposleni{
- protected:
- char *strucnaSprema;
- public:
- Direktor(const char *s1="", const char *s2="", int sat=0, double cena=0,char *ch=""): Zaposleni(s1,s2,sat,cena), strucnaSprema(ch){}
- Direktor(const DinString &ds1, const DinString &ds2,int sat, double cena,char *ch): Zaposleni(ds1,ds2,sat,cena), strucnaSprema(ch) {}
- Direktor(const Osoba &os,int sat, double cena, char *ch): Zaposleni(os,sat,cena), strucnaSprema(ch) {}
- Direktor(const Zaposleni &zap, char *ch): Zaposleni(zap), strucnaSprema(ch) {}
- Direktor(const Direktor &dir): Zaposleni((Zaposleni)dir), strucnaSprema(dir.strucnaSprema) {}
- ~Direktor() {}
- double getPlata()const {return brRadnihSati*vrSata*10;}
- void predstaviSe()const {cout<<"Zovem se "<<ime<<" "<<prezime<<". "<<endl;
- cout<<"Moja plata iznosi: "<<getPlata()<<" eura. "<<endl;
- cout<<"Ja sam direktor firme."<<endl;
- cout<<"Moja strucna sprema je: "<<strucnaSprema<<" "<<endl;}
- };
- #endif
- //main.cpp
- //imeni klasu osoba, tako da metoda predstaviSe() bude virtuelna, a zatim iz
- //klase osoba izvedi klasu Student i klasu zaposleni koja sadrzi polja
- //brojRadnihSati i vrednostSata kao i virtuelnu metodu izracunajPlatu() = brRadnihSati*vrSata
- #include "student.hpp"
- #include "zaposleni.hpp"
- #include "direktor.hpp"
- void predstavljanje(const Osoba &os) {
- os.predstaviSe();
- }
- int main(){
- const char *s1 = "Velimir";
- const char *s2 = "Idiotic";
- const char *s3 = "Mujo";
- const char *s4 = "Bosanac";
- const char *s5 ="Dzosef";
- const char *s6 = "Talambasic";
- DinString ds1(s1), ds2(s2), ds3(s3), ds4(s4), ds5(s5), ds6(s6);
- Osoba osoba1(s1,s2), osoba2(s1,s4), osoba3(s5,s6), osoba4(s3,s4), osoba5(osoba1);
- Student student1(s1,s2,13592),student2(osoba2,13593),student3(ds4,ds6,13597),student4(osoba5,13598);
- Zaposleni radnik1(osoba4, 10, 106.88),radnik2(s5,s6,12,106.88), radnik3(osoba5,14,106.88);
- Direktor dir1(radnik3, "Visoka strucna sprema." ), dir2(radnik2, "Magistar." ),dir3(radnik1, "Doktor." ) ;
- predstavljanje(osoba1);
- predstavljanje(osoba2);
- predstavljanje(osoba3);
- predstavljanje(osoba4);
- cout<< "\n\n" <<endl;
- predstavljanje(student1);
- predstavljanje(student2);
- predstavljanje(student3);
- cout<< "\n\n" <<endl;
- predstavljanje(radnik1);
- predstavljanje(radnik2);
- predstavljanje(radnik3);
- cout<< "\n\n" <<endl;
- predstavljanje(dir1);
- cout<< "\n" <<endl;
- predstavljanje(dir2);
- cout<< "\n" <<endl;
- predstavljanje(dir3);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement