Híc mình là Newbie mới học C++ và Class , bài tập đưa ra là tạo Class với nhập hiển thị , cộng và nhân phân số. Với yêu cầu khi hiển thị là phân số tối giản, nếu mẫu số âm thì đổi dấu "-" lên tử .
Code:
#include<iostream.h>
#include<iomanip>
class Fraction
{
private: int a,b;
int UCLN(int a,int b)
{
while(a!=b)
{
if(a>b)a-=b;else b-=a;
};
return a;
}
public:
void getFraction();
void displayFraction();
Fraction add(Fraction);
Fraction mul(Fraction);
Fraction nghichdao();
// void rutgon();
};
void Fraction::getFraction()
{
cout<<"\nNhap vao tu so : ";
cin>>a;
do{cout<<"\nNhap vao mau so : ";
cin>>b ;}
while(b==0);
}
void Fraction::displayFraction()
{
int c=UCLN(a,b);
if(b<0)
cout<<" "<<-a/c<<"/"<<" "<<-b/c<<endl;
else
cout<<" "<<a/c<<"/"<<" "<<b/c<<endl;
}
Fraction Fraction::add(Fraction t)
{
Fraction p;
p.a=a*t.b+b*t.a;
p.b=b*t.b;
return p;
}
Fraction Fraction::mul(Fraction y)
{
Fraction x;
x.a=a*y.a;
x.b=b*y.b;
return x;
}
Fraction Fraction::nghichdao()
{
Fraction p;
p.a=b;p.b=a;
return p;
}
/*void Fraction::rutgon()
{
return c;
}*/
void main()
{
Fraction A,B,C;
cout<<"Nhap Fraction A : ";
A.getFraction();
cout<<"\n Fraction A vua nhap la : ";
//A.rutgon();
A.displayFraction();
cout<<"\n Nhap Fraction B : ";
B.getFraction();
cout<<"\n Fraction vua nhap la : ";
B.displayFraction();
C=A.add(B);
cout<<"\n A + B = ";
C.displayFraction();
C=A.mul(B);
cout<<"\n A * B = ";
C.displayFraction();
C=A.nghichdao();
C.displayFraction();
}