Sunteți pe pagina 1din 12

//Zinveliu Ioana,lab8

/*

1. Construiţi o aplicaţie în care clasa OraCurenta are ca atribute private ora, minutele şi secundele şi
metode

publice de tip set / get pentru atributele clasei.Adaugaţi o functie friend clasei prin care să se poată
copia

conţinutul unui obiect OraCurenta dat ca si parametru, într - un alt obiect instanţă a aceleiaşi clase
care va fi

returnat de functie, ora fiind insa modificata la Greenwich Mean Time.Utilizati timpul curent al
calculatorului.

*/

//Zinveliu Ioana,grupa 4

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

class OraCurenta {

int ora, min, sec;

public:

void citire(int ora1, int min1, int s) {

ora = ora1;

min = min1;

sec = s;

void afisare() {

cout << "\nEste ora:" << ora << " si " << min << "minute"<<" si" << sec<<"sec";

friend OraCurenta copy(OraCurenta& ob);


};

OraCurenta copy(OraCurenta& ob)

OraCurenta ob1;

ob1.ora = ob.ora;

ob1.min = ob.min;

ob1.sec = ob.sec;

return ob1;

int main()

int o, m, s;

OraCurenta ob1, ob2;

cout << "Introduceti ora:";

cin >> o;

cout << "Introduceti minutele:";

cin >> m;

cout << "Introduceti sec:";

cin >> s;

cout << "\nOb1: ";

ob1.citire(o, m, s);

ob1.afisare();

ob2 = copy(ob1);

cout << "\nOb2: ";

ob2.afisare();

/*rez in urma rularii:

Introduceti ora:10

Introduceti minutele:55

Introduceti sec:44
Ob1:

Este ora:10 si 55minute si44sec

Ob2:

Este ora:10 si 55minute si44sec

C:\Users\ioana\source\repos\ConsoleApplication37\Debug\ConsoleApplication37.exe (process
11208) exited with code 0.

Press any key to close this window . . .*/

/*

2. Scrieţi o aplicaţie C/C++ în care clasa Calculator are un atribut privat memorie_RAM (int) şi o
funcție prietenă

tehnician_service( ) care permite modificarea valorii acestui atribut. Functia friend va fi membra intr-
o alta

clasa, Placa_de_baza care are o componentă denumire_procesor (sir de caractere). Scrieţi codul
necesar care

permite funcției prietene tehnician_service( ) să modifice (schimbe) valoarea variabilei


denumire_procesor si

memorie _RAM.

*/

//Zinveliu Ioana,grupa 4

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

class Calculator;

class Placa_de_baza {

char denumire_procesor[30];

public: Placa_de_baza()
{

strcpy(denumire_procesor, "Intel i5");

void tehnician_service(Calculator calc);

void nume()

char pr[30];

cout << "Introduceti numele procesorului: ";

cin >> pr;

strcpy(denumire_procesor, pr);

void getnume()

cout << "\nNumele procesorului e:"<<denumire_procesor;

};

class Calculator

int memorie_RAM;

public: Calculator()

memorie_RAM = 64;

void getcalc()

cout << "\n Mem RAM e:" << memorie_RAM;

friend void Placa_de_baza::tehnician_service(Calculator);

};
void Placa_de_baza::tehnician_service(Calculator calc)

calc.memorie_RAM = 16;

cout << "\nVal memoriei RAM in functia prietena:" << calc.memorie_RAM;

getnume();

int main()

Calculator c;

Placa_de_baza p;

c.getcalc();

p.getnume();

p.tehnician_service(c);

c.getcalc();

p.getnume();

/*3. Definţi o clasă numită Repository care are două variabile private de tip întreg. Clasa mai conţine
un constructor

explicit vid si unul cu 2 parametri şi o metodă accesor care afişează valorile variabilelor din clasă.
Scrieţi o
clasă numită Mathemathics, friend cu prima clasă, care implementează operaţiile aritmetice
elementare (+, -, *,

/) asupra variabilelor din prima clasa. Fiecare metoda primeşte ca parametru un obiect al clasei
Repository.*/

//Zinveliu Ioana,grupa 4

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

class Mathemathics;

class Repository

int x, y;

public:

Repository()

};

Repository(int a, int b);

void afis();

friend Mathemathics;

};

class Mathemathics

public:

Mathemathics() {

};

int adunare(Repository);

int scadere(Repository);

int produs(Repository);
int imp(Repository);

};

Repository::Repository(int a, int b)

x = a;

y = b;

void Repository::afis()

cout << "Numerele sunt:" << x << " " << y;

int Mathemathics::adunare(Repository ob)

return ob.x + ob.y;

int Mathemathics::scadere(Repository ob)

return ob.x - ob.y;

int Mathemathics::produs(Repository ob)

return ob.x *ob.y;

int Mathemathics::imp(Repository ob)

return ob.x / ob.y;

int main()

int nr1, nr2;


Mathemathics m;

cout << "Introducet nr 1:";

cin >> nr1;

cout << "Introducet nr 2:";

cin >> nr2;

Repository ob(nr1, nr2);

ob.afis();

cout << "\n Suma este:" << m.adunare(ob);

cout << "\n Diferenta este:" << m.scadere(ob);

cout << "\n Produsul ste:" << m.produs(ob);

cout << "\n Catul este:" << m.imp(ob);

/*

4. Scrieţi o aplicaţie C/C++ care defineşte într-o clasă variabila publică contor var_static de tip static
întreg.

Aceasta se va incrementa în cadrul constructorului. După o serie de instanţieri, să se afişeze numarul


de obiecte

create (conţinutul variabilei var_static).

*/

//Zinveliu Ioana,grupa 4

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

class Class
{

int x;

public: int static var_static;

Class(int y) {

x = y;

var_static++;

int getx() {

return x;

static int vstatic();

};

int Class::vstatic()

return var_static;

int Class::var_static;

int main()

int a;

cout <<"dati nr: ";

cin >> a;

Class ob1(a), ob2(a), ob3(a), ob4(a), ob5(a);

cout << "\n Au fost create " << ob5.var_static << " obiecte";
}

/*

5. Rezolvaţi problema 4 în cazul în care variabila statică este de tip private. Definiţi o metodă accesor
care

returnează valoarea contorului

*/

//Zinveliu Ioana,grupa 4

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

class Class

int x;

int static var_static;

public:

Class() {

x = 0;

var_static++;

}
void setx(int a)

x= a;

var_static++;

int getx() {

return x;

static int vstatic();

static void afisare()

cout <<"\nSunt " <<var_static-1<< " obiecte create";

};

int Class::vstatic()

return var_static;

int Class::var_static;

int main()

Class a;

cout <<"Prima val: "<<a.getx();

a.setx(778);

cout << "\n a doua val: " << a.getx();

a.setx(66);
cout << "\n a treia val: " << a.getx();

a.setx(599);

a.afisare();

S-ar putea să vă placă și