Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
Naty777
Femeie
19 ani
Bucuresti
cauta Barbat
30 - 60 ani
Mihai Sprinceana / C++ / Lucrul cu mai multe clase (clasa de baza se numeste individ) Moderat de Alric2rei, Conan, cosmy, fireratbat, profu.info, sade5000
Autor
Mesaj Pagini: 1
Conan
Moderator

Inregistrat: acum 17 ani
Postari: 198
/*Sa se implemente clasa de baza INDIVID.
Aceasta va avea ca date membru:varsta si nationalitatea
Functiile membru ale clasei individ sunt:
        1.Un constructor cu parametru;
        2.Un constructor de copiere
        3.Un destructor;
        4.O functie de afisare;
        5.O functie de returnare a nationalitatii.

Din clasa INDIVID se va deriva clasa ANGAJAT.
Datele membru ale clasei angajat sunt:nume,prenume,specializare
Functiile membru ale clasei derivate angajat:
        6.Un constructor cu parametri;
        7.Un destructor;
        8.O functie de afisare;
        9.O functie de modificare a specializarii.

Din clasa ANGAJAT se va deriva clasa PROGRAMATOR.
Datele membru ale clasei programator sunt:salariu,tip_programare
Functii membru ale clasei progamator sunt:
        10.Un constructor cu parametri;
        11.Un destructor;
        12.O functie de afisare;
        13.O functie de modificare a salariului;
        14.O functie de returnare a comp tip_programare(tipprg).

Suplimentar vor exista 2 functii friend si 2 functii inline.In main trebuie
sa existe 3 obiecte din cele 3 clase ptr care apelam functiile apelate anterior*/

#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<assert.h>

//definirea clasei de baza INDIVID
class individ
      {private: int varsta;
            char *nationalitate;
        public: individ(int,char*);
            individ(individ &x);
            ~individ();
            void afisare();
            char *getnatiune();
        };
//definirea clasei derivate ANGAJAT din clasa INDIVID
class angajat:public individ
        {char *nume;
         char *prenume;
         char *specializare;
         public: angajat(int,char*,char*,char*,char*);
         ~angajat();
         void afisare();
         void set_specializare(char*);
        };
//definirea clasei derivate PROGRAMATOR din clasa ANGAJAT
class programator:public angajat
        {int salariu;
        char *tipprg;
        public: programator(int,char*,char*,char*,char*,int,char*);
            ~programator();
            void afisare();
            char *getprogramare();
        };

//1.definirea constructorului cu parametru
individ::individ(int v,char *n)
{
varsta=v;
nationalitate=new char[strlen(n)+1];
assert(nationalitate!=0);
strcpy(nationalitate,n);
}

//2.definirea constructorului de copiere ptr clasa individ
individ::individ(individ &x)
{varsta=x.varsta;
nationalitate=new char[strlen(x.nationalitate)+1];
strcpy(nationalitate,x.nationalitate);
}

//3.definirea destructorului din clasa individ
individ::~individ()
{delete nationalitate;}

//4.functia de afisare ptr clasa individ
void individ::afisare()
{cout<<"\n Persoana este de nationalitate:"<<nationalitate<<varsta;}

//5.functia de returnare a nationalitatii pentru clasa individ
char *individ::getnatiune()
{return nationalitate;}

//6.definirea constructorului cu parametru din clasa angajat
angajat::angajat(char *num,char *pren,char *s):individ(v,n)
{nume=new char[strlen(num)+1];
strcpy(nume,num);
prenume=new char[strlen{pren}+1];
strcpy{prenume,pren);
specializare=new char[strlen(s)+1];
strcpy(specializare,s);
varsta=v;
}

//7.definirea destructorului din clasa angajat
angajat::~angajat()
{delete nume;
delete prenume;
delete specializare;
}

//8.functia de afisare pentru clasa angajat
void angajat::afisare()
{individ::afisare();
cout<<nume<<<<prenume<<specializare;}

//9.functia de modificare a specializarii a clasei derivate angajat
void angajat::set_specializare(char *s)
{cin>>s;
specializare=new char[strlen(s)+1];
strcpy(specializare,s);
}

//10.Definirea constructorului progamatorului
programator::programator(int sal,char *TP):angajat(num,pren,s):individ(v,n)
{salariu=sal;
tipprg=new char[strlen(TP)+1];
strcpy(tipprg,TP);
}

//11.Definirea destructorului clasei programator
programator::~programator()
{delete tipprg;}

//13.functia de modificare a salariului pt clasa derivata programator
void programator::set_specializare(int sal)
{salariu=sal;}

//14.functia de returnare a componenteitip programare ptr clasa programator
char *programator::getprogramre()
{return tipprg;}

void main()
{
clrscr();
     individ ind(23,"roman" );
     angajat a("Pompiliu","Gabriel","programator",20,"roman" );
     programator p("Pompiliu","Gabriel",20000,"C++","Pascal","roman","programator" );
     ind.afisare();
     a.afisare;
     p.afisare;
     getch();
     }


pus acum 16 ani
   
Pagini: 1  

Mergi la