#include #include #include #include #include #include class rationnel { private: int num,denum; public: rationnel() { num=0; denum=1; } rationnel(int a, int b) { num=a; denum=b; } friend ostream & operator<<(ostream & f, rationnel & c) { gotoxy(50,10); cout<>(istream & f, rationnel & c) { int x=30; gotoxy(x,10); cout<<"."; gotoxy(x-2,11); cout<<"----"; gotoxy(x,12); cout<<"."; gotoxy(x,10); cin>>c.num; gotoxy(x,12); cin>>c.denum; return f; } rationnel operator+(rationnel); rationnel operator-(rationnel); rationnel operator*(rationnel); rationnel operator/(rationnel); rationnel operator+=(rationnel); rationnel operator-=(rationnel); rationnel operator*=(rationnel); rationnel operator/=(rationnel); int operator==(rationnel); int operator!=(rationnel); int operator>(rationnel); int operator<(rationnel); rationnel operator>=(rationnel); rationnel operator<=(rationnel); }; rationnel rationnel::operator+(rationnel rati) { rationnel res; res.denum=denum*rati.denum; res.num=(num*rati.denum)+(rati.num*denum); return res; } rationnel rationnel::operator-(rationnel rati) { rationnel res; res.denum=denum*rati.denum; res.num=(num*rati.denum)-(rati.num*denum); return res; } rationnel rationnel::operator*(rationnel rati) { rationnel res; res.denum=denum*rati.denum; res.num=num*rati.num; return res; } rationnel rationnel::operator/(rationnel rati) { rationnel res; res.denum=denum*rati.num; res.num=num*rati.denum; return res; } /* rationnel rationnel::operator+=(rationnel rati) { rationnel res; res.denum=denum*rati.denum; res.num=num*rati.num; return res; } rationnel rationnel::operator+=(rationnel rati) { rationnel res; res.denum=res.denum*rati.denum; res.num=(res.num*rati.denum)+(res.denum*rati.num); return res; } rationnel rationnel::operator-=(rationnel rati) { rationnel res; res.denum=res.denum*rati.denum; res.num=(res.num*rati.denum)-(res.denum*rati.num); return res; } rationnel rationnel::operator*=(rationnel rati) { rationnel res; res.denum=res.denum*rati.denum; res.num=res.num*rati.num; return res; } rationnel rationnel::operator/=(rationnel rati) { rationnel res; res.denum=res.denum*rati.num; res.num=res.num*rati.denum; return res; } int rationnel::operator==(rationnel rati) { if ((num/denum)==(rati.num/rati.denum)) return 1; else return 0; } int rationnel::operator!=(rationnel rati) { if ((num/denum)!=(rati.num/rati.denum)) return 1; else return 0; } int rationnel::operator >(rationne rati) { if ((num/denum)>(rati.num/rati.denum)) return 1; else return 0; } int rationnel::operator<(rationne rati) { if ((num/denum)<(rati.num/rati.denum)) return 1; else return 0; } int rationnel::operator>=(rationne rati) { if ((num/denum)>=(rati.num/rati.denum)) return 1; else return 0; } int rationnel::operator<=(rationne rati) { if ((num/denum)<=(rati.num/rati.denum)) return 1; else return 0; } */ /**** MENU ****/ void menu() {int selec=0;char rep; clrscr(); _setcursortype(_NOCURSOR); do{ if(selec==0) { textcolor(13); textbackground(15); gotoxy(35,12); cprintf("1 OPERATOR +"); } else { textcolor(6); textbackground(0); gotoxy(35,12); cprintf("1 OPERATOR +"); } if(selec==1) { textcolor(13); textbackground(15); gotoxy(35,13); cprintf("2 OPERATOR -"); } else { textcolor(6); textbackground(0); gotoxy(35,13); cprintf("2 OPERATOR -"); } if(selec==2) { textcolor(13); textbackground(15); gotoxy(35,14); cprintf("3 OPERATOR *"); } else { textcolor(6); textbackground(0); gotoxy(35,14); cprintf("3 OPERATOR *"); } if(selec==3) { textcolor(13); textbackground(15); gotoxy(35,15); cprintf("4 OPERATOR /"); } else { textcolor(6); textbackground(0); gotoxy(35,15); cprintf("4 OPERATOR /"); } if(selec==4) { textcolor(13); textbackground(15); gotoxy(35,15); cprintf("5 QUITTER"); } else { textcolor(6); textbackground(0); gotoxy(35,15); cprintf("5 QUITTER"); } switch(rep=getch()){ case '8':{selec--;break;} case '2':{selec++;break;} case 'O' :{if(selec==0) rationnel::operator+(rationnel); if(selec==1) rationnel::operator-(rationnel); if(selec==2) rationnel::operator*(rationnel); if(selec==3) rationnel::operator/(rationnel); if(selec==4) rep='v';break;} } if(selec<0) selec=4; else if(selec>4) selec=0; } while(rep!='v');} void main() { rationnel a; /*a.operator+(3,4);*/ menu(); }