Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- class Persoana {
- string *nume = new string;
- string *prenume = new string;
- unsigned int varsta;
- public:
- //constructor vid folosit pentru declararea vectorului
- Persoana() {}
- //constructor pentru initializarea variabilelor
- Persoana(string &nume, string &prenume, unsigned int varsta)
- {
- *this->nume = nume;
- *this->prenume = prenume;
- this->varsta = varsta;
- }
- ~Persoana() { delete nume, prenume;
- }
- //functie de afisare
- void afisare()
- {
- cout << "-----------------------------\n";
- cout << "Numele: " << nume->c_str() << "\n";
- cout << "Prenume: " << prenume->c_str() << "\n";
- cout << "Varsta: " << varsta << "\n";
- }
- //returnare nume pentru functia de cautare
- string returnareNume()
- {
- return *nume;
- }
- //returnare prenume pentru functia de stergere
- string returnarePrenume()
- {
- return *prenume;
- }
- };
- class Angajat : public Persoana {
- unsigned int salar;
- string *departament = new string;
- public:
- //constructor vid folosit pentru declararea vectorului
- Angajat() {}
- //constructor pentru initializarea variabilelor
- Angajat(string &nume, string &prenume, int varsta, string &departament, unsigned int salar) : Persoana(nume, prenume, varsta)
- {
- *this->departament = departament;
- this->salar = salar;
- }
- ~Angajat() { delete departament; }
- //functia de afisare
- void afisare()
- {
- Persoana::afisare();
- cout << "Departament: " << departament->c_str() << "\n";
- cout << "Salar: " << salar << " ron";
- }
- };
- class Profesor : public Angajat {
- private:
- string *numefacultate= new string;
- unsigned short nrStud;
- public:
- ~Profesor() {
- cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
- cout << " profesor la " << numefacultate->c_str() << " a fost sters din baza de date\n"; delete numefacultate; }
- Profesor() {}
- Profesor(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string numefacultate, unsigned short nrStud) : Angajat(nume, prenume, varsta, departament, salar) {
- *this->numefacultate = numefacultate;
- this->nrStud = nrStud;
- }
- void afisare() {
- Angajat::afisare();
- cout << "\nProfesor la facultatea " << numefacultate->c_str();
- cout << "\nNumar de studenti: " << nrStud << "\n\n";
- }
- };
- class Inginer : public Angajat {
- private:
- string *Domeniu = new string;
- unsigned short vechime;
- public:
- ~Inginer() {
- cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
- cout << " inginer in " << Domeniu->c_str() << " a fost sters din baza de date\n"; delete Domeniu;}
- Inginer() {}
- Inginer(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string Domeniu, unsigned short vechime) : Angajat(nume, prenume, varsta, departament, salar) {
- *this->Domeniu = Domeniu;
- this->vechime = vechime;
- }
- void afisare() {
- Angajat::afisare();
- cout << "\nInginer in " << Domeniu->c_str();
- cout << "\nVechime: " << vechime << "\n\n";
- }
- };
- class Student : public Persoana {
- unsigned int anStudiu;
- string *numeFacult = new string;
- public:
- //constructor vid folosit pentru declararea vectorului
- Student() {}
- //constructor pentru initializarea variabilelor
- Student(string &nume, string &prenume, int varsta, string &numeFacult, unsigned int anStudiu) : Persoana(nume, prenume, varsta)
- {
- *this->numeFacult = numeFacult;
- this->anStudiu = anStudiu;
- }
- ~Student() { delete numeFacult; }
- //functia de afisare
- void afisare()
- {
- Persoana::afisare();
- cout << "Nume Facultate: " << numeFacult->c_str() << "\n";
- cout << "An Studiu: " << anStudiu;
- }
- };
- class StudentLicenta : public Student {
- private:
- string *specializarea = new string;
- unsigned short nrCredite;
- public:
- ~StudentLicenta() {
- cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
- cout << " student licenta la " << specializarea->c_str() << " a fost sters din baz de date\n"; delete specializarea; }
- StudentLicenta() {}
- StudentLicenta(string nume, string prenume, unsigned int varsta,string numeFacult, unsigned int anStud, string specializare, unsigned int nrCredite) : Student(nume, prenume, varsta, numeFacult, anStud) {
- *this->specializarea = *specializarea;
- this->nrCredite = nrCredite;
- }
- void afisare() {
- Student::afisare();
- cout << "\nSpecializarea " << specializarea->c_str();
- cout << "\nNumar de credite: " << nrCredite << "\n\n";
- }
- };
- class StudentMaster : public Student {
- private:
- string *specializarea = new string;
- bool laBuget;;
- public:
- ~StudentMaster(){
- cout << returnareNume().c_str() << ' ' << returnarePrenume().c_str();
- cout << " student Master la " << specializarea->c_str() << " a fost sters din baz de date\n"; delete specializarea;
- }
- StudentMaster() {}
- StudentMaster(string nume, string prenume, unsigned int varsta, string departament, unsigned int salar, string specializarea, bool laBuget) : Student(nume, prenume, varsta, departament, salar) {
- *this->specializarea = specializarea;
- this->laBuget = laBuget;
- }
- void afisare() {
- StudentMaster::afisare();
- cout << "\nSSpecializarea " << specializarea->c_str();
- if (laBuget)
- cout << "\Student la buget";
- else
- cout << "\nStudent in regim cu taxa";
- }
- };
- int main()
- {
- Profesor *popescu = new Profesor("popescu", "ion ", 29,"economic", 2000, "upt", 287);
- popescu->afisare();
- delete popescu;
- _sleep(2000);
- Inginer *alex = new Inginer("Drula", "Alex", 24, "Repare,", 5000, "C++", 5);
- alex->afisare();
- delete alex;
- _sleep(2000);
- StudentLicenta *florin = new StudentLicenta("popescu", "florin", 20, "UPT", 2, "IS", 80);
- florin->afisare();
- delete florin;
- _sleep(2000);
- StudentMaster *bogdan = new StudentMaster("Drula", "Bogdan", 20, "UPT", 2, "Programarea Calculatoarelor", true);
- bogdan->afisare();
- delete bogdan;
- _sleep(2000);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment