Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //imie nazwisko, nr indeksu, grupa laboratoryjna, data
- //Michal Szuleta, 131805,1,23.01.2021
- #include <iostream>
- #include <string>
- using namespace std;
- //Tutaj umiescic definicje klas potrzebnych do prawidlowego dzialania kodu testujacego
- class Paczka{
- protected:
- string adres;
- float wartosc;
- public:
- Paczka() : adres("Brak"), wartosc(0.0){};
- Paczka(string adres,float wartosc)
- {
- this->adres = adres;
- this->wartosc = wartosc;
- }
- const string& Adres()const{return adres;}
- const float& Wartosc()const{return wartosc;}
- string& Adres(){return adres;}
- float& Wartosc(){return wartosc;}
- /*
- Paczka operator = (Paczka *p1)
- {
- adres = p1->adres;
- wartosc = p1->wartosc;
- }
- */
- };
- class Osoba
- {
- string imie,nazwisko;
- public:
- Osoba() : imie("Brak"),nazwisko("Brak"){};
- Osoba(string imie,string nazwisko)
- {
- this->imie = imie;
- this->nazwisko = nazwisko;
- }
- friend ostream& operator<<(ostream& out, const Osoba& o)
- {
- return out<<o.imie<<"\t"<<o.nazwisko<<"\n";
- }
- string firstname(Osoba)
- {
- string name = this->imie;
- return name;
- }
- string lastname(Osoba)
- {
- string name = this->nazwisko;
- return name;
- }
- Osoba operator = (Osoba *o1)
- {
- imie = o1->imie;
- nazwisko = o1->nazwisko;
- }
- Osoba(const Osoba &o1)
- {
- this->imie = o1.imie;
- this->nazwisko =o1.nazwisko;
- }
- const string& Imie() const{return imie;}
- const string& Nazwisko() const{return nazwisko;}
- string& Imie(){return imie;}
- string& Nazwisko(){return nazwisko;}
- };
- bool operator == (Osoba& o1, Osoba& o2)
- {
- if(o1.firstname(Osoba())==o2.firstname(Osoba())&&o1.lastname(Osoba())==o2.lastname(Osoba()))
- {
- return true;
- }
- else
- return false;
- }
- class Kurier : public Osoba
- {
- private:
- Paczka* tab;
- int n=0;
- public:
- Kurier(Paczka*a,Paczka*b)
- {
- n=b-a;
- tab= new Paczka[n];
- for(int i=0;i<n;i++)
- {
- tab[i]=a[i];
- }
- }
- float wartosc()
- {
- float suma=0.0f;
- for(int i=0; i<n;i++)
- {
- suma+=tab[i].Wartosc();
- }
- return suma;
- }
- Paczka* Paczki()
- {
- return tab;
- }
- int N(){return n;}
- Kurier()
- {
- tab = NULL;
- }
- Kurier(const Kurier *k)
- {
- tab=k->tab;
- }
- Kurier operator = (const Kurier *k)
- {
- tab=k->tab;
- }
- };
- Kurier operator + (Kurier& k1, Paczka& p)
- {
- Paczka *paka = new Paczka[k1.N()+1];
- for (int i=0; i<k1.N();i++)
- {
- paka[i]= k1.Paczki()[i];
- }
- paka[k1.N()]=p;
- Kurier kx(paka,paka+k1.N()+1);
- return kx;
- }
- int main()
- {
- //Kod testujacy
- Paczka p[] = {
- Paczka("Dabrowskiego 33", 123.00),
- Paczka("NMP 12", 40.00),
- Paczka("Armii Krakowej 4", 30.00),
- Paczka("Andersa 6", 51.00),
- Paczka("Kukuczki 13", 12.00),
- Paczka("Skrzyneckiego 5", 40.00),
- };
- Osoba o1("Jan", "Kowalski");
- cout << "---- 1 ----" << endl;
- cout << o1 << endl;
- Osoba o2(o1);
- cout << "---- 2 ----" << endl;
- cout << o2 << endl;
- cout << "---- 3 ----" << endl;
- cout << boolalpha << (o1 == o2) << endl;
- Osoba o3;
- cout << "---- 4 ----" << endl;
- cout << o3 << endl;
- o3 = o2;
- cout << "---- 5 ----" << endl;
- cout << o3 << endl;
- Kurier k1(p, p+3);
- cout << "---- 6 ----" << endl;
- cout << k1.wartosc() << endl;
- Kurier k2;
- cout << "---- 7 ----" << endl;
- cout << k2.wartosc() << endl;
- Kurier k3(k1);
- cout << "---- 8 ----" << endl;
- cout << k3.wartosc() << endl;
- k2 = k3;
- cout << "---- 9 ----" << endl;
- cout << k2.wartosc() << endl;
- k1 = k1 + p[4];
- cout << "---- 10 ----" << endl;
- cout << k1.wartosc() << endl;
- k1 = k1 + p[5];
- cout << "---- 11 ----" << endl;
- cout << k1.wartosc() << endl;
- Kurier k4(k1);
- cout << "---- 12 ----" << endl;
- /*
- for(int i=0; i<7; ++i)
- cout << k4[i] << endl;
- */
- return 0;
- }
Add Comment
Please, Sign In to add comment