Ahmet_Durmic

firma [inh_not_finished]

Jul 4th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. #include<iostream>
  2. #include<iomanip>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<stdlib.h>
  6. #include<ctime>
  7.  
  8. using namespace std;
  9.  
  10.  
  11. class Firma{
  12. public:
  13. Firma():
  14. ime_firme{"empty"},unos_pozicije{0},pozicija{nullptr}{
  15. pozicija=new string[1];
  16. *pozicija="empty";
  17. }
  18. Firma(string f_name,int u_pozicije,string *w_position):
  19. ime_firme{f_name},unos_pozicije{u_pozicije},pozicija{nullptr}{
  20. pozicija=new string[1];
  21. *pozicija="empty";
  22. }
  23. ~Firma(){delete [] pozicija;}
  24. void set();
  25. string get_imeFirme()const{return ime_firme;}
  26. int get_unos_Pozicije()const{return unos_pozicije;}
  27. string *get_Pozicija()const{return pozicija;};
  28. void print()const{
  29. cout<<"----------------------\n";
  30. cout<<setw(15)<<get_imeFirme()<<endl;
  31. cout<<"----------------------\n";
  32. cout<<setw(10)<<*get_Pozicija()<<endl;
  33. cout<<"----------------------\n";
  34. }
  35. private:
  36. string ime_firme;
  37. int unos_pozicije;
  38. string *pozicija;
  39.  
  40. };
  41. void Firma::set(){
  42. cout<<"Unesite ime firme: ";getline(cin,ime_firme);
  43. cout<<"----------------\n";
  44. cout<<"1) CEO\n";
  45. cout<<"2) MANAGER\n";
  46. cout<<"3) RADNIK\n";
  47. cout<<"----------------\n";
  48. cout<<"Unesite poziciju: ";cin>>unos_pozicije;cin.clear();cin.ignore(10000,'\n');
  49. if(unos_pozicije==1){
  50. *pozicija="CEO";
  51. }else if(unos_pozicije==2){
  52. *pozicija="MANAGER";
  53. }else if(unos_pozicije==3){
  54. *pozicija="RADNIK";
  55. }
  56. }
  57.  
  58. class Osoba{
  59. public:
  60. Osoba():
  61. ime_prezime{"empty"},mail{"empty@gmail.com"},broj_licne_karte{"10101"}{}
  62. Osoba(string name,string contact_m,string blk):
  63. ime_prezime{name},mail{contact_m},broj_licne_karte{blk}{}
  64. ~Osoba(){}
  65. void set(){
  66. cout<<"Unesite ime i prezime: ";getline(cin,ime_prezime);
  67. cout<<"Unesite mail: ";getline(cin,mail);
  68. cout<<"Unesite broj licne karte: ";cin>>broj_licne_karte;cin.clear();cin.ignore(10000,'\n');
  69. }
  70. string get_ime()const{return ime_prezime;}
  71. string get_mail()const{return mail;}
  72. string get_blk()const{return broj_licne_karte;}
  73. void print()const{
  74. cout<<get_ime()<<" , "<<get_mail()<<" , "<<get_blk()<<endl;
  75. }
  76.  
  77. private:
  78. string ime_prezime;
  79. string mail;
  80. string broj_licne_karte;
  81. };
  82.  
  83. class Radnik_Base : public Osoba {
  84. public:
  85. Radnik_Base():
  86. Osoba{},staz{0}{++id;}
  87. Radnik_Base(string name,string contact_m,string blk,int work_exp):
  88. Osoba{name,contact_m,blk},staz{work_exp}{}
  89. ~Radnik_Base(){}
  90.  
  91. void set(){
  92. Osoba::set();
  93. cout<<"Unesite staz radnika (Koliko dugo godina je radnik zaposlen): ";cin>>staz;cin.clear();cin.ignore(10000,'\n');
  94. }
  95. int get_id()const{return id;}
  96. int get_staz()const{return staz;}
  97. void print()const{
  98. Osoba::print();
  99. cout<<"ID: "<<get_id()<<endl;
  100. cout<<"Radni staz: "<<get_staz()<<" godina/e"<<endl;
  101. }
  102.  
  103. private:
  104. static int id;
  105. int staz;
  106. };
  107. int Radnik_Base::id{0};
  108.  
  109. class Radnik : public Firma, public Radnik_Base{
  110. public:
  111. Radnik():
  112. Firma{},Radnik_Base{},plata{800.0}{}
  113. Radnik(string f_name,int u_pozicije,string *w_position,string name,string contact_m,string blk,int work_exp,double salary):
  114. Firma{f_name,u_pozicije,w_position},Radnik_Base{name,contact_m,blk,work_exp},plata{salary}{}
  115. ~Radnik(){}
  116.  
  117. void set(){
  118. Firma::set();
  119. if(Firma::get_unos_Pozicije()==3){
  120. Radnik_Base::set();
  121. }else{
  122. cout<<"Kodiraj pa se igraj"<<endl;
  123. }
  124. }
  125. void print_plata(int x,double mj_plata)const{
  126. if(x==0){
  127. cout<<mj_plata;
  128. }else{
  129. mj_plata=mj_plata+(mj_plata/10);
  130. print_plata(x-1,mj_plata);
  131. }
  132. }
  133. double get_plata()const{return plata;}
  134. void print()const{
  135. Firma::print();
  136. Radnik_Base::print();
  137. cout<<"Mjesecna primanja: ";print_plata(get_staz(),get_plata());cout<<"KM"<<endl;
  138. }
  139.  
  140. private:
  141. double plata;
  142. };
  143.  
  144.  
  145.  
  146. int main(){
  147.  
  148. Radnik r1;
  149. r1.set();
  150. r1.print();
  151.  
  152. return 0;
  153. }
Add Comment
Please, Sign In to add comment