Professional Documents
Culture Documents
REPUBLICII MOLDOVA
Facultatea Calculatoare, Informatică şi Microelectronică
Catedra Calculatoare
Programare C++
Lucrare de laborator №4
Chişinău 2009
Listing:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <dos.h>
class Deceniu
{
protected:
long double veac;
long double era;
public:
Deceniu(){era=0;veac=0;};
Deceniu(int a,int b){era=a;veac=b;};
~Deceniu(){};
};
class Data
{
protected:
long double zi;
long double luna;
long double an;
public:
Data(){zi=0;luna=0;an=0;}
Data(int a,int b,int c){an=a;luna=b;zi=c;};
~Data(){};
};
class Timp: public Deceniu, public Data
{
long double ora;
long double minuta;
long double secunda;
public:
Timp(){ora=0;minuta=0;secunda=0;}
Timp(int a,int b,int c,int d,int e,int f,int g,int
h):Deceniu(a,b),
Data(c,d,e){ora=f;minuta=g;secunda=h;}
//(Era-veac-an-luna-zi-ora-minuta-secunda)
void Set_timp();
void Timpul();
friend ostream& operator<<(ostream&,Timp&);
Timp operator-(Timp&);
Timp operator=(Timp&);
~Timp(){};
};
//--- Implimentarea Metodelor clasei
---------------------------------------
ostream& operator<<(ostream& outf,Timp& ob)
{
outf<<"Era="<<ob.era<<", Veacuri="<<ob.veac<<", Ani="<<ob.an<<
", Luni="<<ob.luna<<", Zile="<<ob.zi<<",
Ore="<<ob.ora<<",\nMinute="<<ob.minuta
<<", Secunde="<<ob.secunda<<endl;
return outf;
}
Timp Timp::operator-(Timp &dreapta)
{
Timp ob;
ob.era=era-dreapta.era;
ob.veac=veac-dreapta.veac;
ob.an=an-dreapta.an;
ob.luna=luna-dreapta.luna;
ob.zi=zi-dreapta.zi;
ob.ora=ora-dreapta.ora;
ob.minuta=minuta-dreapta.minuta;
ob.secunda=secunda-dreapta.secunda;
return ob;
}
Timp Timp::operator=(Timp &dreapta)
{
era=dreapta.era;
veac=dreapta.veac;
an=dreapta.an;
luna=dreapta.luna;
zi=dreapta.zi;
ora=dreapta.ora;
minuta=dreapta.minuta;
secunda=dreapta.secunda;
return *this;
}
void Timp::Set_timp()
{
int a;
cout<<"\nIntrodu data actuala:";
cout<<endl<<"Era:";
cin>>a;
era=a;
cout<<"Veacul:";
cin>>a;
veac=a;
cout<<"Anul:";
cin>>a;
an=a;
cout<<"Luna:";
cin>>a;
luna=a;
cout<<"Ziua:";
cin>>a;
zi=a;
cout<<"Ora:";
cin>>a;
ora=a;
cout<<"Minuta:";
cin>>a;
minuta=a;
cout<<"Secunda:";
cin>>a;
secunda=a;
}
void Timp::Timpul()
{
luna=an*12+luna;
zi=luna*30+zi;
ora=zi*24+ora;
minuta=ora*60+minuta;
secunda=minuta*60+secunda;
}
//---------- Program principal
-----------------------------------------
int main()
{
//Formatul (Era-veac-an-luna-zi-ora-minuta-secunda)
Timp D1(0,0,0,0,0,0,0,0);
Timp D2(1,21,2005,11,7,14,60,30),D3;
clrscr();
D2.Set_timp();
D2.Timpul();
D3=D2-D1;
cout<<D2;
getch();
return 0;
}
Rezultatele:
Concluzii: