0% found this document useful (0 votes)
24 views4 pages

Programare C++ Lucrare de Laborator 4 Tema: Clasele Derivate Cu Moştenire Multiplă

The document describes a C++ program that uses multiple inheritance to calculate the time that has passed since the beginning of the current era. The program defines classes for Decade, Date, and Time, with Time derived from both Decade and Date. Methods are implemented to set the time, calculate the total time in seconds, and perform subtraction operations on Time objects. The main function demonstrates creating and manipulating Time objects to determine the time elapsed between two dates. The conclusion discusses how inheritance allows modeling complex systems through hierarchies of classes that break problems into simpler parts.

Uploaded by

Virlan Rodion
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views4 pages

Programare C++ Lucrare de Laborator 4 Tema: Clasele Derivate Cu Moştenire Multiplă

The document describes a C++ program that uses multiple inheritance to calculate the time that has passed since the beginning of the current era. The program defines classes for Decade, Date, and Time, with Time derived from both Decade and Date. Methods are implemented to set the time, calculate the total time in seconds, and perform subtraction operations on Time objects. The main function demonstrates creating and manipulating Time objects to determine the time elapsed between two dates. The conclusion discusses how inheritance allows modeling complex systems through hierarchies of classes that break problems into simpler parts.

Uploaded by

Virlan Rodion
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

MINISTERUL EDUCAŢIEI TINERETULUI ŞI SPORTULUI AL

REPUBLICII MOLDOVA
Facultatea Calculatoare, Informatică şi Microelectronică

Universitatea Tehnică a Moldovei

Catedra Calculatoare

Programare C++
Lucrare de laborator №4

Tema: Clasele derivate cu moştenire multiplă.

A elaborat : Virlan Rodion


grupa C-074

A verificat : Plotnic Constantin

Chişinău 2009

Scopul lucrării: familiarizarea studenţilor cu clasele derivate cu moştenirea


multiplă.
Sarcina :
Să se calculeze cît timp a trecut de la începutul erei noastre. Structurile de bază sînt
deceniu = {veac,era}, timp = {ora,minuta,secunda} ,data = {zi,luna,an}.

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:

În procesul de creare a programului am facut cunoştinţă cu clasele derivate cu


moştenire multiplă. Am observat ca moştenirea permite realizarea ierarhielor
de clase, care să modeleze adecvat sisteme complexe. Aceasta metodă permite
repartizarea unei sarcini complexe in probleme mai simple.

You might also like