ulamki.doc

(32 KB) Pobierz
Jakub Kucharski AiZ A3 79958

Jakub Kucharski AiZ A3 79958

Program Przeciążeń operatorowych ( działania na ułamkach zwykłych )

 

#include<iostream>

#include<conio.h>

 

class ulamek1

{

   int licznik;

   int mianownik;

       public:

           void ustaw(int a,int b)

           {

               licznik=a;

               mianownik=b;

           }

           void pokaz()

           {

               std::cout<<licznik<<"/"<<mianownik;

           }

   friend ulamek1 operator*(ulamek1,ulamek1);

 

};

 

ulamek1 operator*(ulamek1 a, ulamek1 b)

           {

               ulamek1 c;

               c.licznik=a.licznik*b.licznik;

               c.mianownik=a.mianownik*b.mianownik;

               return c;

           }

class ulamek2

{

   int licznik;

   int mianownik;

       public:

           void ustaw(int a,int b)

           {

               licznik=a;

               mianownik=b;

           }

           void pokaz()

           {

               std::cout<<licznik<<"/"<<mianownik;

           }

   friend ulamek2 operator*(ulamek2,ulamek2);

 

};

 

ulamek2 operator*(ulamek2 a, ulamek2 b)

           {

                          ulamek2 c;

                          c.licznik=(a.licznik*b.mianownik)+(a.mianownik*b.licznik);

    c.mianownik=a.mianownik*b.mianownik;

 

              

               return c;

           }

 

class ulamek3

{

   int licznik;

   int mianownik;

       public:

           void ustaw(int a,int b)

           {

               licznik=a;

               mianownik=b;

           }

           void pokaz()

           {

               std::cout<<licznik<<"/"<<mianownik;

           }

   friend ulamek3 operator*(ulamek3,ulamek3);

 

};

 

ulamek3 operator*(ulamek3 a, ulamek3 b)

           {

                          ulamek3 c;

                          c.licznik=(a.licznik*b.mianownik)-(a.mianownik*b.licznik);

    c.mianownik=a.mianownik*b.mianownik;

 

              

               return c;

           }

         

class ulamek4

{

   int licznik;

   int mianownik;

       public:

           void ustaw(int a,int b)

           {

               licznik=a;

               mianownik=b;

           }

           void pokaz()

           {

               std::cout<<licznik<<"/"<<mianownik;

           }

   friend ulamek4 operator*(ulamek4,ulamek4);

 

};

 

ulamek4 operator*(ulamek4 a, ulamek4 b)

           {

               ulamek4 c;

               c.licznik=a.licznik*b.mianownik;

               c.mianownik=a.mianownik*b.licznik;

               return c;

               }

int main()

{

int x,y,w,z,p;

std::cout<<"podaj licznik i mianownik pierwszego ulamka";

std::cin>>x;

std::cout<<"/";

std::cin>>y;

std::cout<<"podaj licznik i mianownik drugiego ulamka";

std::cin>>w;

std::cout<<"/";

std::cin>>z;

std::cout<<"1-mnozenie, 2-dzielenie, 3-dodawanie, 4-odejmowanie";

std::cin>>p;

if(p==1){

ulamek1 a,b,c;

a.ustaw(x,y);

b.ustaw(w,z);

c=a*b;

std::cout<<"wynik mnozenia to:";

c.pokaz();

}

else if(p==4){

ulamek3 a,b,c;

a.ustaw(x,y);

b.ustaw(w,z);

c=a*b;

std::cout<<"wynik odejmowania to:";

c.pokaz();

}

else if(p==2){

ulamek4 a,b,c;

a.ustaw(x,y);

b.ustaw(w,z);

c=a*b;

std::cout<<"wynik dzielenia to:";

c.pokaz();

}         

else if(p==3){

ulamek2 a,b,c;

a.ustaw(x,y);

b.ustaw(w,z);

c=a*b;

std::cout<<"wynik dodawania to:";

c.pokaz();

}

else

std::cout<<"wcisniety niepoprawny klawisz, do widzenia";

getch();

}

...
Zgłoś jeśli naruszono regulamin