Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<iomanip>
- #include<algorithm>
- #include<cstring>
- #include<stdlib.h>
- #include<ctime>
- using namespace std;
- class Firma{
- public:
- Firma():
- ime_firme{"empty"},unos_pozicije{0},pozicija{nullptr}{
- pozicija=new string[1];
- *pozicija="empty";
- }
- Firma(string f_name,int u_pozicije,string *w_position):
- ime_firme{f_name},unos_pozicije{u_pozicije},pozicija{nullptr}{
- pozicija=new string[1];
- *pozicija="empty";
- }
- ~Firma(){delete [] pozicija;}
- void set();
- string get_imeFirme()const{return ime_firme;}
- int get_unos_Pozicije()const{return unos_pozicije;}
- string *get_Pozicija()const{return pozicija;};
- void print()const{
- cout<<"----------------------\n";
- cout<<setw(15)<<get_imeFirme()<<endl;
- cout<<"----------------------\n";
- cout<<setw(10)<<*get_Pozicija()<<endl;
- cout<<"----------------------\n";
- }
- private:
- string ime_firme;
- int unos_pozicije;
- string *pozicija;
- };
- void Firma::set(){
- cout<<"Unesite ime firme: ";getline(cin,ime_firme);
- cout<<"----------------\n";
- cout<<"1) CEO\n";
- cout<<"2) MANAGER\n";
- cout<<"3) RADNIK\n";
- cout<<"----------------\n";
- cout<<"Unesite poziciju: ";cin>>unos_pozicije;cin.clear();cin.ignore(10000,'\n');
- if(unos_pozicije==1){
- *pozicija="CEO";
- }else if(unos_pozicije==2){
- *pozicija="MANAGER";
- }else if(unos_pozicije==3){
- *pozicija="RADNIK";
- }
- }
- class Osoba{
- public:
- Osoba():
- ime_prezime{"empty"},mail{"empty@gmail.com"},broj_licne_karte{"10101"}{}
- Osoba(string name,string contact_m,string blk):
- ime_prezime{name},mail{contact_m},broj_licne_karte{blk}{}
- ~Osoba(){}
- void set(){
- cout<<"Unesite ime i prezime: ";getline(cin,ime_prezime);
- cout<<"Unesite mail: ";getline(cin,mail);
- cout<<"Unesite broj licne karte: ";cin>>broj_licne_karte;cin.clear();cin.ignore(10000,'\n');
- }
- string get_ime()const{return ime_prezime;}
- string get_mail()const{return mail;}
- string get_blk()const{return broj_licne_karte;}
- void print()const{
- cout<<get_ime()<<" , "<<get_mail()<<" , "<<get_blk()<<endl;
- }
- private:
- string ime_prezime;
- string mail;
- string broj_licne_karte;
- };
- class Radnik_Base : public Osoba {
- public:
- Radnik_Base():
- Osoba{},staz{0}{++id;}
- Radnik_Base(string name,string contact_m,string blk,int work_exp):
- Osoba{name,contact_m,blk},staz{work_exp}{}
- ~Radnik_Base(){}
- void set(){
- Osoba::set();
- cout<<"Unesite staz radnika (Koliko dugo godina je radnik zaposlen): ";cin>>staz;cin.clear();cin.ignore(10000,'\n');
- }
- int get_id()const{return id;}
- int get_staz()const{return staz;}
- void print()const{
- Osoba::print();
- cout<<"ID: "<<get_id()<<endl;
- cout<<"Radni staz: "<<get_staz()<<" godina/e"<<endl;
- }
- private:
- static int id;
- int staz;
- };
- int Radnik_Base::id{0};
- class Radnik : public Firma, public Radnik_Base{
- public:
- Radnik():
- Firma{},Radnik_Base{},plata{800.0}{}
- Radnik(string f_name,int u_pozicije,string *w_position,string name,string contact_m,string blk,int work_exp,double salary):
- Firma{f_name,u_pozicije,w_position},Radnik_Base{name,contact_m,blk,work_exp},plata{salary}{}
- ~Radnik(){}
- void set(){
- Firma::set();
- if(Firma::get_unos_Pozicije()==3){
- Radnik_Base::set();
- }else{
- cout<<"Kodiraj pa se igraj"<<endl;
- }
- }
- void print_plata(int x,double mj_plata)const{
- if(x==0){
- cout<<mj_plata;
- }else{
- mj_plata=mj_plata+(mj_plata/10);
- print_plata(x-1,mj_plata);
- }
- }
- double get_plata()const{return plata;}
- void print()const{
- Firma::print();
- Radnik_Base::print();
- cout<<"Mjesecna primanja: ";print_plata(get_staz(),get_plata());cout<<"KM"<<endl;
- }
- private:
- double plata;
- };
- int main(){
- Radnik r1;
- r1.set();
- r1.print();
- return 0;
- }
Add Comment
Please, Sign In to add comment