You are on page 1of 27

SEMINAR 1

Program realizat de Prvu Flavia - Alice


#include<iostream>
#include<conio.h>
using namespace std;
class peste
{
public:
char * specie;
float greutate;
int lungime;
};
class pisica
{
public:
char * specie;
float greutate;
char * stare;
int varsta;
int pui[100];
char * nume;
char * culoare_b;
char * culoare_o;
};
void main()
{
char s[100];
cin.get(s,30);
cout<<"Ma \n numesc "<<s;
int b;
cin>>b;
cout<<b<<endl;
peste p;
p.lungime=5;
p.greutate=20.5;
cout<<p.lungime<<endl<<p.greutate;
char aux[20];
cin>>aux;
p.specie=(char *) malloc (sizeof(char)*strlen(aux)+1);
strcpy(p.specie,aux);
cout<<p.specie;
peste a;
a.lungime=300;
a.greutate=13.7;
a.specie="somn";
pisica pisi;
pisi.nume="Tana";
peste z;
z.specie=new char(strlen("crap")+1);
z.lungime= - 70;
z.greutate= - 3.4;
strcpy(z.specie, "crap");
cout<<"Pestele meu are o lungime de "<<z.lungime;
_getch();
}
SEMINAR 2
Program realizat de Prvu Flavia - Alice
#include <iostream>
#include <conio.h>
using namespace std;
class avion
{
private:
char * model;
int nr_locuri;
float greutate;
char * culoare;
float mediu()
{
if(greutate>100&&nr_locuri>10)
return (greutate/nr_locuri);
}
public:
void set_nr_locuri(int val)
{
if(val>10)nr_locuri=val;
}
void set_greutate(float val)
{
if(val>100)greutate=val;
}
void set_model(char * val)
{
model=new char[strlen(val)+1];
strcpy(model,val);
}
void set_culoare(char * val)
{
culoare=new char[strlen(val)+1];
strcpy(culoare,val);
}
int get_nr_locuri()
{
return nr_locuri;
}
float get_greutate()
{
return greutate;
}
char * get_model()
{
return model;
}
char * get_culoare()
{
return culoare;
}
float get_mediu()
{
return mediu();
}
};
void main()
{
avion a;
a.set_nr_locuri(30);
a.set_culoare("Roz");
a.set_model("avion de razboi");
a.set_greutate(3000);
cout<<a.get_model()<<endl<<a.get_nr_locuri()<<endl<<a.get_culoare()<<end
l<<a.get_greutate()<<endl<<a.get_mediu();
_getch();
}
SEMINAR 4
#include <iostream>
#include <conio.h>
using namespace std;
class avion
{
private:
char * model;
int nr_locuri;
float greutate;
char * culoare;
//float mediu()
//{
// if(greutate>100&&nr_locuri>10)
// return (greutate/nr_locuri);
//}
public:
avion()
{
this->model=new char[strlen("model")+1];
strcpy(this->model,"model");
this->nr_locuri=100;
this->greutate=40;
this->culoare=new char[strlen("alb")+1];
strcpy(this->culoare,"alb");
}
avion(char*model, int locuri, float greutate, char* culoare)
{
this->model=new char[strlen(model)+1];
strcpy(this->model,model);
this->nr_locuri=locuri;
this->greutate=greutate;
this->culoare=new char[strlen(culoare)+1];
strcpy(this->culoare,culoare);
}
avion(avion &temp)
{
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
}
avion &operator=(avion &temp)
{
delete []model;
delete [] culoare;
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
return *this;
}
~avion()
{
delete []model;
delete [] culoare;
cout<<"s-a apelat destructorul";
}
void set_nr_locuri(int val)
{
if(val>10)nr_locuri=val;
}
void set_greutate(float val)
{
if(val>100)greutate=val;
}
void set_model(char * val)
{
model=new char[strlen(val)+1];
strcpy(model,val);
}
void set_culoare(char * val)
{
culoare=new char[strlen(val)+1];
strcpy(culoare,val);
}
int get_nr_locuri()
{
return nr_locuri;
}
float get_greutate()
{
return greutate;
}
char * get_model()
{
return model;
}
char * get_culoare()
{
return culoare;
}
//float get_mediu()
//{
// return mediu();
//}
};
void main()
{
//{
//avion cv;
//}
//cout<<endl<<"a fost destructorul";
avion a("avion",400,3000,"negru");
//a.set_nr_locuri(30);
//a.set_culoare("Roz");
//a.set_model("avion de razboi");
//a.set_greutate(3000);
////constructor de copiere
//avion b=a;
//cout<<a.get_model()<<endl<<a.get_nr_locuri()<<endl<<a.get_culoare()<<e
ndl<<a.get_greutate()<<endl;
//cout<<b.get_model()<<endl<<b.get_nr_locuri()<<endl<<b.get_culoare()<<e
ndl<<b.get_greutate()<<endl;
//constructor de copiere
avion c;
cout<<c.get_model()<<endl<<c.get_nr_locuri()<<endl<<c.get_culoare()<<end
l<<c.get_greutate()<<endl;
c=a;
cout<<c.get_model()<<endl<<c.get_nr_locuri()<<endl<<c.get_culoare()<<end
l<<c.get_greutate()<<endl;
_getch();
}
SEMINAR 5
Program realizat de Ionut Petre
#include <iostream>
#include <conio.h>
using namespace std;
class avion
{
private:
char * model;
int nr_locuri;
float greutate;
char * culoare;
static int nr_avioane;
//float mediu()
//{
// if(greutate>100&&nr_locuri>10)
// return (greutate/nr_locuri);
//}
public:
avion()
{
this->model=new char[strlen("model")+1];
strcpy(this->model,"model");
this->nr_locuri=100;
this->greutate=40;
this->culoare=new char[strlen("alb")+1];
strcpy(this->culoare,"alb");
nr_avioane++;
}
avion(char*model, int locuri, float greutate, char* culoare)
{
this->model=new char[strlen(model)+1];
strcpy(this->model,model);
this->nr_locuri=locuri;
this->greutate=greutate;
this->culoare=new char[strlen(culoare)+1];
strcpy(this->culoare,culoare);
nr_avioane++;
}
avion(avion &temp)
{
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
nr_avioane++;
}
avion &operator=(avion &temp)
{
delete []model;
delete [] culoare;
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
return *this;
}
~avion()
{
delete []model;
delete [] culoare;
cout<<"s-a apelat destructorul";
nr_avioane--;
}
void set_nr_locuri(int val)
{
if(val>10)nr_locuri=val;
}
void set_greutate(float val)
{
if(val>100)greutate=val;
}
void set_model(char * val)
{
model=new char[strlen(val)+1];
strcpy(model,val);
}
void set_culoare(char * val)
{
culoare=new char[strlen(val)+1];
strcpy(culoare,val);
}
int get_nr_locuri()
{
return nr_locuri;
}
float get_greutate()
{
return greutate;
}
char * get_model()
{
return model;
}
char * get_culoare()
{
return culoare;
}
static int get_nr_avioane()
{
return nr_avioane;
}
operator int() //operatorul int
{
return nr_locuri;
}
operator float() //operatorul float
{
return greutate;
}
int & operator[](int index) //operatorul index
{
if (index==0)
return nr_locuri;
else
{
int aux=greutate;
return aux;
}
}
avion operator++() //preincrementare
{
this->nr_locuri++;
return *this;
}
avion operator++(int d) //postincrementare
{
avion aux=*this; //memorez starea initiala
this->nr_locuri++;
return aux; //cea cu 100 de locuri
}
//float get_mediu()
//{
// return mediu();
//}
};
int avion::nr_avioane=0; //referire catre clasa si initializare cu 0
void main()
{
//{
//avion cv;
//}
//cout<<endl<<"a fost destructorul";
avion a("avion",400,3000,"negru");
//a.set_nr_locuri(30);
//a.set_culoare("Roz");
//a.set_model("avion de razboi");
//a.set_greutate(3000);
cout<<"\nNr avioane= "<<avion::get_nr_avioane()<<'\n';
////constructor de copiere
//avion b=a;
//cout<<a.get_model()<<endl<<a.get_nr_locuri()<<endl<<a.get_culoare()<<e
ndl<<a.get_greutate()<<endl;
//cout<<b.get_model()<<endl<<b.get_nr_locuri()<<endl<<b.get_culoare()<<e
ndl<<b.get_greutate()<<endl;
//constructor de copiere
avion c;
cout<<c.get_model()<<endl<<c.get_nr_locuri()<<endl<<c.get_culoare()<<end
l<<c.get_greutate()<<endl;
cout<<"\nNr avioane= "<<avion::get_nr_avioane()<<'\n';
c=a;
cout<<c.get_model()<<endl<<c.get_nr_locuri()<<endl<<c.get_culoare()<<end
l<<c.get_greutate()<<endl;
float x1=8.7;
int x2=x1;
cout<<"\n"<<x2<<" "<<x1;
avion x3;
x2=x3;
cout<<"\n"<<x2;
float y1=x3;
cout<<"\n"<<y1;
cout<<"\n"<<(int)x3; //cout<<"\n"<<(float)x3;
cout<<"\n"<<x3[0]; //nr_locuri
cout<<"\n"<<x3[1]; //greutate
x3[0]=5000;
int y2=5;
int y3;
y3=y2++;
cout<<"\n"<<y2<<" "<<y3;
y2=5;
y3=++y2;
cout<<"\n"<<y2<<" "<<y3;
avion x7;
x7++;
cout<<"\nLocuri: "<<(int)x7;
avion x5;
avion x6=x5++;
cout<<"\nLocuri: "<<(int)x6;
_getch();
}
SEMINAR 6
Program realizat de Ionut Petre
#include <iostream>
#include <conio.h>
using namespace std;
class avion
{
private:
char * model;
int nr_locuri;
float greutate;
char * culoare;
static int nr_avioane;
//float mediu()
//{
// if(greutate>100&&nr_locuri>10)
// return (greutate/nr_locuri);
//}
public:
friend ostream &operator << (ostream &out, avion a);
friend istream &operator >> (istream &in, avion &a);
avion()
{
this->model=new char[strlen("model")+1];
strcpy(this->model,"model");
this->nr_locuri=100;
this->greutate=40;
this->culoare=new char[strlen("alb")+1];
strcpy(this->culoare,"alb");
nr_avioane++;
}
avion(char*model, int locuri, float greutate, char* culoare)
{
this->model=new char[strlen(model)+1];
strcpy(this->model,model);
this->nr_locuri=locuri;
this->greutate=greutate;
this->culoare=new char[strlen(culoare)+1];
strcpy(this->culoare,culoare);
nr_avioane++;
}
avion(avion &temp)
{
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
nr_avioane++;
}
avion &operator=(avion &temp)
{
delete []model;
delete [] culoare;
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
return *this;
}
~avion()
{
delete []model;
delete [] culoare;
cout<<"\ns-a apelat destructorul";
nr_avioane--;
}
void set_nr_locuri(int val)
{
if(val>10)nr_locuri=val;
}
void set_greutate(float val)
{
if(val>100)greutate=val;
}
void set_model(char * val)
{
model=new char[strlen(val)+1];
strcpy(model,val);
}
void set_culoare(char * val)
{
culoare=new char[strlen(val)+1];
strcpy(culoare,val);
}
int get_nr_locuri()
{
return nr_locuri;
}
float get_greutate()
{
return greutate;
}
char * get_model()
{
return model;
}
char * get_culoare()
{
return culoare;
}
static int get_nr_avioane()
{
return nr_avioane;
}
operator int() //operatorul int
{
return nr_locuri;
}
operator float() //operatorul float
{
return greutate;
}
int & operator[](int index) //operatorul index
{
if (index==0)
return nr_locuri;
else
{
int aux=greutate;
return aux;
}
}
avion operator++() //preincrementare
{
this->nr_locuri++;
return *this;
}
avion operator++(int d) //postincrementare
{
avion aux=*this; //memorez starea initiala
this->nr_locuri++;
return aux; //cea cu 100 de locuri
}
avion operator +=(avion b)
{
this->nr_locuri+=b.nr_locuri;
return *this;
}
/*avion operator + (avion c)
{
avion z;
//copiem din this in z;
z.greutate=this->greutate+c.greutate;
return z;
}
*/
//float get_mediu()
//{
// return mediu();
//}
bool operator == (avion b)
{
return this->greutate==b.greutate&&this->nr_locuri==b.nr_locuri;
}
float operator()(float greutate_incarcatura)
{
float aux;
aux=this->greutate+greutate_incarcatura;
return aux;
}
float operator()()
{
return greutate;
}
};
int avion::nr_avioane=0; //referire catre clasa si initializare cu 0
ostream &operator << (ostream &out, avion a)
{
cout<<"\n";
out<<a.model<<" "<<a.nr_locuri<<" "<<a.greutate<<" "<<a.culoare;
return out;
}
istream &operator >> (istream &in, avion &a)
{
char aux[30];
cout<<"\nModel: ";
in>>aux;
a.model=new char[strlen(aux)+1];
strcpy(a.model,aux);
cout<<"Numar locuri: ";
in>>a.nr_locuri;
cout<<"Greutate: ";
in>>a.greutate;
cout<<"Culoare: ";
in>>aux;
a.culoare=new char[strlen(aux)+1];
strcpy(a.culoare,aux);
return in;
}
void main()
{
avion abc;
cin>>abc;
cout<<"\n";
cout<<abc;
cout<<"\n"<<abc(1000)<<"\n"; //cout<<abc(100,120);
_getch();
}
SEMINAR 7
#include <iostream>
#include <conio.h>
using namespace std;
class avion
{
private:
char * model;
int nr_locuri;
float greutate;
char * culoare;
static int nr_avioane;
const int latime;
//float mediu()
//{
// if(greutate>100&&nr_locuri>10)
// return (greutate/nr_locuri);
//}
public:
friend ostream &operator << (ostream &out, avion a);
friend istream &operator >> (istream &in, avion &a);
avion():latime(100)
{
this->model=new char[strlen("model")+1];
strcpy(this->model,"model");
this->nr_locuri=100;
this->greutate=40;
this->culoare=new char[strlen("alb")+1];
strcpy(this->culoare,"alb");
nr_avioane++;
}
avion(char*model, int locuri, float greutate, char* culoare, int latime_
noua):latime(latime_noua)
{
this->model=new char[strlen(model)+1];
strcpy(this->model,model);
this->nr_locuri=locuri;
this->greutate=greutate;
this->culoare=new char[strlen(culoare)+1];
strcpy(this->culoare,culoare);
nr_avioane++;
}
avion(avion &temp):latime(temp.latime)
{
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
nr_avioane++;
}
avion &operator=(avion &temp)
{
delete []model;
delete [] culoare;
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(this->culoare,temp.culoare);
return *this;
}
~avion()
{
delete []model;
delete [] culoare;
cout<<"\ns-a apelat destructorul";
nr_avioane--;
}
void set_nr_locuri(int val)
{
if(val>10)nr_locuri=val;
}
void set_greutate(float val)
{
if(val>100)greutate=val;
}
void set_model(char * val)
{
model=new char[strlen(val)+1];
strcpy(model,val);
}
void set_culoare(char * val)
{
culoare=new char[strlen(val)+1];
strcpy(culoare,val);
}
int get_nr_locuri()
{
return nr_locuri;
}
float get_greutate()
{
return greutate;
}
char * get_model()
{
return model;
}
char * get_culoare()
{
return culoare;
}
static int get_nr_avioane()
{
return nr_avioane;
}
operator int() //operatorul int
{
return nr_locuri;
}
operator float() //operatorul float
{
return greutate;
}
int & operator[](int index) //operatorul index
{
if (index==0)
return nr_locuri;
else
{
int aux=greutate;
return aux;
}
}
avion operator++() //preincrementare
{
this->nr_locuri++;
return *this;
}
avion operator++(int d) //postincrementare
{
avion aux=*this; //memorez starea initiala
this->nr_locuri++;
return aux; //cea cu 100 de locuri
}
avion operator +=(avion b)
{
this->nr_locuri+=b.nr_locuri;
return *this;
}
/*avion operator + (avion c)
{
avion z;
//copiem din this in z;
z.greutate=this->greutate+c.greutate;
return z;
}
*/
//float get_mediu()
//{
// return mediu();
//}
bool operator == (avion b)
{
return this->greutate==b.greutate&&this->nr_locuri==b.nr_locuri;
}
float operator()(float greutate_incarcatura)
{
float aux;
aux=this->greutate+greutate_incarcatura;
return aux;
}
float operator()()
{
return greutate;
}
//getter constanta
int const get_latime()
{
return latime;
}
};
int avion::nr_avioane=0; //referire catre clasa si initializare cu 0
ostream &operator << (ostream &out, avion a)
{
cout<<"\n";
out<<a.model<<" "<<a.nr_locuri<<" "<<a.greutate<<" "<<a.culoare;
return out;
}
istream &operator >> (istream &in, avion &a)
{
char aux[30];
cout<<"\nModel: ";
in>>aux;
a.model=new char[strlen(aux)+1];
strcpy(a.model,aux);
cout<<"Numar locuri: ";
in>>a.nr_locuri;
cout<<"Greutate: ";
in>>a.greutate;
cout<<"Culoare: ";
in>>aux;
a.culoare=new char[strlen(aux)+1];
strcpy(a.culoare,aux);
return in;
}
class avion_militar: public avion //derivare
{
private:
int rachete;
float viteza;
float capacitate;
public:
avion_militar():avion()
{
rachete=13;
viteza=13.44;
capacitate=10.21;
}
avion_militar(char*model, int locuri, float greutate, char* culoare, int
latime, int rachete, float viteza, float capacitate):avion(model,locuri,greutat
e,culoare,latime)
{
this->rachete=rachete;
this->viteza=viteza;
this->capacitate=capacitate;
}
avion_militar(avion_militar &a):avion(a) //constructor de copiere
{
rachete=a.rachete;
viteza=a.viteza;
capacitate=a.capacitate;
}
int get_rachete()
{
return rachete;
}
float get_viteza()
{
return viteza;
}
float get_capacitate()
{
return capacitate;
}
operator int() //operatorul int (cast la int)
{
return rachete;
}
};
void main()
{
avion abc;
avion_militar x;
// --- latime ---
cout<<"Latime: "<<abc.get_latime()<<endl;
// ---
cout<<"\nAtribute mostenite:\n";
cout<<"Model: "<<x.get_model()<<" Nr locuri: "<<x.get_nr_locuri()<<" Cul
oare: "<<x.get_culoare()<<" Greutate: "<<x.get_greutate()<<"\nRachete: "<<x.get_
rachete()<<" Viteza: "<<x.get_viteza()<<" Capacitate: "<<x.get_capacitate()<<end
l;
avion_militar y("Boeing",56,135.6,"negru",120,14,14.55,11.32);
cout<<"Model: "<<y.get_model()<<" Nr locuri: "<<y.get_nr_locuri()<<" Cul
oare: "<<y.get_culoare()<<" Greutate: "<<y.get_greutate()<<"\nRachete: "<<y.get_
rachete()<<" Viteza: "<<y.get_viteza()<<" Capacitate: "<<y.get_capacitate()<<end
l;
// --- testare operator int ---
int b=x;
cout<<"\n"<<b;
// ---
_getch();
}
SEMINAR 8
//program realizat de Ionut Petre
#include<iostream>
#include<conio.h>
using
namespace std;
/*
clasa abstracta - clasa care are cel putin o metoda virtuala pura;
interfata - clasa care are doar functii virtual pure.
*/
class
avion_abstract
{
public
:
virtual float greutate_pe_loc()=0; //pointer catre functie initializat cu null (
functie virtuala pura)
};
class
avion
{
private:
char * model;
int nr_locuri;
float greutate;
char * culoare;
static int nr_avioane;
const int latime;
public:
friend ostream &operator << (ostream &out, avion a);
friend istream &operator >> (istream &in, avion &a);
avion():latime(100)
{
this->model=new char[strlen("model")+1];
strcpy(this->model,"model");
this->nr_locuri=100;
this->greutate=40;
this->culoare=new char[strlen("alb")+1];
strcpy(
this->culoare,"alb");
nr_avioane++;
}
avion(
char*model, int locuri, float greutate, char* culoare, int latime_noua):latime(l
atime_noua)
{
this->model=new char[strlen(model)+1];
strcpy(this->model,model);
this->nr_locuri=locuri;
this->greutate=greutate;
this->culoare=new char[strlen(culoare)+1];
strcpy(
this->culoare,culoare);
nr_avioane++;
}
avion(avion &temp):latime(temp.latime)
{
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(
this->culoare,temp.culoare);
nr_avioane++;
}
avion &
operator=(avion &temp)
{
delete []model;
delete [] culoare;
this->model=new char[strlen(temp.model)+1];
strcpy(this->model,temp.model);
this->nr_locuri=temp.nr_locuri;
this->greutate=temp.greutate;
this->culoare=new char[strlen(temp.culoare)+1];
strcpy(
this->culoare,temp.culoare);
return *this;
}
~avion()
{
delete []model;
delete [] culoare;
cout<<"\ns-a apelat destructorul";
nr_avioane--;
}
void set_nr_locuri(int val)
{
if(val>10)nr_locuri=val;
}
void set_greutate(float val)
{
if(val>100)greutate=val;
}
void set_model(char * val)
{
model=new char[strlen(val)+1];
strcpy(model,val);
}
void set_culoare(char * val)
{
culoare=new char[strlen(val)+1];
strcpy(culoare,val);
}
int get_nr_locuri()
{
return nr_locuri;
}
float get_greutate()
{
return greutate;
}
char * get_model()
{
return model;
}
char * get_culoare()
{
return culoare;
}
static int get_nr_avioane()
{
return nr_avioane;
}
operator int() //operatorul int
{
return nr_locuri;
}
operator float() //operatorul float
{
return greutate;
}
int & operator[](int index) //operatorul index
{
if (index==0)
return nr_locuri;
else
{
int aux=greutate;
return aux;
}
}
avion
operator++() //preincrementare
{
this->nr_locuri++;
return *this;
}
avion
operator++(int d) //postincrementare
{
avion aux=*
this; //memorez starea initiala
this->nr_locuri++;
return aux; //cea cu 100 de locuri
}
avion
operator +=(avion b)
{
this->nr_locuri+=b.nr_locuri;
return *this;
}
/*avion operator + (avion c)
{
avion z;
//copiem din this in z;
z.greutate=this->greutate+c.greutate;
return z;
}
*/
float greutate_medie()
{
cout<<"\nS-a apelat din clasa avion";
return (this->greutate/this->nr_locuri);
}
bool operator == (avion b)
{
return this->greutate==b.greutate&&this->nr_locuri==b.nr_locuri;
}
float operator()(float greutate_incarcatura)
{
float aux;
aux=
this->greutate+greutate_incarcatura;
return aux;
}
float operator()()
{
return greutate;
}
//getter constanta
int const get_latime()
{
return latime;
}
float greutate_pe_loc()
{
return (this->greutate/this->nr_locuri);
}
};
int avion::nr_avioane=0; //referire catre clasa si initializare cu 0
ostream &operator << (ostream &out, avion a)
{
cout<<"\n";
out<<a.model<<" "<<a.nr_locuri<<" "<<a.greutate<<" "<<a.culoare;
return out;
}
istream &operator >> (istream &in, avion &a)
{
char aux[30];
cout<<"\nModel: ";
in>>aux;
a.model=new char[strlen(aux)+1];
strcpy(a.model,aux);
cout<<"Numar locuri: ";
in>>a.nr_locuri;
cout<<"Greutate: ";
in>>a.greutate;
cout<<"Culoare: ";
in>>aux;
a.culoare=new char[strlen(aux)+1];
strcpy(a.culoare,aux);
return in;
}
class
avion_militar: public avion //derivare
{
private
:
int rachete;
float viteza;
float capacitate;
public
:
avion_militar():avion()
{
rachete=13;
viteza=13.44;
capacitate=10.21;
}
avion_militar(
char*model, int locuri, float greutate, char* culoare, int latime, int rachete,
float viteza, float capacitate):avion(model,locuri,greutate,culoare,latime)
{
this->rachete=rachete;
this->viteza=viteza;
this->capacitate=capacitate;
}
avion_militar(avion_militar &a):avion(a)
//constructor de copiere
{
rachete=a.rachete;
viteza=a.viteza;
capacitate=a.capacitate;
}
virtual float greutate_medie()
{
cout<<"\nS-a apelat din clasa avion_militar";
return (this->get_greutate()+this->capacitate)/this->get_nr_locuri();
}
int get_rachete()
{
return rachete;
}
float get_viteza()
{
return viteza;
}
float get_capacitate()
{
return capacitate;
}
operator int() //operatorul int (cast la int)
{
return rachete;
}
avion_militar &
operator = (avion_militar &temp)
{
avion::
operator = (temp);
this->rachete=temp.rachete;
this->viteza=temp.viteza;
this->capacitate=temp.capacitate;
return *this;
}
};
void
main()
{
/*
avion abc;
avion_militar x;
--- latime ---
cout<<"Latime: "<<abc.get_latime()<<endl;
---
cout<<"\nAtribute mostenite:\n";
cout<<"Model: "<<x.get_model()<<" Nr locuri: "<<x.get_nr_locuri()<<" Culoare: "<
<x.get_culoare()<<" Greutate: "<<x.get_greutate()<<"\nRachete: "<<x.get_rachete(
)<<" Viteza: "<<x.get_viteza()<<" Capacitate: "<<x.get_capacitate()<<endl;
avion_militar y("Boeing",56,135.6,"negru",120,14,14.55,11.32);
cout<<"Model: "<<y.get_model()<<" Nr locuri: "<<y.get_nr_locuri()<<" Culoare: "<
<y.get_culoare()<<" Greutate: "<<y.get_greutate()<<"\nRachete: "<<y.get_rachete(
)<<" Viteza: "<<y.get_viteza()<<" Capacitate: "<<y.get_capacitate()<<endl;
--- testare operator int ---
int b=x;
cout<<"\n"<<b;
---
cout<<endl<<abc.greutate_medie()<<" "<<x.greutate_medie();
*/
avion x1;
avion_militar x2;
x1=x2;
cout<<endl<<x1.greutate_medie();
avion * x3 = &x1;
avion_militar * x4 = &x2;
cout<<endl<<x3->greutate_medie()<<" "<<x4->greutate_medie(); // x3, x4 sunt poin
teri
x3 = &x2;
cout<<endl<<x2.greutate_medie()<<" "<<x3->greutate_medie();
_getch();
}
SEMINAR 9
//program realizat de Ionut Petre
#include<iostream>
#include<fstream>
using namespace std;
void main ()
{
int a, b;
a=0; b=1;
////creare (scriere in fisier binar)
//a=0; b=1;
//fstream file ("fisier.dat",ios::out|ios::binary);
//file.write((char *) &a, sizeof(a));
//file.write((char *) &b, sizeof(b));
//file.flush();
//file.close();
//
////citire
//fstream file ("fisier.dat",ios::in|ios::binary);
//file.read ((char *) &a, sizeof(a));
//file.read ((char *) &b, sizeof(b));
//cout<<a<<" "<<b<<"\n";
//deschidere fisier text
//fstream file ("fisier.txt",ios::out); //pe default e setat text
//file<<a<<" "<<b<<"\n";
fstream file ("file.csv",ios::out);
int * v1, * v2;
v1 = new int [10];
v2 = new int [10];
for (int i=0; i<10; i++)
{
v1[i] = i+1;
v2[i] = 10*(i+1);
}
file<<"v1;v2;"<<endl;
for (int i=0; i<10; i++)
file<<v1[i]<<";"<<v2[i]<<";"<<endl;
}
SEMINAR 10
//program realizat de Ionut Petre
#include<iostream>
#include<vector>
using namespace std;
//consultatii miercuri de la 7:30
//de citit in carte capitolul 8: Standard Template Library
class monitor
{
private:
float diagonala;
char * producator;
public:
void set_diagonala(int val)
{
diagonala=val;
}
void set_producator(char * val)
{
producator=new char[strlen(val)+1]; //se aloca in heap
strcpy(producator,val);
}
float get_diagonala()
{
return diagonala;
}
char * get_producator()
{
return producator;
}
monitor()
{
this->producator=new char[strlen("Dell")+1];
strcpy(
this->producator,"Dell");
this->diagonala=14.33;
}
monitor(
char * producator, float diagonala)
{
this->producator=new char[strlen(producator)+1];
strcpy(this->producator,producator);
this->diagonala=diagonala;
}
monitor(monitor &temp)
{
this->producator=new char[strlen(temp.producator)+1];
strcpy(this->producator,temp.producator);
this->diagonala=temp.diagonala;
}
monitor &operator=(monitor &temp)
{
delete[]producator;
this->producator=new char[strlen(temp.producator)+1];
strcpy(this->producator,temp.producator);
this->diagonala=temp.diagonala;
return *this;
}
~monitor()
{
delete[]producator;
}
friend ostream &operator << (ostream &out, monitor a);
};
template<class orice_tip> //functie template
orice_tip suma(orice_tip a, orice_tip b)
{
return (a+b);
}
template<class tip> //clasa template
class grupa
{
private:
tip * v;
int nr_elemente;
public:
int get_nr_elemente()
{
return nr_elemente;
}
grupa()
{
nr_elemente=1;
v=new tip[nr_elemente];
}
grupa(tip * v_1,
int nr_elemente_1)
{
nr_elemente=nr_elemente_1;
v=new tip[nr_elemente];
for(i=0;i<nr_elemente;i++)
v[i]=v_1[i];
}
tip &operator[] (int index) //operatorul index
{
if (index>=0 && index<nr_elemente)
return v[index];
else
{
throw "Indexul nu se afla in plaja de valori";
}
}
};
ostream &operator << (ostream &out, monitor a)
{
out<<a.producator; cout<<" ";
out<<a.diagonala; cout<<" ";
return out;
}
void main ()
{
/*int a=3, b=5;
cout<<suma(a,b)<<endl;
float c=3.4, d=5.7;
cout<<suma(c,d)<<endl;
grupa <int> g1;
try //exceptie
{
//cout<<g1[0];
cout<<g1[10];
}
catch(char * ex) //captez exceptia
{
cout<<ex;
}
grupa <monitor> g2;
cout<<endl<<g2[10];
*/
vector <int> v; //vectorul este gol
v.push_back(3);
//adaugare element in vector
v.push_back(13);
v.push_back(8);
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
}

You might also like