GRUPA 1

Zadatak #1

#include <iostream>

using namespace std;

class Proizvod

{

private:

string Naziv;

double Cijena;

static int BrojProizvoda; x p: Deklarisati statički cjelobrojni podatak član BrojProizvoda.

public:

Proizvod(){BrojProizvoda++;}

~Proizvod(){BrojProizvoda--;}

static int GetBrojProizvoda(){return BrojProizvoda;}

};

int Proizvod::BrojProizvoda=0 ; x p: Inicijalizovati nulom vrijednsot statičkog podatka člana BrojProizvoda.

int main()

{

Proizvod p1, p2;

Proizvod p3(p1);

cout<<"Ukupan broj proizvoda je: "<<\

p2.GetBrojProizvoda(); x p: Pozvati funkciju GetBrojProizvoda preko objekta p2.

return 0;

}

<<"Ukupan broj proizvoda je:2" x p: Šta će biti ispisano na ekranu nakon izvršenja koda?

Zadatak #2

#include <iostream>

using namespace std;

class Proizvod

{

private:

string Naziv;

double Cijena;

public:

Proizvod(){;}

Proizvod(string, double);

~Proizvod(){}

friend void KorigujCijenu(Proizvod,double); x p: Deklarisati prijateljsku funkciju KorigujCijenu tipa void koja koriguje cijenu proizvoda na osnovu koeficijenta korekcije (procenta) koji se prosljeđuje kao argument funkciji.

};

Proizvod::Proizvod(string s, double d)

{

Naziv = s; Cijena = d;

}

void KorigujCijenu(Proizvod p,double x){cout<<”Nova cijena je “<<(1+x/100)*p.Cijena ;} x p: Realizovati funkciju KorigujCijenu. Funkcija ispisuje na ekranu novu cijenu proizvoda.

int main()

{

double k;

Proizvod p1(“sporet”,400); x p: Deklarisati objekat p1 klase Proizvod čiji naziv je sporet, a cijena 400.

cout<<"Koliko procenata se mijenja cijena?"<<endl;

cin>>k;

KorigujCijenu(p1,k); xp: Korigovati cijenu proizvoda p1 za procenat k koristeći funkciju KorigujCijenu.

return 0;

}

Zadatak #3

#include <iostream>

using namespace std;

class Proizvod

{

protected: x p: Deklarisati zaštićene podatke članove Naziv i Cijena.

string Naziv;

double Cijena;

public:

Proizvod(){}

~Proizvod(){}

virtual void PrintCijena() = 0;

};

class Televizor: public Proizvod

{

public:

Televizor(){Naziv = "Televizor";}

Televizor(double d){Naziv = "Televizor"; Cijena = d;}

~Televizor(){}

void PrintCijena(){cout<<”Cijena televizora je “<<Cijena<<endl ;} x p: Realizovati funkciju PrintCijena koja na ekranu ispisuje cijenu televizora u formatu: Cijena televizora je n, gdje n predstavlja cijenu proizvoda

};

int main()

{

Proizvod *t1=new Televizor(500); x p: Deklarisati pokazivač t1 na objekat klase Proizvod koji pokazuje na objekat klase Televizor i zadati mu cijenu 500.

t1-> PrintCijena(); return 0;

}

zadatak #4

#include <iostream>

#include <fstream>

#include <iomanip>

using namespace std;

int main()

{

char znak;

char ImeFajla[81];

cout << "Unesite ime fajla" << endl;

cin.getline(ImeFajla, 81);

fstream f1(“fajl.txt”); x p: Deklarisati objekat f1 klase fstream. Otvoriti fajl pod nazivom fajl.txt u binarnom modu.

if(f1.is_open())

{

f1.seekg(0,ios::beg);

znak = f1.get();

cout << f1.tellg() << ":" << znak << endl;

f1.close(); x p: Zatvoriti fajl.

}

else

cout << "GRESKA: Nemoguce otvoriti fajl" << endl;

return 0;

}

GRUPA 2

Zadatak #1

#include <iostream>

using namespace std;

class Kvadrat

{

private:

int a;

const int max_a; x p: Deklarisati konstantni cjelobrojni podatak član max_a.

public:

Kvadrat():max_a(1000){}

Kvadrat(int);

int GetMax()const{return max_a;}

}

Kvadrat::Kvadrat(int x):max_a(1000){a=x;} x p: Realizovati konstruktor sa jednim argumentum koji stranicu kvadrata a inicijalizuje na tu vrijednost, do max_a inicijalizuje na 1000.

int main()

{

Kvadrat k1;

cout<<"max= "<<k1.GetMax()<<endl; x p: Pozvati funkciju GetMax za objekat k1.

return 0;

}

Zadatak #2

#include <iostream>

using namespace std;

class Kvadrat

