Sunteți pe pagina 1din 3

Lucrarea de Laborator nr.

6
Tema: Clase
Scopul: crearea claselor în limbajul de programare C++.
Sarcini
Scrieți un program care permite crearea unei clase simple la tema indicată mai jos,

având ca funcții (metode) citirea și afișarea fiecărui câmp, precum și o funcție care

calculează valoarea unui câmp (ca exemplu, de convertit prețul din EURO în lei). Clasa

trebuie să conțină cel puțin trei tipuri de constructori (unul trebuie să fie fără parametri,

altul- cu toți parametrii indicați, iar al treilea- cu doar câțiva parametri indicați, în

dependență de temă). Tema, pe baza căreia trebuie să creați clasa este aceiași ca și la

lucrarea de laborator nr. 3. Supraîncărcați cel puțin doi operatori (de exemplu „==”

pentru verificarea egalității și „+” pentru adunarea a două obiecte ale clasei sau a unui

obiect al clasei cu un număr).

13) Tehnică de calcul (nr, denumire, model, preț, an editare, țară)

#include <iostream>
#include <string>

class TehnicaCalcul {
private:
int nr;
std::string denumire;
std::string model;
float pret;
int anEditare;
std::string tara;

public:

TehnicaCalcul() : nr(0), pret(0.0), anEditare(0) {}

// Constructor cu toți parametrii


TehnicaCalcul(int nr, const std::string& denumire, const std::string&
model, float pret, int anEditare, const std::string& tara)
: nr(nr), denumire(denumire), model(model), pret(pret),
anEditare(anEditare), tara(tara) {}

TehnicaCalcul(int nr, const std::string& denumire, const


std::string& model)
: nr(nr), denumire(denumire), model(model), pret(0.0), anEditare(0)
{}

~TehnicaCalcul() {
std::cout << "Obiectul a fost distrus." << std::endl;
}

void citesteDate() {
std::cout << "Introduceti numarul: "; std::cin >> nr;
std::cout << "Introduceti denumirea: "; std::cin >> denumire;
std::cout << "Introduceti modelul: "; std::cin >> model;
std::cout << "Introduceti pretul: "; std::cin >> pret;
std::cout << "Introduceti anul editarii: "; std::cin >> anEditare;
std::cout << "Introduceti tara: "; std::cin >> tara;
}

void afiseazaDate() {
std::cout << "Numar: " << nr << ", Denumire: " << denumire
<< ", Model: " << model << ", Pret: " << pret
<< ", An editare: " << anEditare << ", Tara: " << tara <<
std::endl;
}
float calculeazaValoare(float cursEuro) {
return pret * cursEuro;
}

bool operator==(const TehnicaCalcul& other) const {


return (nr == other.nr && denumire == other.denumire && model ==
other.model &&
pret == other.pret && anEditare == other.anEditare && tara
== other.tara);
}

TehnicaCalcul operator+(const TehnicaCalcul& other) const {


TehnicaCalcul suma;
suma.nr = nr + other.nr;
suma.denumire = denumire + " " + other.denumire;
suma.model = model + " " + other.model;
suma.pret = pret + other.pret;
suma.anEditare = std::max(anEditare, other.anEditare);
suma.tara = tara + " " + other.tara;
return suma;
}
};

int main() {
TehnicaCalcul tehnica1;
tehnica1.citesteDate();
tehnica1.afiseazaDate();

TehnicaCalcul tehnica2(1, "Laptop", "Dell", 1200.0, 2022, "Romania");


tehnica2.afiseazaDate();
TehnicaCalcul tehnica3(2, "Desktop", "HP");
tehnica3.afiseazaDate();

float cursEuro = 4.5;


std::cout << "Pretul in lei pentru tehnica2: " <<
tehnica2.calculeazaValoare(cursEuro) << std::endl;

if (tehnica1 == tehnica2) {
std::cout << "Obiectele tehnica1 si tehnica2 sunt egale." <<
std::endl;
} else {
std::cout << "Obiectele tehnica1 si tehnica2 nu sunt egale." <<
std::endl;
}

TehnicaCalcul suma = tehnica2 + tehnica3;


std::cout << "Suma tehnica2 + tehnica3:" << std::endl;
suma.afiseazaDate();

return 0;
}

