Kolorwanie:
Status:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773
POJAZD
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class Adres
{
string _ulica;
int _numer;
public:
        Adres(){} // konstruktor domyślny
        Adres(string ulica, int numer)  //konstruktor parametryczny
        {
        _ulica = ulica;
        _numer = numer;
        }
        friend ostream & operator<<(ostream & wypisz, const Adres & ad );
       
        //metody dostepowe
        string &ulica(){return _ulica;}
        int &numer(){return _numer;}
        const string &ulica()const {return _ulica;}
        const int &numer()const{return _numer;}
       
};
ostream & operator<<(ostream & wypisz, Adres& a )  // operator wstawienia do strumienia
{
        wypisz << a.ulica() << "  " << a.numer() << "  "<<endl;
        return wypisz;
}
///////////////////////////////////////////////////
class Pojazd
{
	Adres *_Adres;
	string _numer;
	
public:
	Pojazd(){} //konstruktor domyślny
	
	Pojazd(string numer, Adres  adr) //konstruktor parametryczny
	{
		_Adres = new Adres;
		*_Adres = adr;
		_numer = numer;
	}
	
	friend ostream& operator <<(ostream& wypisz, const Pojazd& po);
	
	//metody dostepowe
        string &numer(){return _numer;}
        Adres & adres() {return *_Adres;}
        const string &numer()const{return _numer;}
        const Adres & adres() const {return *_Adres;}
};
ostream & operator<<(ostream & wypisz,const Pojazd& p )  // operator wstawienia do strumienia
{
        wypisz << p.numer() << "  " << p.adres() << "  "<<endl;
        return wypisz;
}

int main()
{
       
        Adres adres[] =
		{
                Adres("Dabrowskiego" , 69),
                Adres("Jana Pawla II", 100)
        };
        cout <<"---- 1 ----"<< endl;
        cout <<adres[0]<<endl<<adres[1]<<endl;
        
        
        cout<< "---- 2 -----"<<endl;
        Pojazd p1(" SC 12345", adres[0]);
        cout<< p1 <<endl;
     /*  
        {
                cout<<"----- 4 -----"<<endl;
                Pojazd p2(p1);
                cout<< p2<<endl;
        }
        cout<<"---- 5 ----"<<endl;
        cout<<p1<<endl;
        cout<<"---- 6 ----"<<endl;
        Pojazd p3;
        {
                Pojazd p4(p1);
                p3=p4;
        }
        cout<<p3<<endl;
       
        cout<<"---- 7 ----"<<endl;
        try{
                cout << p3[10] <<endl;
        }
        catch(...){
                cout<< "Wyjatek" <<endl;
        }
        cout << "---- 8 ----"<<endl;
        Samochod s1("VW", 100000, "SC 12345", adres[0]);
        cout << s1 <<endl;
       
cout<<" ---- 9 ----"<<endl;
s1.dodaj(adres[1]);
cout<<s1<<endl;
{
        cout <<"---- 10 ----"<<endl;
        Samochod s2(s1);
        cout<< s2 <<endl;
}      
cout<<" ---- 11 ----"<<endl;
cout<< s1<<endl;
cout<<"---- 12 ----"<<endl;    
Samochod s3;
{
        Samochod s4(s1);
        s3=s4;
       
}
cout<< s3 <<endl;
cout<<" ---- 13 ----"<<endl;
s3=s3+10000;
cout<< s3<<endl;
*/
system("Pause");
return 0;
}
                                   
Figura
                                   #include <iostream>
using namespace std;

class figura{
	protected:
		string *kol;
		int a,b,h;
	public:
		figura():kol(new string("0")),a(0),b(0),h(0){}
		figura(const string &r):kol(new string(r)),a(0),b(0),h(0){}
		figura(const string &r,int x):kol(new string(r)),a(x),b(0),h(0){}
		figura(const string &r,int x,int y):kol(new string(r)),a(x),b(y),h(0){}
		figura(const string &r,int x,int y,int z):kol(new string(r)),a(x),b(y),h(z){}
		figura(const figura &r):kol(new string(*r.kol)),a(r.a),b(r.b),h(r.h){}
		figura & operator=(const figura &r)
		{
			if(this!=&r)
			{
				delete kol;
				kol=new string(*r.kol);
				a=r.a;
				b=r.b;
				h=r.h;
			}
			return *this;
		}
		
		virtual double pole()const=0;
		virtual ostream & pokaz(ostream & out)const=0;
		virtual ~figura(){delete kol;}

};

class kolo:public figura{
	public:
		kolo(){}
		kolo(const string &r):figura(r){}
		kolo(const string &r,int x):figura(r,x){}
		
		double pole()const
		{

			return (3.14*(a*a));

		}
		ostream & pokaz(ostream & out)const
		{
			out << *kol << " " << a <<  endl;
			return out;
		}
	 ~kolo(){}

};
class prost:public figura{
	public:
		prost(){}
		prost(const string &r):figura(r){}
		prost(const string &r,int x,int y):figura(r,x,y){}
		double pole() const
		{
		return a*b;

		}
		ostream & pokaz(ostream & out)const
		{
			out << *kol << " " << a << " " << b << endl;
			return out;
		}
	 ~prost(){}

};
class prostop:public figura{
	
	public:
		prostop(){}
		prostop(const string &r):figura(r){}
		prostop(const string &r,int x,int y, int z):figura(r,x,y,z){}
		double pole()const
		{
		double pole=0;
		pole=2*a*b*h;
		return  pole;
		}
		ostream & pokaz(ostream & out)const
		{
			out << *kol << " " << a << " " << b << " " << h << endl;
			return out;
		}
	 ~prostop(){}

};
ostream & operator << (ostream & out,const figura&r)
{
	return r.pokaz(out);
}