{

private:

int a;

public:

Kvadrat(){}

Kvadrat(int i){ a = i; }

~Kvadrat(){}

friend void Povrsina(Kvadrat ); x p: Deklarisati prijateljsku funkciju Povrsina tipa void koja na ekranu ispisuje povrsinu kvadrata stranice a.

};

void Povrsina(Kvadrat x){cout<<”Povrsina je ”<<x.a*x.a<<endl ;} x p: Realizovati funkciju Povrsina.

int main()

{

Kvadrat k1(10); x p: Deklarisati objekat k1 klase Kvadrat i inicijalizovati podatak član a na 10.

Povrsina(k1); x p: Pozvati funkciju Povrsina za objekat k1.

return 0;

}

Zadatak #3

#include <iostream>

using namespace std;

class GeometrijskaFigura

{

protected: string Naziv; x p: Deklarisati zaštićeni podatak član Naziv.

public:

virtual void PrintPovrsina()=0;

};

class Kvadrat:public GeometrijskaFigura

{

private:

int stranica;

public:

Kvadrat(){Naziv = "Kvadrat"; }

Kvadrat(int i){ Naziv = "Kvadrat"; stranica = i; }

~Kvadrat(){}

void PrintPovrsina(){cout<<“Povrsina kvadrata je ” <<stranica*stranica<<endl;} x p: Realizovati virtuelnu funkciju PrintPovrsina koja ispisuje na ekranu povrsinu kvadarta u formatu: Povrsina kvadrata je n, pri čemu je n vrijednost površine kvadrata.

};

int main()

{

GeometrijskaFigura *k1=new Kvadrat(10); x p: Deklarisati pokazivač k1 na objekat klase GeometrijskaFigura koji pokazuje na objekat klase Kvadrat. Inicijalizovati stranicu kvadrata na 10.

k1->PrintPovrsina(); x p: Pozvati funkciju PrintPovrsina za objekat na koji pokazuje k1.

return 0;

}

Zadatak #4

#include <iostream>

#include <fstream>

#include <iomanip>

using namespace std;

int main()

{

char znak;

char ImeFajla[81];

cout << "Unesite ime fajla" << endl;

cin.getline(ImeFajla, 81);

fstream f1(“fajl.txt”,binary); x p: Deklarisati objekat f1 klase fstream. Otvoriti fajl pod nazivom fajl.txt u binarnom modu

if(f1.is_open())

{

f1.seekg(2,ios::beg);

znak = f1.get();

znak = f1.get();

cout << f1.tellg() << ":" << znak << endl;

f1.close(); x p: Zatvoriti fajl.

}

else

cout << "GRESKA: Nemoguce otvoriti fajl" << endl;

return 0;

GRUPA 3

Zadatak #1

#include <iostream>

using namespace std;

class Kocka

{

private:

int stranica;

const int maks; x p: Deklarisati konstantni cjelobrojni podatak član maks

public:

Kocka():maks(1000){}

Kocka(int x):maks(1000){stranica=x;} x p: Realizovati konstruktor sa jednim argumentum koji stranicu kocke inicijalizuje na tu vrijednost, dok maks inicijalizuje na 1000

~Kocka(){}

int GetMaks(){ return maks; }

};

int main()

{

Kocka k1(10);

cout<<"Maksimalna stranica: "<< k1.GetMaks() <<endl; x p: Pozvati funkciju GetMaks za objekat k1

return 0;

}

Zadatak #2

#include <iostream>

using namespace std;

class Kocka

{

private:

int stranica;

public:

Kocka(){}

Kocka(int i){ stranica = i; }

~Kocka(){}

friend void Zapremina(Kocka,int &); x p: Deklarisati prijateljsku funkciju Zapremina tipa void koja izračunava zapreminu kocke i rezultat vraća preko svog argumenta

};

void Zapremina(Kocka k,int &x){x= k.stranica* k.stranica* k.stranica;} x p: Realizovati funkciju Zapremina

int main()

{

Kocka k1(10);

int z;

Zapremina(k1,z); x p: Pozvati funkciju Zapremina za objekat k1. Zapreminu kocke upisati u cjelobrojnu promjenljivu z.

cout<<”Zapremina kocke je “<<z<<endl; x p: Prikazati na ekranu zapreminu kocke u formatu: Zapremina kocke je n, gdje je n vrijednost zapremine kocke k1.

return 0;

}

Zadatak #3

#include <iostream>

using namespace std;

class GeometrijskoTijelo

{

protected:

string Naziv; x p: Deklarisati zaštićeni podatak član Naziv.

public:

virtual void PrintZapremina()=0;

};

class Kocka:public GeometrijskoTijelo

{

private:

int stranica;

public:

Kocka(){Naziv = "Kocka"; }

Kocka(int i){ Naziv = "Kocka"; stranica = i; }

~Kocka(){}

void PrintZapremina(){cout<<”Zapremina kocke je “<<stranica* stranica* stranica;} x p: Realizovati virtuelnu funkciju PrintZapremina koja ispisuje na ekranu zapreminu kocke u formatu: Zapremina kocke je n, pri čemu je n vrijednost zapremine kocke

};

int main()

{

GeometrijskoTijelo *k1=new Kocka(10); x p: Deklarisati pokazivač k1 na objekat klase GeometrijskoTijelo koji pokazuje na objekat klase Kocka. Inicijalizovati stranicu kocke na 10.

k1->PrintZapremina(); x p: Pozvati funkciju PrintZapremina za objekat na koji pokazuje k1.

return 0;

}

Zadatak #4

#include <iostream>

#include <fstream>

#include <iomanip>

using namespace std;

int main()

{

char znak;

char ImeFajla[81];

cout << "Unesite ime fajla" << endl;

cin.getline(ImeFajla, 81);

fstream f1(“fajl.txt”); x p: Deklarisati objekat f1 klase fstream. Otvoriti fajl pod nazivom fajl.txt u binarnom modu.

if(f1.is_open())

{

f1.seekg(2,ios::beg);

znak = f1.get();

znak = f1.get();

cout << f1.tellg() << ":" << znak << endl;

f1.close(); x p: Zatvoriti fajl.

}

else

cout << "GRESKA: Nemoguce otvoriti fajl" << endl;

return 0;

}

GRUPA 4

Zadatak #1

#include <iostream>

using namespace std;

class Vozilo

{

private:

string Naziv;

double Cijena;

static int Broj; x p: Deklarisati statički cjelobrojni podatak član Broj.

public:

Vozilo(){ Broj++; }

~Vozilo(){ Broj--; }

static int GetBroj(){return Broj;} x p: Realizovati statičku funkciju GetBroj koja daje vrijednost podatka člana Broj.

};

int Vozilo::Broj = 0;

int main()

{

Vozilo v1, v2, v3;

Vozilo v4(v1);

cout<<”Ukupno vozila “<<v2.GetBroj(); x p: Pozvati funkciju GetBroj preko objekta v2 i njen rezultat prikazati na ekranu u formatu: Ukupno vozila n, gdje je n rezultat funkcije GetBroj.

return 0;

}

Zadatak #2

#include <iostream>

using namespace std;

class Vozilo

{

private:

string Naziv;

double Cijena;

public:

Vozilo(){}

Vozilo(double d){Cijena = d;}

~Vozilo(){}

friend double NovaCijena(Vozilo,double ); x p: Deklarisati prijateljsku funkciju NovaCijena koja koriguje cijenu vozila na osnovu koeficijenta korekcije (procenta) koji se prosljeđuje kao argument funkciji. Funkcija vraća novu cijenu vozila

};

double NovaCijena(Vozilo v,double x){return (1+x/100)*v.Cijena;} x p: Realizovati funkciju NovaCijena.

int main()

{

double k = 10.0;

Vozilo v1(8000);

cout<<"Nova cijena: "<<NovaCijena(v1,k) <<endl;

return 0;

}

Zadatak #3

#include <iostream>

using namespace std;

class Vozilo

{

protected:

string Naziv ; x p: Deklarisati zaštićene podatke članove Naziv i Cijena.

double Cijena;

public:

Vozilo(){}

~Vozilo(){}

virtual void Print() = 0;

};

class Automobil:public Vozilo

{

public:

Automobil(){ Naziv = "Automobil"; }

Automobil(double d){ Naziv = "Automobil"; Cijena = d;}

~Automobil(){}

void Print(){cout<<”Cijena automobile je “<<Cijena;} x p: Realizovati funkciju Print koja na ekranu ispisuje cijenu automobila u formatu: Cijena automobila je n, gdje n predstavlja cijenu vozila.

};

int main()

{

Vozilo *v1=new Automobil(8000); x p: Deklarisati pokazivač v1 na objekat klase Vozilo koji pokazuje na objekat klase Automobil i zadati mu cijenu 8000.

v1->Print(); x p: Pozvati funkciju Print za objekat na koji pokazuje v1.

return 0;

}

Zadatak #4

#include <iostream>

#include <fstream>

#include <iomanip>

using namespace std;

int main()

{

char znak;

char ImeFajla[81];

cout << "Unesite ime fajla" << endl;

cin.getline(ImeFajla, 81);

fstream f1(“fajl.txt”); x p: Deklarisati objekat f1 klase fstream. Otvoriti fajl pod nazivom fajl.txt u binarnom modu.

if(f1.is_open())

{

f1.seekg(5,ios::beg);

znak = f1.get();

znak = f1.get();

cout << f1.tellg() << ":" << znak << endl;

f1.close(); x p: Zatvoriti fajl.

}

else

cout << "GRESKA: Nemoguce otvoriti fajl" << endl;

return 0;

}