Introduceti numarul: 3
Introduceti denumirea: Mouse
Introduceti modelul: Logitech
Introduceti pretul: 50.0
Introduceti anul editarii: 2021
Introduceti tara: USA
Numar: 3, Denumire: Mouse, Model: Logitech, Pret: 50, An editare: 2021,
Tara: USA
Numar: 1, Denumire: Laptop, Model: Dell, Pret: 1200, An editare: 2022, Tara:
Romania
Numar: 2, Denumire: Desktop, Model: HP, Pret: 0, An editare: 0, Tara:
Pretul in lei pentru tehnica2: 5400
Obiectele tehnica1 si tehnica2 nu sunt egale.
Suma tehnica2 + tehnica3:
Numar: 3, Denumire: Laptop Desktop, Model: Dell HP, Pret: 1200, An editare:
2022, Tara: Romania

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

  • Lab 5
    Lab 5
    Document3 pagini
    Lab 5
    Igor Pascal
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document4 pagini
    Lab 7
    Igor Pascal
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document3 pagini
    Lab 4
    Igor Pascal
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Raport 3
    Raport 3
    Document9 pagini
    Raport 3
    Dan Zagoreanu
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document3 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document8 pagini
    Lab 7
    Ion Popescu
    Încă nu există evaluări
  • Beriksadsada
    Beriksadsada
    Document17 pagini
    Beriksadsada
    Marius Turcan
    Încă nu există evaluări
  • POO - Lab 2
    POO - Lab 2
    Document16 pagini
    POO - Lab 2
    Dascal Sergiu
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document14 pagini
    Lucrarea de Laborator NR 7 POO
    Vlad Racu
    Încă nu există evaluări
  • An1 Lab05 Sem2 21-22
    An1 Lab05 Sem2 21-22
    Document7 pagini
    An1 Lab05 Sem2 21-22
    sabina
    Încă nu există evaluări
  • Kis Alexandru Lab 5
    Kis Alexandru Lab 5
    Document10 pagini
    Kis Alexandru Lab 5
    Sabine Crihan
    100% (1)
  • Lab7C 1 1
    Lab7C 1 1
    Document7 pagini
    Lab7C 1 1
    Cristian Conea
    Încă nu există evaluări
  • Raport C++ Lab 3
    Raport C++ Lab 3
    Document4 pagini
    Raport C++ Lab 3
    Nickolae Enachi
    Încă nu există evaluări
  • Kis Alexandru Lab 6
    Kis Alexandru Lab 6
    Document7 pagini
    Kis Alexandru Lab 6
    Sabine Crihan
    Încă nu există evaluări
  • POO Clase
    POO Clase
    Document5 pagini
    POO Clase
    Kng Ask
    Încă nu există evaluări
  • Proiect Poo
    Proiect Poo
    Document14 pagini
    Proiect Poo
    Donia Andrei
    Încă nu există evaluări
  • Lab1 Poo
    Lab1 Poo
    Document15 pagini
    Lab1 Poo
    ciumac andrian
    100% (1)
  • Lucrare de Laborator Nr. 3
    Lucrare de Laborator Nr. 3
    Document4 pagini
    Lucrare de Laborator Nr. 3
    Student AC ULIM
    Încă nu există evaluări
  • POO2 Grosu Maxim RM201
    POO2 Grosu Maxim RM201
    Document10 pagini
    POO2 Grosu Maxim RM201
    maxlab
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document4 pagini
    Lab 7
    Ionut Valentin
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Prog. C++. Lab Nr. 7
    Prog. C++. Lab Nr. 7
    Document10 pagini
    Prog. C++. Lab Nr. 7
    Andrian Ciumac
    Încă nu există evaluări
  • Laborator1 1 PDF
    Laborator1 1 PDF
    Document5 pagini
    Laborator1 1 PDF
    Denis Minjineanu
    Încă nu există evaluări
  • ZinveliuIoana Cumulate Lab8 An1 Sem2
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Document12 pagini
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Ioana Zinveliu
    Încă nu există evaluări
  • AlexeTudorStefan Lab12
    AlexeTudorStefan Lab12
    Document3 pagini
    AlexeTudorStefan Lab12
    Ovidiu Moldovan
    Încă nu există evaluări
  • Lucrarea de Laborator nr.1 POO
    Lucrarea de Laborator nr.1 POO
    Document27 pagini
    Lucrarea de Laborator nr.1 POO
    Mihai Marchitan
    Încă nu există evaluări
  • Atestat Informatica - Vectori
    Atestat Informatica - Vectori
    Document48 pagini
    Atestat Informatica - Vectori
    Mihaela Dan
    Încă nu există evaluări
  • L1 s2 2020 SE-OOP CPP PDF
    L1 s2 2020 SE-OOP CPP PDF
    Document33 pagini
    L1 s2 2020 SE-OOP CPP PDF
    Roxana Buta
    Încă nu există evaluări
  • Cheregi Florin Lab1
    Cheregi Florin Lab1
    Document21 pagini
    Cheregi Florin Lab1
    Florin Cheregi
    100% (2)
  • Laborator-3 Programarea Calculatoarelor
    Laborator-3 Programarea Calculatoarelor
    Document7 pagini
    Laborator-3 Programarea Calculatoarelor
    Radu Arapan
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Daniel Popa
    Încă nu există evaluări
  • Curs POO 02
    Curs POO 02
    Document14 pagini
    Curs POO 02
    Marinela Fertu Ozarchevici
    Încă nu există evaluări
  • Lab.4 POO UD
    Lab.4 POO UD
    Document9 pagini
    Lab.4 POO UD
    Miroslava
    Încă nu există evaluări
  • Lab 1 C
    Lab 1 C
    Document4 pagini
    Lab 1 C
    uohikjb jbjkbkj
    Încă nu există evaluări
  • Lab8 s1 An1 14-15
    Lab8 s1 An1 14-15
    Document6 pagini
    Lab8 s1 An1 14-15
    Comanici Bogdan
    Încă nu există evaluări
  • Raport 4
    Raport 4
    Document11 pagini
    Raport 4
    Dan Zagoreanu
    Încă nu există evaluări
  • Atestat 2012 C#
    Atestat 2012 C#
    Document14 pagini
    Atestat 2012 C#
    Stan Maria
    Încă nu există evaluări
  • Laborator3 Java
    Laborator3 Java
    Document10 pagini
    Laborator3 Java
    Ned Dean
    Încă nu există evaluări
  • Laborator nr.3 POO
    Laborator nr.3 POO
    Document6 pagini
    Laborator nr.3 POO
    MARYAN Pătru
    Încă nu există evaluări
  • 1 - Probleme C++
    1 - Probleme C++
    Document11 pagini
    1 - Probleme C++
    Moisa Vica
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document17 pagini
    Curs 1
    Alexandru Donciu
    Încă nu există evaluări
  • Laborar 3 Programare
    Laborar 3 Programare
    Document6 pagini
    Laborar 3 Programare
    cristian
    Încă nu există evaluări
  • Lab 7 Functii Virtuale Pure. Clase Abstracte
    Lab 7 Functii Virtuale Pure. Clase Abstracte
    Document11 pagini
    Lab 7 Functii Virtuale Pure. Clase Abstracte
    daniel.grosu
    Încă nu există evaluări
  • Laborar 4 Programare
    Laborar 4 Programare
    Document13 pagini
    Laborar 4 Programare
    cristian
    Încă nu există evaluări
  • Lab10 s1 An1 16 17
    Lab10 s1 An1 16 17
    Document9 pagini
    Lab10 s1 An1 16 17
    Sergiu Gocan
    Încă nu există evaluări
  • Cerinte Interviu Tehnic
    Cerinte Interviu Tehnic
    Document34 pagini
    Cerinte Interviu Tehnic
    Emilian Lp
    100% (1)
  • Raport
    Raport
    Document32 pagini
    Raport
    braileanu
    Încă nu există evaluări
  • POO#Lab#1
    POO#Lab#1
    Document6 pagini
    POO#Lab#1
    Damian Musteata
    Încă nu există evaluări
  • Laborator Mostenire
    Laborator Mostenire
    Document4 pagini
    Laborator Mostenire
    Radulian Defta
    Încă nu există evaluări
  • Functii Si Clase Generice - C++
    Functii Si Clase Generice - C++
    Document10 pagini
    Functii Si Clase Generice - C++
    marciano_me
    Încă nu există evaluări
  • 2.elemente de Baza Ale Limbajului C++
    2.elemente de Baza Ale Limbajului C++
    Document23 pagini
    2.elemente de Baza Ale Limbajului C++
    Dorinel
    Încă nu există evaluări
  • Elemente Privind Programarea OO În Limbajul CC++
    Elemente Privind Programarea OO În Limbajul CC++
    Document33 pagini
    Elemente Privind Programarea OO În Limbajul CC++
    Roland Szatmari
    Încă nu există evaluări
  • An1 Lab07 Sem2 20-21
    An1 Lab07 Sem2 20-21
    Document8 pagini
    An1 Lab07 Sem2 20-21
    Ioana
    Încă nu există evaluări
  • Întreţinerea şi repararea calculatoarelor
    Întreţinerea şi repararea calculatoarelor
    De la Everand
    Întreţinerea şi repararea calculatoarelor
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Mamta in RAzboi
    Mamta in RAzboi
    Document1 pagină
    Mamta in RAzboi
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document3 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document3 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document2 pagini
    Lab 2
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document3 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Riscuri in Afaceri
    Riscuri in Afaceri
    Document3 pagini
    Riscuri in Afaceri
    Rotarciuc Marcel
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document3 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Mamta in RAzboi
    Mamta in RAzboi
    Document1 pagină
    Mamta in RAzboi
    Igor Pascal
    Încă nu există evaluări
  • Eseu Bilant
    Eseu Bilant
    Document2 pagini
    Eseu Bilant
    Igor Pascal
    Încă nu există evaluări
  • Riscul-De-Faliment Manoli Vladislav
    Riscul-De-Faliment Manoli Vladislav
    Document7 pagini
    Riscul-De-Faliment Manoli Vladislav
    Igor Pascal
    Încă nu există evaluări