int main()
{
	figura * tab[5];
	const kolo test("zolty",1);
	const prostop test2("czarny",1,1,1);
	tab[0]=new kolo;
	tab[1]=new kolo("czerwony",1);
	tab[2]=new prost;
	tab[3]=new prost("niebieski",1,1);
	tab[4]=new prostop("zielony",1,1,1);
for(int i=0;i<5;i++)
cout << tab[i]->pole() << endl;
cout << "===================3================" << endl;
for(int i=0;i<5;i++)
cout << *tab[i] << endl;
cout << "=====================4==================" << endl;
cout << "=============ale po mojemu : P==========" << endl;
return 0;
}

grania
#include <iostream>
#include <string>
#include <cmath>

using namespace std;


class prostokat{

protected:
double a;
double b;
string *kol;

	public:
	prostokat(): a(0), b(0), kol(new string){}
	prostokat(const string& a1, const double a2, const double a3): a(a2), b(a3), kol( new string (a1)) {} 
	
	prostokat(const prostokat& r): a(r.a), b(r.b), kol(new string(*r.kol)){}
	
	double & A(){return a;}
	double & B(){return b;}


       const double & A()const{return a;}
	const double & B()const{return b;}

	virtual	prostokat& operator=(const prostokat& e){
		if(this !=&e){
		a=e.a;
		b=e.b;
		*kol=*e.kol;
		}
	return *this;
	}


	virtual double pole(){return (2*a)+(2*b);} 
	
	virtual ostream& info(ostream& k){k<<"BOK A: "<<a<<endl;
					  k<<"BOK B: "<<b<<endl;
					  k<<"Kolor prostokata: "<<*kol<<endl;
					  return k;
        }
	
	friend ostream&  operator<<(ostream & out, prostokat& w);

	prostokat &operator=(double &a);	
	prostokat &operator + (double &d);

virtual ~prostokat(){delete kol;}
};




ostream& operator<<(ostream & out, prostokat& w){

return w.info(out);
}



class graniastoslup : public prostokat{
private:
double h;

	public:
	graniastoslup():h(0){}
	graniastoslup(const string& b1, const double b2, const double b3, const double b4): prostokat(b1,b2,b3), h(b4){}

	graniastoslup ( const graniastoslup &u ) : prostokat (*u.kol, u.a, u.b), h (u.h) {}

	virtual	graniastoslup& operator=(const graniastoslup& s){
		if(this!=&s){
		a=s.a;
		b=s.b;
		*kol=*s.kol;
		h=s.h;
		}
	return *this;
	}

	double & H(){return h;}
	
       const double & H()const{return h;}
	

      

	

	double pole(){return (2*(a*b))*h;}

	ostream& info(ostream& z){z<<"BOK A: "<<a<<endl;
				  z<<"BOK B: "<<b<<endl;
			  	  z<<"Kolor graniastoslupa: "<<*kol<<endl;
				  z<<"Wyskokosc graniastoslupa: "<<h<<endl;
				  return z;
	}
	 
	 graniastoslup&  operator+(double &s);
         graniastoslup& operator=(double &s);
	
~graniastoslup(){}
};

    prostokat& prostokat:: operator=(double &u)
    {
        this->A() = u;
        this->B() = u;       
      return *this;
    }
   
    prostokat& prostokat::operator+(double &h)
    {
     A()=A()+h;
     B()=B()+h;         
      return *this;
    } 

   graniastoslup& graniastoslup:: operator=(double &s){
    
	this->A()=s;
	this->B()=s;
	this->H()=s;
	
	return *this;
    }

     graniastoslup& graniastoslup:: operator+(double &s){
    
	A()=A()+s;
	B()=B()+s;
	H()=H()+s;
	return *this;
    }

int main()
try{

 
prostokat p1("blue", 2, 2);

graniastoslup g1("red", 1,1,1);

prostokat** tab= new prostokat *[5]; 

tab[0] = new prostokat(p1) ;
tab[1] = new graniastoslup(g1);
tab[2] = new prostokat;
tab[3] = new graniastoslup;
tab[4] = new prostokat("green", 1, 2);
for (int i=0; i<5; ++i){
  cout << *tab[i];
  cout  << "Pole:"<<tab[i]->pole()<<endl;
  cout<<"=================================="<<endl;
}
 *tab[2] = p1.A()+=1;
 *tab[3] = g1.A()+=1;

cout<<"+++++++++++++++++++++++++++++++++++++++++++"<<endl;
for (int i=0; i<5; ++i){
  cout << *tab[i];
  cout  << "Pole:"<<tab[i]->pole()<<endl;
  cout<<"=================================="<<endl;
}

for (int i=0;i<5;i++)
	delete tab[i];
		delete []tab;


return 0;
}
catch(bad_alloc){cerr<<"Naruszenie ochrony pamieci"<<endl;}
catch(...){cerr<<"nieznany blad"<<endl;}

osoba
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

class Osoba
{
      string _imie;
      string _nazwisko;
      int _wiek;
      int _n;
     

      public:
      Osoba(){ _wiek=0;}
      Osoba(string imie, string nazwisko, int wiek)
      {
                   _imie=imie;
                   _nazwisko=nazwisko;
                   _wiek=wiek;
      }

      Osoba(const Osoba &a)
      {
                  if(&a!=this)
                  {
                  _imie=a._imie;
                  _nazwisko=a._nazwisko;
                  _wiek=a._wiek;
                  }
      }

      Osoba & operator =(const Osoba &a)
      {
            if(&a!=this)
            {
                  _imie=a._imie;
                  _nazwisko=a._nazwisko;
                  _wiek=a._wiek;
            }

                  return *this;
      }
                  string & imie() {return _imie;}
                  string &nazwisko() {return _nazwisko;}
                  int & wiek() {return _wiek;}
                   const string & imie()const  {return _imie;}
                   const string &nazwisko()const {return _nazwisko;}
                   const int & wiek() const{return _wiek;}
                   int & n() { return _n;}
                   const int &n () const { return _n;}
                   
      void pokaz()
      {
           cout << " imie : " << imie() << " nazwisko : " << nazwisko() << " wiek : " << wiek();
           }
           
           
 
     
};

void wczytywanie(ifstream & fin, Osoba&a)
      {
                         
           fin >> a.n();
           a.siala = new int [a.n()];
           for(int i=0;i<a.n();i++)
           {
           fin >> a.siala[i].imie();
           fin >> a.siala[i].nazwisko();
           fin >> a.siala[i].wiek();
           }
       
      }
      
ostream & operator<<( ostream & tuszek, const Osoba &a)
{
        tuszek << a.imie() << " " << a.nazwisko() << " " << a.wiek() << endl;
        return tuszek;
}

class Student : public Osoba
{
      int _indeks;
      string _przedmiot;
      float _ocena;

      public:
      Student(){
                 _indeks=0;
                 _ocena=0;
                 }
      Student(string imie, string nazwisko, int wiek, int indeks,string przedmiot, float ocena) : Osoba(imie,nazwisko,wiek)
      {
                     _indeks=indeks;
                     _przedmiot=przedmiot;
                     _ocena=ocena;
      }
       Student(const Student &a) : Osoba(a)
      {
                  if(&a!=this)
                  {
                  _indeks=a._indeks;
                  _przedmiot=a._przedmiot;
                  _ocena=a._ocena;
                  }
      }
      Student & operator =(const Student &a)
      {
              Osoba::operator=(a);
              if(&a!=this)
              {
                  _indeks=a._indeks;
                  _przedmiot=a._przedmiot;
                  _ocena=a._ocena;
              }
              return *this;
      }

      int & indeks() { return _indeks;}
      float &ocena() { return _ocena;}
      string &przedmiot() { return _przedmiot;}

      const int & indeks()const { return _indeks;}
      const float &ocena()const { return _ocena;}
      const string &przedmiot()const { return _przedmiot;}

      void pokaz()
      {
           Osoba::pokaz();
           cout << "indeks : " << indeks() << " , przedmiot :" << przedmiot() << " , ocena: " << ocena();
           }
           
friend float & operator ==(Student &a, Student&b)
{


        if(a._ocena>b._ocena)
       return a._ocena;
       return b._ocena;


}

};


int main()
{
    Osoba o("Jakub","Tuszynski",22);
    Osoba o2;
    Osoba o1(o);
    
    fstream fin("osoba.txt");
    if(!fin)
    {
             cerr << "blad pliku" ;
    }
    wczytywanie(fin,o2);
    cout << " Uzytkownik o : ";
    cout << o << endl;
     cout << " Uzytkownik o1 -kopiujacy : ";
    cout << o1 << endl;
    o2=o1;
    cout << " Uzytkownik o2 - przypisania: ";
    cout << o2 << endl;
    Student a("Jakub","Tuszynski",22,116062,"Metody Programowanie", 4.5);
    cout << "Wyswietl studenta a : " << endl;
    a.pokaz();
    cout << endl;
    Student b("Damian","Wiewiora",22,116068,"Metody Programowania",5);
    cout << "Wyswietl studenta b : " << endl;
    b.pokaz();
    cout << endl;
    cout << " wyswietl operator porownania ocen uzyt. a i b : ";
    cout << endl;
    cout << " wyswietl ocene wyzsza " << endl;
    cout << (a==b) ;
    cout << endl;


    system("pause");
    return 0;


}

student
#include <iostream>

using namespace std;

class osoba{
protected:
    string *imie_;
    string nazwisko_;
public:
    static unsigned liczba_obiektow;
    osoba () : imie_(new string (" brak ")), nazwisko_(" "){liczba_obiektow++;}
    osoba (const string &a1, const string &a2) : imie_(new string(a1)), nazwisko_(a2) {liczba_obiektow++;}
    osoba (const osoba &kopia) : imie_(new string(*kopia.imie_)), nazwisko_(kopia.nazwisko_){liczba_obiektow++;}

    osoba &operator= (const osoba &kopia)
    {
        if (this != &kopia)
        {
            imie_ = new string (*kopia.imie_);
            nazwisko_ = kopia.nazwisko_;
        }
        return *this;
    }

    osoba &operator+=(const string &v)
    {
        this->nazwisko_ +=v;
        return *this;
    }
    virtual ~osoba()
    {
        delete imie_;
        liczba_obiektow--;
    }
    virtual void fun(ostream &out)const
    {
            out << *imie_ << " " << nazwisko_ << endl;
    }


};
unsigned    osoba::liczba_obiektow = 0;
    ostream &operator<< (ostream &out, const osoba &a)
    {
        a.fun(out);
        return out;
    }


class student : public osoba{
    string kierunek_;
    unsigned semestr_;
public:
    student () : kierunek_(" "), semestr_(0){liczba_obiektow++;}
    student (const string &a1, const string &a2, const string &a3, unsigned a4) : osoba(a1,a2), kierunek_(a3), semestr_(a4) {liczba_obiektow++;}
    student (const student &kopia) : osoba(kopia), kierunek_(kopia.kierunek_), semestr_(kopia.semestr_){liczba_obiektow++;}
    student (const osoba &kopia) : osoba(kopia), kierunek_("brak danych"), semestr_(0){liczba_obiektow++;}
    student (const osoba &kopia, const string &a1, unsigned a2) : osoba(kopia), kierunek_(a1), semestr_(a2){liczba_obiektow++;}

    student &operator= (const student &kopia)
    {
        if (this != &kopia)
        {
            osoba::operator=(kopia);
            kierunek_ = kopia.kierunek_;
            semestr_ = kopia.semestr_;
        }
        return *this;
    }

    void fun(ostream &out)const
    {
            osoba::fun(out);
            out << " " << kierunek_ << " " << semestr_ << endl;

    }

    friend student operator+ (const string &arg1, const student &arg2);
    friend student operator+ (unsigned arg1, const student &arg2);

    ~student(){liczba_obiektow--;}
};

    student operator+ (const string &arg1, const student &arg2)
    {
        student suma;
        suma.kierunek_ = arg1 + arg2.kierunek_;
        return suma;
    }

    student operator+ (unsigned arg1, const student &arg2)
    {
        student suma;
        suma.semestr_ = arg1 + arg2.semestr_;
        return suma;
    }
int main()
    {

    //...
    const osoba o1("Jan", "Kowalski");
    const osoba o2("Ewa", "Nowak");
    osoba *tab[5];
    tab[0] = new osoba;
    tab[1] = new student;
    tab[2] = new osoba("Ala", "Kot");
    tab[3] = new student(o1);
    tab[4] = new student(o2, "Informatyka", 3) ;

    for(int i=0; i<5; i++)
    try{
    cout << *tab[i]<< endl;
    }catch(const string & err){
    cerr << err << endl;
    }
    cout << "********** 3 **********"<< endl;
    const student s1("Adam", "Lis", "mechanika",4);
    delete tab[0];
    tab[0] = new student(s1);
    *tab[4]+= "Kowalska";
    for(int i=0; i<5; i++)
    try{
    cout << *tab[i]<< endl;
    }catch(const string & err){
    cerr << err << endl;
    }
    cout << "********** 4 **********"<< endl;
    student s2(*tab[3]);
    try{
    cout << s2<< endl;
    }catch(const string & err){
    cerr << err << endl;
    }
    s2 = "Informatyka" + s2;
    s2 = 5 + s2;
    try{
    cout << s2<< endl;
    }catch(const string & err){
    cerr << err << endl;
    }
    cout << "$ " << osoba::liczba_obiektow << endl;
    for(int i=0; i<5; i++)
    delete tab[i];
    cout << "$ " << osoba::liczba_obiektow << endl;
    cout << "********** 5 **********"<< endl;

        return 0;
    }

wierzcholek
#include <iostream>
using namespace std;

class punkt {
protected:
    double *tab;
public:
    punkt(): tab(new double[2]) {
    tab[0] = 0;
    tab[1] = 0;
    }
    punkt(const double& a,const double& b): tab(new double [2]) {
    tab[0] = a;
    tab[1] = b;
    }
    punkt( const punkt& drugi): tab(new double [2]) {
    tab[0] = drugi.tab[0];
    tab[1] = drugi.tab[1];
    }

    punkt &operator= (const punkt& drugi)
    {
        if (this != &drugi)
        {
            tab[0] = drugi.tab[0];
            tab[1] = drugi.tab[1];
        }
        return *this;
    }
    virtual void wypisz(ostream& out) const {
    out<< tab[0] <<" "<< tab[1] <<endl;
    }
    double& operator [] (unsigned i) {
    return tab[i];
    }

    const double operator [] (unsigned i) const {
      return tab[i];
    }

friend punkt operator * (const int b, const punkt& a)
        {
                punkt temp;
                temp.tab[0]=a.tab[0]*b;
                temp.tab[1]=a.tab[1]*b;
                return temp;
        }
    ~punkt() {delete [] tab;}

};



ostream& operator << (ostream& out,const punkt& p)
 {
    p.wypisz(out);
    return out;
 }

class wierzcholek : public punkt {
    string kolor;
public:
    wierzcholek(): punkt(), kolor("brak") {}
    wierzcholek(const double& a,const double& b,const string& c): punkt(a,b), kolor(c) { }
    wierzcholek(const wierzcholek& drugi): punkt(drugi), kolor(drugi.kolor){}
    wierzcholek &operator= (const wierzcholek& drugi)
    {
        if (this != &drugi)
        {
            punkt::operator=(drugi);
            kolor = drugi.kolor;
        }
        return *this;
    }

   friend wierzcholek operator * (const int b, const wierzcholek& a)
        {
                wierzcholek temp;
                temp.tab[0]=a.tab[0]*b;
                temp.tab[1]=a.tab[1]*b;
                temp.kolor=a.kolor;
                return temp;
        }
    void wypisz(ostream& out) const {
    out<< tab[0] <<" "<< tab[1] << kolor << endl;
    }

    ~wierzcholek() { }
};



int main() {
const punkt p1(1,1);
const wierzcholek w1(2,2,"red");
const punkt p2;
const wierzcholek w2;
cout << p2 ;
cout<< w2 ;

cout<< p1[0] << " " <<p1[1] << endl;
cout<< w1[0] << " " <<w1[1] << endl;

punkt tp[2];
wierzcholek tw[2];
for (int i =0; i<2; i++) {
tp[i]= (i+2) * p1;
tw[i]= (i+2) * w1;
}

punkt* ta [4];
ta[0] = &tp[0];
ta[1] = &tw[0];
ta[2] = &tp[1];
ta[3] = &tw[1];
for(unsigned i=0; i<4; i++) {
cout<< *ta[i];
}

return 0;
} 
studnet gr
#include<iostream>
#include<string>

using namespace std;


class Student 
{
  private:
   string imie;
   string nazwisko;
   double ocena;

	public:
	Student():ocena(0){}
	Student(const string &a1, const string &a2, double a3):imie(a1),nazwisko(a2), ocena(a3){}
	

	/* Metody*/
	string & IMIE(){return imie;}
	string & NAZ(){return nazwisko;}
	double & OC(){return ocena;}
	
	// dla consta//
	const string & IMIE()const{return imie;}
	const string & NAZ()const{return nazwisko;}
	const double & OC()const{return ocena;}


~Student(){}
};


class Grupa
{
private:
  unsigned n;
  Student *t;

	public:
	Grupa():n(0),t(0){}
	
	Grupa(const Student *p,const Student*k):n(k-p),t(new Student[n]){
	
		for (unsigned int i=0;i<n;i++)
		t[i]=p[i];
	}



friend ostream& operator<<(ostream& , const Grupa&);
Grupa& operator=( const Grupa&);
Student& operator[](unsigned);

double srednia()const;


};


Student& Grupa:: operator[](unsigned i){

try {
	if(i>0)
	throw string("za male i");

    }
	
	catch (string &e){cerr<<e<<endl;}
return t[i];
}

double Grupa ::srednia()const {

double suma=0;
int  l=0;

	for (unsigned i=0;i<n;i++){
	suma+=t[i].OC();
	l++;
	}

double sre=suma/l;

return sre;
}

ostream&  operator<<(ostream& out, const Grupa&c){

	for(unsigned i=0;i<c.n;i++)
	cout<<c.t[i].IMIE()<<" "<<c.t[i].NAZ()<<" "<<c.t[i].OC()<<endl;

	

return out;
}

Grupa& Grupa:: operator=( const Grupa&r){


	 t= new Student[r.n];

	for (unsigned i=0;i<r.n;i++)
	t[i]=r.t[i];
	


return *this;
}

int main(){

Student bond("James", "Bond", 5.0);

    cout << "Student " << bond.IMIE() << " " << bond.NAZ();

    cout << " dostal " << bond.OC() << endl;

    Student studenci[3] = { Student("Jan", "Kowalski", 3.5),

                            Student("Ala", "Nowak", 3.0),

                            Student()

                            };

    const Grupa gr1(studenci, studenci+3);

   cout << gr1;

   cout << "Srednia ocen tej grupy to " << gr1.srednia() << endl;

    Grupa gr2;

    gr2 = gr1; 

 cout << gr2;

try
    {

        gr2[2] = bond;

        cout << gr2;

        cout << "Srednia ocen tej grupy to " << gr2.srednia() << endl;
    }
    catch(const char *a)
    { cerr << a << endl; }

return 0;
}

Pomiar

#include <iostream>
using namespace std;


class pomiar{
	protected:
	
	
	string nazwa;
	public:
	pomiar (): nazwa("---") {}
	pomiar(string n):nazwa(n){}
	
	virtual double oblicz () =0;
	virtual ostream &info(ostream & out)
	{
		return out;
	}
	string &Nazwa(){return nazwa;}
	friend ostream &operator<<(ostream & out,pomiar &p);
	
	//~pomiar(){}
	};
	ostream &operator<<(ostream & out,pomiar &p)
	{
		return p.info(out);
	}
class ciezar:public pomiar
{
	
	int roz;
	double *tab;
	public:
	ciezar(string a1, double *p1, double *p2): roz(p2-p1)
	{ 
		 tab=new double[roz];
		 for ( int i=0; i<roz; ++i)  
		 tab[i]=p1[i];
	}
	ciezar(string p1):pomiar(p1){}
	ciezar():roz (), tab(new double (0.0)) {}
	double oblicz()
	{
		double sum=0;
		for ( int i=0; i<roz; ++i)  
			sum+=tab[i];
		return sum;
	}
	ostream &info(ostream & out)
	{
		out<<" ciezar "<<nazwa;
		return out;
		}
	
	
};
class temp:public pomiar
{
	
	int roz;
	double *tab;
	public:
	temp(string a1, double *p1, double *p2): roz(p2-p1)
	{ 
		tab=new double[roz];
		 for ( int i=0; i<roz; ++i)  
			tab[i]=p1[i];
	  }
	temp(string p1):pomiar(p1){}
	temp():roz(0), tab(new double (0)){}
	double oblicz()
	{
		double sum=0;
		int ile=0;
		for ( int i=0; i<roz; ++i)  
			sum+=tab[i];
			ile++;
		return sum/ile;
	}
	ostream &info(ostream & out)
	{
		out<<" temperatura "<<nazwa<<" ";
		return out;
		}
	
};

int main () 
{
	double dane[]={ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 };
	pomiar **tab=new pomiar*[5];
	const ciezar test1("gruszki", dane, dane+9);
	const temp test2;
	tab[0] = new ciezar("jablka") ;
	tab[1] = new temp("poranki", dane+3, dane+6);
	tab[2] = new ciezar("cytryny", dane, dane+3) ;
	tab[3] = new temp("wieczory", dane, dane+9);
	tab[4] = new ciezar;
	for (int i=0; i<5; ++i)
		cout << tab[i]->oblicz() << endl ;
	for (int i=0; i<5; ++i)
		cout << *tab[i]<< " "<<tab[i]->oblicz() << endl ;
	*tab[3]=test2;
	for (int i=0; i<5; ++i)
		cout << *tab[i]<< " "<<tab[i]->oblicz() << endl ;
	for (int i=0; i<5; ++i)
	{
	//	delete tab[];
	}
	delete tab;
	return 0;
}

robot

#include <iostream>
#include <vector>
using namespace std;

class operacja{
protected:
          string kierunek_;
          int rotacja_;
public:
       operacja(const string &k="-", const int &r=0)
           : kierunek_(k), rotacja_(r) 
           {}
       operacja(const operacja &o)                  
           : kierunek_(o.kierunek_), rotacja_(o.rotacja_) 
           {} 
           
       const string ret_kierunek()const { return kierunek_; } 
       const int ret_rotacja()const     { return rotacja_;   }  
};

class robot {
protected:
          unsigned nr_;
public:
       robot(const unsigned &l=0)
           : nr_(l) 
           {}
       robot(const robot &r)
           : nr_(r.nr_)
           {}
       virtual ~robot() {}   
virtual void wyswietl() { cout << "ID:  " << nr_ << ". "; } 
};

class podajnik : public robot{
public:
       podajnik(const unsigned &nr=0)
          : robot(nr)
          {}
       podajnik(const podajnik &p)
          : robot(p.nr_)
          {}
virtual void wyswietl() { robot::wyswietl(); cout << "Podaje material." << endl; }       
};

class robot1R : public robot {
protected:
          vector<operacja> ramie1_ruch;
public:
       robot1R()
           : robot(0) 
           { ramie1_ruch.push_back(operacja()); 
           }
       robot1R(const unsigned &nr, const operacja *o1, const operacja *o2)
           : robot(nr)
           { while(o1!=o2) { ramie1_ruch.push_back(*o1); o1++; }
           }
       robot1R(const robot1R &r) 
           : robot(r.nr_)
           {int i=0; 
            for(;i<r.ramie1_ruch.size(); i++) 
                 ramie1_ruch.push_back(r.ramie1_ruch[i]); 
           }
       virtual ~robot1R() 
           { ramie1_ruch.clear(); 
           cout << "dR1" << endl;
           }    
       virtual void wyswietl();  
};

class robot2R : public robot1R {
protected:
          vector<operacja> ramie2_ruch;
public:
       robot2R(
               const unsigned &nr=0, const operacja *o1, const operacja *o2, 
               const operacja *o3, const operacja *o4      
               )
           :  robot1R(nr, o1, o2)
           {  while(o3!=o4) { ramie2_ruch.push_back(*o3); o3++; }
           }
       virtual ~robot2R() 
           { ramie2_ruch.clear(); 
            cout << "dR2" << endl;
           }
           
       virtual void wyswietl();         
};


void robot1R::wyswietl(){ 
    robot::wyswietl(); cout << "Ramie pierwsze\n";
    for(int i=0, l=ramie1_ruch.size(); i<l; i++) 
            cout << '\t'
                 << ramie1_ruch[i].ret_kierunek()
                 << ramie1_ruch[i].ret_rotacja()
                 << endl;                        
}

void robot2R::wyswietl(){ 
    robot1R::wyswietl();
    cout << "\tDrugie ramie\n";
    for(int i=0, l=ramie2_ruch.size(); i<l; i++) 
            cout << '\t'
                 << ramie2_ruch[i].ret_kierunek()
                 << ramie2_ruch[i].ret_rotacja()
                 << endl;                        
}  

void wykonaj(robot **poczatek, robot **koniec){
     int i=0, l=koniec - poczatek;
     for(; i<l; i++) 
           poczatek[i]->wyswietl();   
}

int main(int argc, char *argv[])
{
operacja o[] = {
operacja("w lewo", 12), operacja("obrot", 8),
operacja("w gore", 32), operacja("obrot", 10),
operacja("w prawo", 5), operacja("w dol", 25),
operacja("obrot", 32), operacja("w gore", 21),
operacja("obrot", 11), operacja("w prawo", 6)
};


robot* linia[] = {
new podajnik(0), new robot1R(1, o, o+3),
new podajnik(2), new robot2R(3, o+2, o+5, o+3, o+6),
new podajnik(4), new robot2R(5, o, o+4, o+2, o+6),
new podajnik(6), new robot1R(7, o+7, o+10),
new podajnik(8)
};
wykonaj(linia, linia+9);
for(int i=0; i<9; i++)  delete linia[i];
return 0;   
}


komunikatpr

#include <iostream>
using namespace std;

class komunikator 
{
	protected:
	string *nazwa;
	int liczba;
	
	public:
int liczba_obiektow ;

	komunikator(): nazwa(new string("brak komunikatu")), liczba (0){}
	komunikator(const string &a1, const int &a2): nazwa(new string(a1)), liczba (a2) {}
	komunikator(const string &a1): nazwa(new string(a1)) {}
	komunikator(const komunikator&kom): nazwa (new string (*kom.nazwa)), liczba (kom.liczba){}
	
	virtual void pokaz (ostream &out) const  =0;
	
	string * operator += (string a1) 
{
	*nazwa +=a1;
	 return nazwa;
}



};
ostream&operator<< (ostream&out, komunikator&k)
{
	k.pokaz(out);
	return out;
}
class k1 :public komunikator
{
	public:
	k1(){}
	k1(const string& a1): komunikator(a1) {}
	
	void pokaz (ostream &out) const
	{
	out << *nazwa << endl ;
	}
friend k1 &operator +=(string a, k1&aa);


};



class k2 :public komunikator
{
	public:
	k2() {}
	k2 (const string &a1, const int& a2): komunikator(a1,a2) {}
	
	void pokaz (ostream &out) const
	{
	out << *nazwa << " "<<liczba <<endl;
	}
};
int main () 
{
	
	const k1 koniec ("Koniec komunikator");
	komunikator*linia [5];
	linia [0] = new k1 ("Temparatury powietrza");
	linia [1] = new k2 ("Częstochowa" , -5);
	linia [2] = new k1 ("Opady sniegu");
	linia [3] = new k2 ("Katowice", 10);
	linia [4] = new k1 (koniec);
	
	for (int i=0; i<5;++i)
	{
		cout << *linia [i];
	}
	
	cout <<"**********************3************************\n";
	*linia [0]+=" [oC]: ";
	*linia [2]+=" [cm]: ";
	
	for (int i=0; i<5;++i)
	{
		cout << *linia [i];
		delete linia [i];
	}

	cout <<"**********************4************************\n";
	cout << "Liczba dzialajacych komunikatow : ";
		//<< komunikator::liczba_obiektow << "\n";
	linia [0] = new k1 ("Temparatury powietrza");
	linia [1] = new k2 ("Częstochowa" , -5);
	linia [2] = new k1 ("Opady sniegu");
	linia [3] = new k2 ("Katowice", 10);
	linia [4] = new k1 (koniec);
	
	cout << "Liczba dzialajacych komunikatow : ";
		//<< komunikator::liczba_obiektow << "\n";
cout <<"**********************5************************\n";
	return 0;
}

przedmiot

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

class Przedmiot{
	string _przedmiot;
	int _ocena;
	public:
		string &przedmiot() {return _przedmiot;}
		const string &przedmiot() const {return _przedmiot;}
		int &ocena() {return _ocena;}
		const int &ocena() const {return _ocena;}
	Przedmiot()
	{
		_ocena=0;
	}	
	
	Przedmiot (string przedmiot,int ocena)
	{
		_przedmiot=przedmiot;
		_ocena=ocena;
	}
	
	
		
	
};

ostream & operator << (ostream & out, Przedmiot&prz)
{
	out<<prz.przedmiot()<<" "<<prz.ocena()<<endl;
	return out;
}


class Student{
	string _imie,_nazwisko;
	int _wiek;
	Przedmiot *_przedmiot;
	
	public:
		
		string &imie() {return _imie;}
		const string &imie() const {return _imie;}
		string &nazwisko() {return _nazwisko;}
		const string &nazwisko() const {return _nazwisko;}
		int &wiek() {return _wiek;}
		const int &wiek() const {return _wiek;}
		Przedmiot &prz() {return *_przedmiot;}
		const Przedmiot &prz() const {return *_przedmiot;}
		
		Student()
		{
			_wiek=0;
			_przedmiot = new Przedmiot;
		}
		
		
		Student (string imie,string nazwisko,int wiek,const Przedmiot &prz)
		{
			_imie=imie;
			_nazwisko=nazwisko;
			_wiek=wiek;
			_przedmiot = new Przedmiot;
			*_przedmiot=prz;
		}
		
		//kopiujący
		Student (const Student &p)
		{
			if(&p !=this)
			{
			
			_imie=p._imie;
			_nazwisko=p._nazwisko;
			_wiek=p._wiek;
			*_przedmiot=*p._przedmiot;
		}
		
		
		}
		//przypisania
		Student &operator =(const Student &s)
		{
			if(&s !=this)
			{
			
			_imie=s._imie;
			_nazwisko=s._nazwisko;
			_wiek=s._wiek;
			*_przedmiot=*s._przedmiot;
		}
		return *this;
		}
		
	//destruktor
		
		~Student()
	{
		delete _przedmiot;
	}
	
};

ostream & operator << (ostream& out, const Student&t)
{
	out<<t.imie()<<" "<<t.nazwisko()<<" "<<t.wiek()<<" "<<t.prz()<<endl;
	return out;
}


int main()
{
	Przedmiot *kop= new Przedmiot ("Matematyka",5);
	cout<<*kop;
	Przedmiot st1(*kop);
	cout<<st1;

	Student s1("Jan","Kowalski",2,*kop);
	cout<<endl<<s1;
	
	return 0;
}

OSOBA KOLOS PACZKA
#include <iostream>

using namespace std;
//-------------------------------------------------------------------------------------------------------
class Paczka
{

public:

    Paczka():m_adres("BRAK"), m_wartosc(0.0){}
    Paczka(const string &adress, float value):m_adres(adress), m_wartosc(value){}
    //
    string& adres () { return m_adres; }
    float& wartosc () { return m_wartosc; }
    const string& adres () const { return m_adres; }
    const float& wartosc () const { return m_wartosc; }
    //
    friend ostream& operator<<(ostream& out, const Paczka& packet);

protected:
private:

    string m_adres;
    float m_wartosc;

};
//
ostream& operator<<(ostream& out, const Paczka& packet)
{
    return out << "ADRES: " <<  packet.m_adres << '\n'
               << "WARTOSC: " << packet.m_wartosc << '\n';
}
//------------------------------------------------------------------------------------------------------
class Osoba
{

public:

    Osoba():m_imie("BRAK"), m_nazwisko("BRAK"){}
    Osoba(const string& name, const string& surname):m_imie(name), m_nazwisko(surname){}
    //
    string& imie () { return m_imie; }
    string& nazwisko() { return m_nazwisko; }
    const string& imie () const { return m_imie; }
    const string& nazwisko() const { return m_nazwisko; }
    //
    bool operator==(const Osoba& person) const;
    friend ostream& operator<<(ostream& out, const Osoba& person);

protected:

    string m_imie;
    string m_nazwisko;

private:

};
//
bool Osoba::operator==(const Osoba& person) const
{
    if((m_imie == person.m_imie) && (m_nazwisko == person.m_nazwisko)) return true;
    else return false;
}
//
ostream& operator<<(ostream& out, const Osoba& person)
{
    return out << "IMIE: " << person.m_imie << '\n'
               << "NAZWISKO: " << person.m_nazwisko << '\n';
}
//------------------------------------------------------------------------------------------------------
class Kurier : public Osoba
{

public:

    Kurier():Osoba(), m_rozmiar(0), m_paczki(nullptr){}
    Kurier(const Paczka *p, const Paczka *k);
    Kurier(const Kurier &courier);
    Kurier& operator=(const Kurier &courier);
    ~Kurier() { delete [] m_paczki; }
    //
    const Kurier operator+(const Paczka& packet) const;
    Paczka& operator[] (size_t i);
    const Paczka& operator[] (size_t i) const;
    //
    double wartosc() const;

protected:
private:

    size_t m_rozmiar;
    Paczka *m_paczki;

};
//
Kurier::Kurier(const Paczka *p, const Paczka *k)
 :Osoba(), m_rozmiar((k - p > 0) ? k - p : 0), m_paczki(m_rozmiar ? new Paczka[m_rozmiar] : nullptr)
 {
     for(size_t i = 0; i < m_rozmiar; ++i)
     {
         m_paczki[i] = p[i];
     }
 }
//
double Kurier::wartosc() const
{
    double value = 0;
    for(size_t i = 0; i < m_rozmiar; ++i)
    {
        value += m_paczki[i].wartosc();
    }

    return value;
}
//
Kurier::Kurier(const Kurier &courier)
:Osoba(courier), m_rozmiar(courier.m_rozmiar), m_paczki(m_rozmiar ? new Paczka[m_rozmiar] : nullptr)
{
     for(size_t i = 0; i < m_rozmiar; ++i)
     {
         m_paczki[i] = courier.m_paczki[i];
     }
}
//
Kurier& Kurier::operator=(const Kurier& courier)
{
    if(this != &courier)
    {
        Osoba::operator=(courier);
        m_rozmiar = courier.m_rozmiar;
        delete [] m_paczki;
        m_paczki = new Paczka[m_rozmiar];
        for(size_t i = 0; i < m_rozmiar; ++i)
        {
            m_paczki[i] = courier.m_paczki[i];
        }
    }

    return *this;
}
//
const Kurier Kurier::operator+(const Paczka& packet) const
{
    size_t tmp_roz = m_rozmiar + 1;
    Paczka *tmp = new Paczka[tmp_roz];
    for(size_t i = 0; i < tmp_roz - 1; ++i)
    {
        tmp[i] = m_paczki[i];
    }
    tmp[tmp_roz - 1] = packet;

    return Kurier(tmp, tmp + tmp_roz);
}
//
Paczka& Kurier::operator[] (size_t i)
{
    if(i > (m_rozmiar - 1)) throw 1;
    else return m_paczki[i];
}
//
const Paczka& Kurier::operator[] (size_t i) const
{
    if(i > (m_rozmiar - 1)) throw 1;
    else return m_paczki[i];
}
//-------------------------------------------------------------------------------------------------------
int main()
{

  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 << endl;

      Osoba o3;
      cout << "---- 4 ----" << endl;
      cout << o3 << endl;

      o3 = o2;
      cout << "---- 5 ----" << endl;
      cout << o3 << endl;
  }

  cout << "---- 6 ----" << endl;
  cout << o1 << endl;

  Kurier k1(p, p + 3);
  cout << "---- 7 ----" << endl;
  cout << k1.wartosc() << endl << endl;

  Kurier k2;
  cout << "---- 8 ----" << endl;
  cout << k2.wartosc() << endl << endl;

  {
    Kurier k3(k1);
    cout << "---- 9 ----" << endl;
    cout << k3.wartosc() << endl << endl;

    k2 = k3;
    cout << "---- 10 ----" << endl;
    cout << k2.wartosc() << endl << endl;

    k1 = k1 + p[4];
    k1 = k1 + p[5];

    cout << "---- 11 ----" << endl;
    cout << k1.wartosc() << endl << endl;
  }

  cout << "---- 12 ----" << endl;
  cout << k2.wartosc() << endl << endl;

  try{
    Kurier k4(p, p + 3);
    cout << "---- 13 ----" << endl;
    for(int i=0; i<10; ++i){
      cout << k4[i] << ",";
    }
    cout << endl;
  }
  catch(...){
    cout << "---- 14 ----" << endl;
    cout << "Wyjatek" << endl;
  }

    return 0;
}


Copyrights 2014-2020 © Wklejaj.pl Wszelkie prawa zastrzeżone.