Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define N 101
- using namespace std;
- //===================== DATA =====================//
- class Date
- {
- //date
- int zi, luna, an;
- //metode
- public:
- void citire();
- void afisare();
- friend istream& operator>>(istream&, Date&);
- friend ostream& operator<<(ostream&, Date&);
- friend bool operator==(Date&, Date&);
- friend Date operator+(Date& , int&);
- };
- void Date::citire()
- {
- cout <<"In ce data suntem? (folositi formatul: zz ll aaaa)\n";
- bool ok = 0;
- while(!ok)
- {
- cin >> zi >> luna >> an;
- if(luna <= 12)
- if((luna % 2 == 1 && zi <= 31) || (luna % 2 == 0 && zi <= 30)) {ok = 1; break;}
- cout << "Data invalida! Mai incercati! \n";
- }
- }
- void Date::afisare()
- {
- cout <<"Astazi este data de:\n";
- cout << zi <<"/"<< luna <<"/"<< an <<"\n";
- }
- istream& operator>>(istream& i, Date& d)
- {
- i >> d.zi >> d.luna >> d.an;
- return i;
- }
- ostream& operator<<(ostream& o, Date& d)
- {
- o << d.zi <<"/"<< d.luna <<"/"<< d.an;
- return o;
- }
- bool operator==(Date& d1, Date& d2)
- {
- return (d1.zi == d2.zi && d1.luna == d2.luna);
- }
- Date operator+(Date& d, int& nr_zile)
- {
- Date a = d;
- while(nr_zile!=0)
- {
- if(a.luna == 12 && a.zi == 31) {a.zi = 1; a.luna = 1; a.an = a.an + 1;}
- else if((a.luna == 2 && a.an % 4 == 1 && a.zi == 28) || (a.luna == 2 && a.an % 4 == 0 && a.zi == 29)){a.zi = 1; a.luna = a.luna + 1;}
- else if(a.luna <= 5 && ((a.luna % 2 == 1 && a.zi == 31) || (a.luna % 2 == 0 && a.zi == 30))) {a.luna = a.luna + 1; a.zi=1;}
- else if(a.luna > 5 && ((a.luna % 2 == 1 && a.zi == 30) || (a.luna % 2 == 0 && a.zi == 31))) {a.luna = a.luna + 1; a.zi=1;}
- else a.zi = a.zi + 1;
- nr_zile--;
- }
- return a;
- }
- void Verificare(Date& d1, Date& d2)
- {
- if(d1 == d2) cout <<"Se pare ca astazi este ziua ta...La multi ani!!! \n";
- else cout <<"Nu este inca ziua ta...mai ai de aseptat. \n";
- }
- //================= CUMPARATURA =================//
- class Cumparatura
- {
- //date
- string nume;
- double cantitate;
- double pret;
- //metode
- public:
- void citire();
- void afisare();
- friend istream& operator>>(istream&, Cumparatura&);
- friend ostream& operator<<(ostream&, Cumparatura&);
- friend bool operator==(Cumparatura&, Cumparatura&);
- friend Cumparatura operator+(Cumparatura&, Cumparatura&);
- Cumparatura()
- {
- nume = "";
- cantitate = 0;
- pret = 0;
- }
- ~Cumparatura()
- {
- //cout <<"distruge \n";
- }
- Cumparatura(const Cumparatura& c)
- {
- nume = c.nume;
- cantitate = c.cantitate;
- pret = c.pret;
- }
- //set-eri si get-eri
- void set_nume(string n){nume = n;}
- string get_nume(){return nume;}
- void set_cantitate(double c){cantitate = c;}
- double get_cantitate(){return cantitate;}
- void set_pret(double p){pret = p;}
- double get_pret(){return pret;}
- }lista[N];
- void Cumparatura::citire()
- {
- //cout <<"Ce trebuie cumparat? (nume cant pret)\n";
- cin >> nume >> cantitate >> pret;
- }
- void Cumparatura::afisare()
- {
- //cout <<"Trebuie cumparat: \n";
- cout << nume <<" "<< cantitate <<" "<< pret <<"\n";
- }
- istream& operator>>(istream& i, Cumparatura& c)
- {
- i >> c.nume >> c.cantitate >> c.pret;
- return i;
- }
- ostream& operator<<(ostream& o, Cumparatura& c)
- {
- o << c.nume <<" "<< c.cantitate <<" "<< c.pret;
- return o;
- }
- bool operator==(Cumparatura& c1, Cumparatura& c2)
- {
- return (c1.nume == c2.nume && c1.pret == c2.pret);
- }
- Cumparatura operator+(Cumparatura& c1, Cumparatura& c2)
- {
- Cumparatura c = c1;
- c.cantitate = c1.cantitate + c2.cantitate;
- return c;
- }
- //==================== INDIVID ===================//
- class Individ
- {
- //date
- string nume;
- string prenume;
- Date birthday;
- //metode
- public:
- void citire();
- void afisare();
- void afisare_birthday();
- friend istream& operator>>(istream&, Individ&);
- friend ostream& operator<<(ostream&, Individ&);
- friend bool operator==(Individ&, Individ&);
- //set-eri si get-eri
- void set_nume(string n){nume = n;}
- string get_nume(){return nume;}
- void set_prenume(string p){prenume = p;}
- string get_prenume(){return prenume;}
- void set_birthday(Date d){birthday = d;}
- Date get_birthday(){return birthday;}
- }prieteni[N];
- void Individ::citire()
- {
- //cout <<"Dați numele și prenumele persoanei:\n";
- cin >> nume >> prenume;
- }
- void Individ::afisare()
- {
- //cout <<"Numele și prenumele acestei persoane este:\n";
- cout << nume <<" "<< prenume;
- }
- void Individ::afisare_birthday()
- {
- //cout <<"ziua de nastere a acestei persoane este:\n";
- birthday.afisare();
- }
- istream& operator>>(istream& i, Individ& p)
- {
- i >> p.nume >> p.prenume;
- return i;
- }
- ostream& operator<<(ostream& o, Individ& p)
- {
- o << p.nume <<" "<< p.prenume;
- return o;
- }
- bool operator==(Individ& i1, Individ& i2)
- {
- return(i1.nume == i2.nume && i1.prenume == i2.prenume);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement