Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- using namespace std;
- //************************************************************************************************** class Personel
- class Personel {
- public:
- Personel() {};
- Personel(string _nazwisko, short _biuro = 0);
- ~Personel();
- void print();
- void set_biuro(short _biuro) { biuro = _biuro; }
- int get_telefon();
- private:
- string nazwisko;
- short biuro;
- };
- Personel::Personel(string _nazwisko, short _biuro) : biuro(_biuro), nazwisko(_nazwisko)
- { }
- void Personel::print() {
- cout << "PRACOWNIK: " << nazwisko << endl;
- cout << "BIURO: " << biuro << " // "
- << "TELEFON: " << get_telefon() << endl;
- }
- int Personel::get_telefon() {
- return 111111100 + biuro;
- }
- //************************************************************************************************** class Pracownik
- class Pracownik : public virtual Personel {
- public:
- Pracownik(string _nazwisko, int _biuro = 0, float _stawka = 0.0, float _godziny = 0.0);
- void print();
- void set_stawka(float _stawka) { stawka = _stawka; }
- void set_godziny(float _godziny) { godziny = _godziny; }
- float oblicz_place();
- private:
- float stawka;
- float godziny;
- };
- Pracownik::Pracownik(string _nazwisko, int _biuro, float _stawka, float _godziny)
- : Personel(_nazwisko, _biuro), stawka(_stawka), godziny(_godziny)
- { }
- void Pracownik::print() {
- Personel::print();
- cout << "STAWKA/H: " << stawka << " PLN // "
- << "GODZINY: " << godziny << " " << endl;
- }
- float Pracownik::oblicz_place() {
- return stawka * godziny;
- }
- //************************************************************************************************** class Sprzedawca
- class Sprzedawca : public Pracownik {
- public:
- Sprzedawca(string _nazwisko, short _biuro = 0, float _stawka = 0.0, float _godziny = 0.0, float _procent = 0.0, float _sprzedaz = 0.0);
- void print();
- void set_procent(float _procent) { procent = _procent / 100; }
- void set_sprzedaz(float _sprzedaz) { sprzedaz = _sprzedaz; }
- float oblicz_place();
- private:
- float procent;
- float sprzedaz;
- };
- Sprzedawca::Sprzedawca(string _nazwisko, short _biuro, float _stawka, float _godziny, float _procent, float _sprzedaz)
- : Pracownik(_nazwisko, _biuro, _stawka, _godziny), procent(_procent), sprzedaz(_sprzedaz), Personel(_nazwisko, _biuro)
- { }
- void Sprzedawca::print() {
- Pracownik::print();
- cout << "PROCENT: " << procent << "% // "
- << "SPRZEDAZ: " << sprzedaz << endl;
- }
- float Sprzedawca::oblicz_place() {
- return Pracownik::oblicz_place() + procent * sprzedaz;
- }
- //************************************************************************************************** class Dyrektor
- class Dyrektor : public virtual Personel {
- public:
- Dyrektor(string _nazwisko, short _biuro = 0, float _pensja = 0.0, float _premia = 0.0, int _ile_pracownikow = 0);
- void print();
- void set_pensja(float _pensja) { pensja = _pensja; }
- void set_premia(Dyrektor &Dyrektor) {premia = Dyrektor.ile_pracownikow * 50.0; }
- void set_ile_pracownikow(int _ile_pracownikow)
- {
- ile_pracownikow = _ile_pracownikow;
- }
- float oblicz_place();
- int ile_pracownikow;
- private:
- float pensja; float premia;
- };
- Dyrektor::Dyrektor(string _nazwisko, short _biuro, float _pensja, float _premia, int _ile_pracownikow)
- : Personel(_nazwisko, _biuro), pensja(_pensja), premia(_premia), ile_pracownikow(_ile_pracownikow)
- { }
- void Dyrektor::print() {
- Personel::print();
- cout << "PENSJA: " << pensja << " PLN // "
- << "PREMIA: " << premia << " PLN" << endl;
- cout << "LICZBA PRACOWNIKOW: " << ile_pracownikow << endl;
- }
- float Dyrektor::oblicz_place() {
- return pensja + premia;
- }
- //************************************************************************************************** class Dyrektor Handlowy
- class DyrektorHandlowy : public Dyrektor, public Sprzedawca {
- public:
- DyrektorHandlowy(string _nazwisko, short _biuro, float _pensja, float _premia);
- void print();
- void set_procent(float _procent) { procent = _procent / 100; }
- void set_sprzedaz(float _sprzedaz) { sprzedaz = _sprzedaz; }
- float oblicz_place();
- void set_pensja(float _pensja) { pensja = _pensja; }
- void set_premia(Dyrektor &Dyrektor) { premia = Dyrektor.ile_pracownikow * 50; }
- void set_ile_pracownikow(int _ile_pracownikow) { ile_pracownikow = _ile_pracownikow; }
- private:
- float pensja; float premia;
- float procent;
- float sprzedaz;
- };
- DyrektorHandlowy::DyrektorHandlowy(string _nazwisko, short _biuro, float _pensja, float _premia)
- : Dyrektor(_nazwisko, _biuro, _pensja, _premia), Sprzedawca(_nazwisko, _biuro)
- { }
- void DyrektorHandlowy::print()
- {
- Personel::print();
- cout << "PENSJA: " << pensja << " PLN // "
- << "PREMIA: " << premia << " PLN" << endl;
- cout << "LICZBA PRACOWNIKOW: " << ile_pracownikow << endl;
- }
- float DyrektorHandlowy::oblicz_place()
- {
- return Pracownik::oblicz_place() + procent * sprzedaz + pensja + premia;
- }
- //************************************************************************************************** MAIN
- int main() {
- Personel personel("Personel_test", 1);
- personel.print(); // Personel::print()
- personel.set_biuro(4); // Personel::set_biuro()
- cout << endl << "------------------------------------------------------" << endl;
- Pracownik pracownik("Pracownik_Test", 2, 9.0, 160.0);
- pracownik.set_biuro(2); // Personel::set_biuro() // 3 -> 4
- pracownik.set_stawka(7.0); // Pracownik::set_stawka() //
- pracownik.print(); // Pracownik::print()
- cout << "WYPLATA: " << pracownik.oblicz_place() << endl;
- cout << endl << "------------------------------------------------------" << endl;
- Sprzedawca sprzedawca("Sprzedawca_test");
- sprzedawca.set_biuro(3); // Personel::set_biuro()
- sprzedawca.set_stawka(9.0); // Pracownik::set_stawka()
- sprzedawca.set_godziny(160.0); // Pracownik::set_godziny()
- sprzedawca.set_procent(5*100); // Sprzedawca::set_procent()
- sprzedawca.set_sprzedaz(9000.0); // Sprzedawca::set_sprzedaz()
- sprzedawca.print(); // Sprzedawca::print()
- cout << "WYPLATA: " << sprzedawca.oblicz_place() << endl;
- cout << endl << "------------------------------------------------------" << endl;
- Dyrektor dyrektor("Dyrektor_test");
- dyrektor.set_biuro(4); // Personel::set_biuro()
- dyrektor.set_pensja(10000.0); // Dyrektor::set_pensja()
- dyrektor.set_ile_pracownikow(25); // Dyrektor::set_ile_pracownikow()
- dyrektor.set_premia(dyrektor);
- dyrektor.print(); // Dyrektor::print()
- cout << "WYPLATA: " << dyrektor.oblicz_place() << endl;
- cout << endl << "------------------------------------------------------" << endl;
- DyrektorHandlowy dyrektor_handlowy("DyrektorHandlowy");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement