ena_m BiH
Član broj: 240982 Poruke: 8 *.tel.net.ba.
|
ima nekih gresaka jos u kodu al mi najvise stvara problem to sto mi javlja da su mi brojnik i nazivnik private, a moram doci do njih, a evo koda:
int nzd(int brojnik, int nazivnik)
{
int ostatak=1;
while (ostatak != 0)
{
ostatak=brojnik%nazivnik;
brojnik=nazivnik;
nazivnik=ostatak;
}
return brojnik;
}
//osnovna klasa
class Razlomak {
int brojnik;
int nazivnik;
public:
Razlomak () { brojnik=0; nazivnik=1; }
Razlomak ( int cijeli ) { Razlomak::brojnik=cijeli; Razlomak::nazivnik=1;}
Razlomak ( int br, int naz ) { brojnik = br; nazivnik = naz;}
void ispis ()const;
void pojednostavi();
friend Razlomak operator + (Razlomak razlomak1, Razlomak razlomak2)
{return Razlomak(razlomak1.brojnik*razlomak2.nazivnik + razlomak2.brojnik*razlomak1.nazivnik, razlomak1.nazivnik*razlomak2.nazivnik);}
friend Razlomak operator - (Razlomak razlomak1, Razlomak razlomak2)
{return Razlomak(razlomak1.brojnik*razlomak2.nazivnik - razlomak2.brojnik*razlomak1.nazivnik,razlomak1.nazivnik*razlomak2.nazivnik);}
friend Razlomak operator * (Razlomak razlomak1, Razlomak razlomak2)
{return Razlomak (razlomak1.brojnik * razlomak2.brojnik,razlomak1.nazivnik * razlomak2.nazivnik);}
friend Razlomak operator / (Razlomak razlomak1, Razlomak razlomak2)
{return Razlomak (razlomak1.brojnik * razlomak2.nazivnik,razlomak1.nazivnik * razlomak2.brojnik);}
friend bool operator == (Razlomak&, Razlomak&);
friend ostream& operator << (ostream&, Razlomak);
friend istream& operator >> (istream&, Razlomak&);
/* void doubleUrazlomak(double){}
friend bool operator < (Razlomak&, Razlomak&) {}
friend bool operator > (Razlomak&, Razlomak&) {}
friend bool operator <= (Razlomak&, Razlomak&) {}
friend bool operator >= (Razlomak&, Razlomak&) {}*/
~Razlomak(){cout << endl<< " " << endl;};
};
void Razlomak::ispis()const
{
cout << brojnik << "/"<< nazivnik;
}
void Razlomak::pojednostavi()
{
int ostatak=nzd(brojnik,nazivnik);
brojnik=brojnik/ostatak;
nazivnik=nazivnik/ostatak;
}
bool operator == (Razlomak &razlomak1, Razlomak &razlomak2)
{
if (razlomak1.brojnik != razlomak2.brojnik)
return false;
else if (razlomak1.nazivnik != razlomak2.nazivnik)
return false;
else
return true;
}
ostream& operator << (ostream &os, Razlomak razlomak1)
{
cout << "raz7 = ";
os << razlomak1.brojnik << "/" << razlomak1.nazivnik << endl;
return os;
}
istream& operator >> (istream &is, Razlomak &razlomak1)
{
is >> razlomak1.brojnik >> razlomak1.nazivnik;
return is;
}
//izvedena klasa
class mojRazlomak : public Razlomak
{
public:
void doubleUrazlomak(double dec);
friend bool operator < (Razlomak&, Razlomak&);
friend bool operator > (Razlomak&, Razlomak&);
friend bool operator <= (Razlomak&, Razlomak&);
friend bool operator >= (Razlomak&, Razlomak&);
~mojRazlomak(){};
};
void doubleUrazlomak(double dec)
{
int sprintf(char *dec);
}
bool operator < (Razlomak razlomak1, Razlomak razlomak2)
{
if (razlomak1.brojnik/razlomak1.nazivnik < razlomak2.brojnik/razlomak2.nazivnik)
return true;
else
return false;
}
bool operator > (Razlomak razlomak1, Razlomak razlomak2)
{
if (razlomak1.brojnik/razlomak1.nazivnik > razlomak2.brojnik/razlomak2.nazivnik)
return true;
else
return false;
}
bool operator <= (Razlomak razlomak1, Razlomak razlomak2)
{
if (razlomak1.brojnik/razlomak1.nazivnik <= razlomak2.brojnik/razlomak2.nazivnik)
return true;
else
return false;
}
bool operator >= (Razlomak razlomak1, Razlomak razlomak2)
{
if (razlomak1.brojnik/razlomak1.nazivnik >= razlomak2.brojnik/razlomak2.nazivnik)
return true;
else
return false;
}
int main(void)
{
Razlomak raz1(9,2);
Razlomak raz2(5,2);
Razlomak raz3,raz4,raz5,raz6,raz7,raz8,raz9,raz10,raz11;
cout<<"raz1 = ";
raz1.ispis();
cout<<endl;
cout<<"raz2 = ";
raz2.ispis();
cout<<endl;
cout<<"unosenje brojnika i nazivnika za operatore ostream i istream:"<<endl;
cin>>raz7;
cout<<raz7;
cout<<"preoptereceni operator + prije skracivanja:";
raz3=raz1+raz2;
raz3.ispis();
cout<<endl;
cout<<"preoptereceni operator + poslije skracivanja:"<<endl<<endl;
raz3.pojednostavi();
raz3.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator - prije skracivanja:";
raz4=raz1-raz2;
raz4.ispis();
cout<<endl;
cout<<"preoptereceni operator - poslije skracivanja:"<<endl<<endl;
raz4.pojednostavi();
raz4.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator * prije skracivanja:";
raz5=raz1*raz2;
raz5.ispis();
cout<<endl;
cout<<"preoptereceni operator * poslije skracivanja:"<<endl<<endl;
raz5.pojednostavi();
raz5.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator / prije skracivanja:";
raz6=raz1/raz2;
raz6.ispis();
cout<<endl;
cout<<"preoptereceni operator / poslije skracivanja:"<<endl<<endl;
raz6.pojednostavi();
raz6.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator + uz konverziju tipa int u tip razlomak, prije skracivanja:";
raz8=raz1+Razlomak(5);
raz8.ispis();
cout<<endl;
cout<<"preoptereceni operator + uz konverziju tipa int u tip razlomak, poslije skracivanja:"<<endl<<endl;
raz8.pojednostavi();
raz8.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator - uz konverziju tipa int u tip razlomak, prije skracivanja:";
raz9=raz1-Razlomak(5);
raz9.ispis();
cout<<endl;
cout<<"preoptereceni operator - uz konverziju tipa int u tip razlomak, poslije skracivanja:"<<endl<<endl;
raz9.pojednostavi();
raz9.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator * uz konverziju tipa int u tip razlomak, prije skracivanja:";
raz10=raz1*Razlomak(5);
raz10.ispis();
cout<<endl;
cout<<"preoptereceni operator * uz konverziju tipa int u tip razlomak, poslije skracivanja:"<<endl<<endl;
raz10.pojednostavi();
raz10.ispis();
cout<<endl<<endl;
cout<<"preoptereceni operator / uz konverziju tipa int u tip razlomak, prije skracivanja:";
raz11=raz1/Razlomak(5);
raz11.ispis();
cout<<endl;
cout<<"preoptereceni operator / uz konverziju tipa int u tip razlomak, poslije skracivanja:"<<endl<<endl;
raz11.pojednostavi();
raz11.ispis();
cout<<endl<<endl;
cout<<"jednakost razlomaka raz1 i raz2 (ispisuje 1-ako su jednaki, 0-ako nisu):"<<endl<<endl;
raz1.pojednostavi();
raz2.pojednostavi();
cout<<(raz1==raz2)<<endl<<endl;
mojRazlomak razlomak,razlomak1,razlomak2;
razlomak.doubleUrazlomak(3.14);
cout << "razlomak1 je manji od razlomka2 (ispisuje 1 ako jest, a 0 ako nije) ";
cout << (razlomak1<razlomak2)<<endl<<endl;
cout << "razlomak1 je veci od razlomka2 (ispisuje 1 ako jest, a 0 ako nije) ";
cout << (razlomak1>razlomak2)<<endl<<endl;
cout << "razlomak1 je manji ili jednak razlomku2 (ispisuje 1 ako jest, a 0 ako nije) ";
cout << (razlomak1<=razlomak2)<<endl<<endl;
cout << "razlomak1 je veci ili jednak razlomku2 (ispisuje 1 ako jest, a 0 ako nije) ";
cout << (razlomak1>=razlomak2)<<endl<<endl;
system("pause");
return 0;
}
|