Extras din notiță
Creați o ierarhie de clase în C++ formată din clasa abstractă Mamifer cu atributele tip (evil,divine) și data
nașterii, și metodele: mănâncă, merge la baie, hrănește animalele. Să se deriveze o clasă Bunica și clasele
PisicaDeCartier, PisicaSiameza și PisicaEgipteana. Acestea din urma mai au metoda miauna unde se aplică polimorfismul
și fiecare miaună diferit. Acțiunile în acest caz sunt implementate prin mesaje afișate la consolă.
#pragmaonce
class Data{
int zi;
int luna;
int an;
public:
Data(int z,int l,int a);
Data();
Data(const Data &a);
void set_an(int a){an=a;};
void set_zi(int z){zi=z;};
void set_luna(int l){luna=l;};
int get_zi(){return zi;};
int get_luna(){return luna;}
int get_an(){return an;}
Data &operator=(const Data &a);
~Data(){}
};
class Mamifer{
char* tip;
Data nastere;
public:
virtual ~Mamifer(){delete tip;}
Mamifer();
Mamifer(Data a,char *type);
virtualbool Mananca(){returntrue;};
virtualbool Merge_la_baie(){returntrue;}
virtualbool Hraneste_animale(){returntrue;}
virtualvoid miauna()=0;
};
class Bunica:public Mamifer{
public:
Bunica():Mamifer(){};
Bunica(Data a,char *type):Mamifer(a,type){}
~Bunica(){};
void miauna(){};
};
class PisicaDeCartier:public Mamifer{
public:
PisicaDeCartier():Mamifer(){}
~PisicaDeCartier(){}
PisicaDeCartier(Data a,char *type):Mamifer(a,type){}
void miauna();
};
class PisicaSiameza:public Mamifer{
public:
PisicaSiameza():Mamifer(){}
~PisicaSiameza(){}
PisicaSiameza(Data a,char *type):Mamifer(a,type){}
void miauna();
};
class PisicaEgipteana:public Mamifer{
public:
PisicaEgipteana():Mamifer(){}
~PisicaEgipteana(){}
PisicaEgipteana(Data a,char *type):Mamifer(a,type){}
void miauna();
};
Fct.c
#include<iostream>
#include<string.h>
#include"head.h"
usingnamespace std;
Data::Data(){
an=0;
zi=0;
luna=0;
}
Data::Data(int z,int l,int a){
zi=z;
luna=l;
an=a;
}
Data::Data(const Data &a){
zi=a.zi;
luna=a.luna;
an=a.an;
}
Data &Data::operator=(const Data &a){
zi=a.zi;
an=a.an;
luna=a.luna;
return *this;
}
Mamifer::Mamifer(){
tip=newchar[strlen("divine")+1];
strcpy(tip,"devine");
}
Mamifer::Mamifer(Data a,char *type){
nastere=a;
tip=newchar[strlen(type)+1];
strcpy(tip,type);
}
void PisicaSiameza::miauna(){
cout<<" fals"<<endl;
}
void PisicaDeCartier::miauna(){
cout<<" gangsta"<<endl;
}
void PisicaEgipteana::miauna(){
cout<<" egiptean"<<endl;
}
Main.c
#include<iostream>
#include<string.h>
#include"head.h"
#include<conio.h>
usingnamespace std;
int main()
{
Data d(22,7,1950);
Mamifer *m[4];
m[0]=new Bunica(d,"devil");
m[1]=new PisicaSiameza();
m[2]=new PisicaDeCartier();
m[3]=new PisicaEgipteana();
for(int i=1;i<4;i++)
{
cout<<"pisica "<<i<<" miauna";
m[i]->miauna();
}
_getch();
return 0;
}
P2
Să se scrie un program ASM care calculează factorialul și suma Procesorul țintă va fi x286. Variabilele vorfi definite numai în memorie cu vizualizarea rezultatului în emulator.
data segment
ndw 5
rezFdw 1
rezSdw 0
ends
Preview document
Conținut arhivă zip
- Calculatoare.docx