Alx09

L3p4

Oct 15th, 2020
1,300
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. class Persoana {
  5.     string *nume = new string;
  6.     string *prenume = new string;
  7.     unsigned int varsta;
  8. public:
  9.  
  10.     //constructor vid folosit pentru declararea vectorului
  11.     Persoana() {}
  12.     //constructor pentru initializarea variabilelor
  13.     Persoana(string &nume, string &prenume, unsigned int varsta)
  14.     {  
  15.         *this->nume = nume;
  16.         *this->prenume = prenume;
  17.         this->varsta = varsta;
  18.     }
  19.     ~Persoana() { delete nume, prenume;
  20.     }
  21.     //functie de afisare
  22.     void afisare()
  23.     {
  24.         cout << "-----------------------------\n";
  25.         cout << "Numele: " << nume->c_str() << "\n";
  26.         cout << "Prenume: " << prenume->c_str() << "\n";
  27.         cout << "Varsta: " << varsta << "\n";
  28.     }
  29.     //returnare nume pentru functia de cautare
  30.     string returnareNume()
  31.     {
  32.         return *nume;
  33.     }
  34.     //returnare prenume pentru functia de stergere
  35.     string returnarePrenume()
  36.     {
  37.         return *prenume;
  38.     }
  39. };
  40.  
  41. class Angajat : public Persoana {
  42.     unsigned int salar;
  43.     string *departament = new string;
  44. public:
  45.     //constructor vid folosit pentru declararea vectorului
  46.     Angajat() {}
  47.     //constructor pentru initializarea variabilelor
  48.     Angajat(string &nume, string &prenume, int varsta, string &departament, unsigned int salar) : Persoana(nume, prenume, varsta)
  49.     {
  50.         *this->departament = departament;
  51.         this->salar = salar;
  52.     }
  53.     ~Angajat() { delete departament; }
  54.     //functia de afisare
  55.     void afisare()
  56.     {
  57.         Persoana::afisare();
  58.         cout << "Departament: " << departament->c_str() << "\n";
  59.         cout << "Salar: " << salar << " ron";
  60.        
  61.     }
  62. };
  63. class Profesor : public Angajat {
  64. private:
  65.     string *numefacultate= new string;
  66.     unsigned short nrStud;
  67.  public:
  68.      ~Profesor() {
  69.          cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
  70.          cout << " profesor la " << numefacultate->c_str() << " a fost sters din baza de date\n"; delete numefacultate; }
  71.     Profesor() {}
  72.     Profesor(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string numefacultate, unsigned short nrStud) : Angajat(nume, prenume, varsta, departament, salar) {
  73.         *this->numefacultate = numefacultate;
  74.         this->nrStud = nrStud;
  75.     }
  76.     void afisare() {
  77.         Angajat::afisare();
  78.         cout << "\nProfesor la facultatea " << numefacultate->c_str();
  79.         cout << "\nNumar de studenti: " << nrStud << "\n\n";
  80.     }
  81. };
  82. class Inginer : public Angajat {
  83. private:
  84.     string *Domeniu = new string;
  85.     unsigned short vechime;
  86.  
  87. public:
  88.     ~Inginer() {
  89.         cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
  90.         cout << " inginer in " << Domeniu->c_str() << " a fost sters din baza de date\n"; delete Domeniu;}
  91.     Inginer() {}
  92.     Inginer(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string Domeniu, unsigned short vechime) : Angajat(nume, prenume, varsta, departament, salar) {
  93.         *this->Domeniu = Domeniu;
  94.         this->vechime = vechime;
  95.     }
  96.     void afisare() {
  97.         Angajat::afisare();
  98.         cout << "\nInginer in " << Domeniu->c_str();
  99.         cout << "\nVechime: " << vechime << "\n\n";
  100.     }
  101. };
  102.  
  103. class Student : public Persoana {
  104.     unsigned int anStudiu;
  105.     string *numeFacult = new string;
  106. public:
  107.     //constructor vid folosit pentru declararea vectorului
  108.     Student() {}
  109.     //constructor pentru initializarea variabilelor
  110.     Student(string &nume, string &prenume, int varsta, string &numeFacult, unsigned int anStudiu) : Persoana(nume, prenume, varsta)
  111.     {
  112.         *this->numeFacult = numeFacult;
  113.         this->anStudiu = anStudiu;
  114.     }
  115.     ~Student() { delete numeFacult; }
  116.     //functia de afisare
  117.     void afisare()
  118.     {
  119.         Persoana::afisare();
  120.         cout << "Nume Facultate: " << numeFacult->c_str() << "\n";
  121.         cout << "An Studiu: " << anStudiu;
  122.  
  123.     }
  124. };
  125. class StudentLicenta : public Student {
  126. private:
  127.     string *specializarea = new string;
  128.     unsigned short nrCredite;
  129. public:
  130.     ~StudentLicenta() {
  131.         cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
  132.         cout << " student licenta la " << specializarea->c_str() << " a fost sters din baz de date\n"; delete specializarea; }
  133.     StudentLicenta() {}
  134.     StudentLicenta(string nume, string prenume, unsigned int varsta,string numeFacult, unsigned int anStud, string specializare, unsigned int nrCredite) : Student(nume, prenume, varsta, numeFacult, anStud) {
  135.         *this->specializarea = *specializarea;
  136.         this->nrCredite = nrCredite;
  137.     }
  138.     void afisare() {
  139.         Student::afisare();
  140.         cout << "\nSpecializarea " << specializarea->c_str();
  141.         cout << "\nNumar de credite: " << nrCredite << "\n\n";
  142.     }
  143. };
  144. class StudentMaster : public Student {
  145. private:
  146.     string *specializarea = new string;
  147.     bool  laBuget;;
  148. public:
  149.     ~StudentMaster(){
  150.         cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
  151.         cout << " student Master la " << specializarea->c_str() << " a fost sters din baz de date\n"; delete specializarea;
  152.     }
  153.  
  154.     StudentMaster() {}
  155.     StudentMaster(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string specializarea, bool  laBuget) : Student(nume, prenume, varsta, departament, salar) {
  156.         *this->specializarea = specializarea;
  157.         this->laBuget = laBuget;
  158.     }
  159.     void afisare() {
  160.         StudentMaster::afisare();
  161.         cout << "\nSSpecializarea " << specializarea->c_str();
  162.         if (laBuget)
  163.             cout << "\Student la buget";
  164.         else
  165.             cout << "\nStudent in regim cu taxa";
  166.     }
  167. };
  168. int main()
  169. {
  170.  
  171.     Profesor *popescu =  new Profesor("popescu", "ion ", 29,"economic", 2000, "upt", 287);
  172.     popescu->afisare();
  173.     delete popescu;
  174.     _sleep(2000);
  175.     Inginer *alex = new Inginer("Drula", "Alex", 24, "Repare,", 5000, "C++", 5);
  176.     alex->afisare();
  177.     delete alex;
  178.     _sleep(2000);
  179.     StudentLicenta *florin = new StudentLicenta("popescu", "florin", 20, "UPT", 2, "IS", 80);
  180.     florin->afisare();
  181.     delete florin;
  182.     _sleep(2000);
  183.     StudentMaster *bogdan = new StudentMaster("Drula", "Bogdan", 20, "UPT", 2, "Programarea Calculatoarelor", true);
  184.     bogdan->afisare();
  185.     delete bogdan;
  186.     _sleep(2000);
  187.     system("pause");
  188.     return 0;
  189. }
  190.  
  191.  
RAW Paste Data