Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class Angajat
- {
- protected:
- string nume, CNP;
- int salariuBrut;
- double impozit;
- public:
- Angajat() :
- nume(""), CNP(""), salariuBrut(0), impozit(0) {}
- Angajat(string nume, string CNP, int salariuBrut, double impozit) :
- nume(nume), CNP(CNP), salariuBrut(salariuBrut), impozit(impozit) {}
- void setNume(string nume)
- {
- this->nume = nume;
- }
- void setCNP(string CNP)
- {
- this->CNP = CNP;
- }
- void setSalariuBrut(int salariuBrut)
- {
- this->salariuBrut = salariuBrut;
- }
- void setImpozit(double impozit)
- {
- this->impozit = impozit;
- }
- string getNume()
- {
- return nume;
- }
- string getCNP()
- {
- return CNP;
- }
- int getSalariuBrut()
- {
- return salariuBrut;
- }
- double getImpozit()
- {
- return impozit;
- }
- void afisare()
- {
- cout << "Nume : " << nume << endl;
- cout << "CNP : " << CNP << endl;
- cout << "Salariul brut : " << salariuBrut << endl;
- cout << "Impozit : " << impozit << endl;
- }
- double calculSalariuNet()
- {
- return (double)(1 - impozit) * salariuBrut;
- }
- };
- class AngajatTemporar : public Angajat
- {
- protected:
- int oreLucrate, plataOra;
- public:
- AngajatTemporar() :
- Angajat(), oreLucrate(0), plataOra(0) {}
- AngajatTemporar(string nume, string CNP, double impozit, int oreLucrate, int plataOra) :
- Angajat(nume, CNP, oreLucrate* plataOra, impozit), oreLucrate(oreLucrate), plataOra(plataOra) {}
- void setOreLucrare(int oreLucrate)
- {
- this->oreLucrate = oreLucrate;
- }
- void setPlataOra(int plataOra)
- {
- this->plataOra = plataOra;
- }
- int getOreLucrare()
- {
- return oreLucrate;
- }
- int getPlataOra()
- {
- return plataOra;
- }
- void afisare()
- {
- Angajat::afisare();
- cout << "Numar de ore lucrate : " << oreLucrate << endl;
- cout << "Plata pe ora : " << plataOra << endl;
- }
- };
- class AngajatPermanent : public Angajat
- {
- private:
- int vechime, zileConcediu;
- public:
- AngajatPermanent() :
- Angajat(), vechime(0), zileConcediu(0) {}
- AngajatPermanent(string nume, string CNP, int salariuBrut, double impozit, int vechime, int zileConcediu) :
- Angajat(nume, CNP, salariuBrut, impozit), vechime(vechime), zileConcediu(zileConcediu) {}
- int getVechime()
- {
- return vechime;
- }
- int getZileConcediu()
- {
- return zileConcediu;
- }
- void afisare()
- {
- Angajat::afisare();
- cout << "Vechime : " << vechime << endl;
- cout << "Numar zile de concediu : " << zileConcediu << endl;
- }
- };
- class AngajatConducere : public AngajatPermanent
- {
- private:
- string functieConducere;
- int indemnizatieSalariu;
- public:
- AngajatConducere() :
- AngajatPermanent(), functieConducere(""), indemnizatieSalariu(0) {}
- AngajatConducere(string nume, string CNP, int salariuBrut, double impozit, int vechime, int zileConcediu, string functieConducere, int indemnizatieSalariu) :
- AngajatPermanent(nume, CNP, salariuBrut, impozit, vechime, zileConcediu), functieConducere(functieConducere), indemnizatieSalariu(indemnizatieSalariu) {}
- void afisare()
- {
- AngajatPermanent::afisare();
- cout << "Functie de conducere : " << functieConducere << endl;
- cout << "Indemnizatie salariu : " << indemnizatieSalariu << endl;
- }
- };
- int main()
- {
- Angajat angajat("Popescu Florin", "5013678596785", 7000, 0.1);
- angajat.afisare();
- cout << "Salariul net : " << angajat.calculSalariuNet() << endl;
- cout << endl;
- AngajatTemporar angajatTemporar("Gheorghe Marin", "5010543978612", 0.15, 200, 35);
- angajatTemporar.afisare();
- cout << "Salariul net : " << angajatTemporar.calculSalariuNet() << endl;
- cout << endl;
- AngajatPermanent angajatPermanent("Marin Ana", "5023697840397", 8000, 0.1, 2, 24);
- angajatPermanent.afisare();
- cout << "Salariul net : " << angajatPermanent.calculSalariuNet() << endl;
- cout << endl;
- AngajatConducere angajatConducere;
- angajatConducere.afisare();
- cout << "Salariul net : " << angajatConducere.calculSalariuNet() << endl;
- cout << endl;
- // angajatPermanent = angajatConducere;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement