Alx09

Untitled

Oct 15th, 2020
1,103
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() { cout << nume->c_str() << ' ' << prenume->c_str() << " a fost sters din baza de date\n";
  20.     delete nume, prenume;
  21.     }
  22.     //functie de afisare
  23.     void afisare()
  24.     {
  25.         cout << "-----------------------------\n";
  26.         cout << "Numele: " << nume->c_str() << "\n";
  27.         cout << "Prenume: " << prenume->c_str() << "\n";
  28.         cout << "Varsta: " << varsta << "\n";
  29.     }
  30.     //returnare nume pentru functia de cautare
  31.     string returnareNume()
  32.     {
  33.         return *nume;
  34.     }
  35.     //returnare prenume pentru functia de stergere
  36.     string returnarePrenume()
  37.     {
  38.         return *prenume;
  39.     }
  40. };
  41.  
  42. class Angajat : public Persoana {
  43.     unsigned int salar;
  44.     string *departament = new string;
  45. public:
  46.     //constructor vid folosit pentru declararea vectorului
  47.     Angajat() {}
  48.     //constructor pentru initializarea variabilelor
  49.     Angajat(string *nume, string *prenume, int varsta, string *departament, unsigned int salar) : Persoana(nume, prenume, varsta)
  50.     {
  51.         *this->departament = *departament;
  52.         this->salar = salar;
  53.     }
  54.     ~Angajat() { delete departament; }
  55.     //functia de afisare
  56.     void afisare()
  57.     {
  58.         Persoana::afisare();
  59.         cout << "Departament: " << departament->c_str() << "\n";
  60.         cout << "Salar: " << salar << " ron";
  61.        
  62.     }
  63. };
  64. class Profesor : public Angajat {
  65. private:
  66.     string *numefacultate= new string;
  67.     unsigned short nrStud
  68. ; public:
  69.     Profesor() {}
  70.     Profesor(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string numefacultate, unsigned short nrStud) : Angajat(&nume, &prenume, varsta, &departament, salar) {
  71.         *this->numefacultate = numefacultate;
  72.         this->nrStud = nrStud;
  73.     }
  74.     void afisare() {
  75.         Angajat::afisare();
  76.         cout << "\nProfesor la facultatea " << numefacultate->c_str();
  77.         cout << "\nNumar de studenti: " << nrStud << "\n\n";
  78.     }
  79. };
  80. class Inginer : public Angajat {
  81. private:
  82.     string *Domeniu = new string;
  83.     unsigned short vechime;
  84.  
  85. public:
  86.     Inginer() {}
  87.     Inginer(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string Domeniu, unsigned short vechime) : Angajat(&nume, &prenume, varsta, &departament, salar) {
  88.         *this->Domeniu = Domeniu;
  89.         this->vechime = vechime;
  90.     }
  91.     void afisare() {
  92.         Angajat::afisare();
  93.         cout << "\nInginer la facultatea " << Domeniu->c_str();
  94.         cout << "\nVechime: " << vechime << "\n\n";
  95.     }
  96. };
  97.  
  98.  
  99. class Student : public Persoana {
  100.     unsigned int anStudiu;
  101.     string *numeFacult = new string;
  102. public:
  103.     //constructor vid folosit pentru declararea vectorului
  104.     Student() {}
  105.     //constructor pentru initializarea variabilelor
  106.     Student(string *nume, string *prenume, int varsta, string *numeFacult, unsigned int anStudiu) : Persoana(nume, prenume, varsta)
  107.     {
  108.         *this->numeFacult = *numeFacult;
  109.         this->anStudiu = anStudiu;
  110.     }
  111.     ~Student() { delete numeFacult; }
  112.     //functia de afisare
  113.     void afisare()
  114.     {
  115.         Persoana::afisare();
  116.         cout << "profil: " << numeFacult->c_str() << "\n";
  117.         cout << "anUniv: " << anStudiu << " ron";
  118.  
  119.     }
  120. };
  121.  
  122. class StudentLicenta : public StudentLicenta {
  123. private:
  124.     string *specializarea = new string;
  125.     unsigned short nrCredite;
  126. public:
  127.     StudentLicenta() {}
  128.     StudentLicenta(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string specializarea, unsigned short nrCredite) : StudentLicenta(&nume, &prenume, varsta, &departament, salar) {
  129.         *this->specializarea = specializarea;
  130.         this->nrCredite = nrCredite;
  131.     }
  132.     void afisare() {
  133.         StudentLicenta::afisare();
  134.         cout << "\nSSpecializarea " << specializarea->c_str();
  135.         cout << "\nNumar de credite: " << nrCredite << "\n\n";
  136.     }
  137. };
  138.  
  139. int main()
  140. {
  141.  
  142.     Profesor *popescu =  new Profesor("popescu", "ion ", 29,"economic", 2000, "upt", 287);
  143.     popescu->afisare();
  144.     delete popescu;
  145.     Inginer *alex = new Inginer("Drula", "Alex", 24, "Repare,", 5000, "C++", 5);
  146.     alex->afisare();
  147.     delete alex;
  148.  
  149.     system("pause");
  150.     return 0;
  151. }
  152.  
  153.  
RAW Paste Data