📄 分数.cpp
字号:
#include <iostream.h>
class Rational
{private:
int a[2];
int b[2];
int c[2];
float x,y,z;
public:
Rational();
int u(int m,int n);
void huajian(int *a,int *b);
void add();
void sub();
void set();
void select();
void shucu();
void f_shucu();
~Rational();
};
Rational::Rational()
{
a[0]=a[1]=0;
b[0]=b[1]=0;
c[0]=c[1]=0;
}
int Rational::u(int m,int n)
{
if(n==0)
return m;
else
return u(n,m%n);
}
void Rational::huajian(int *a,int *b)
{
int v;
v=u(*a,*b);
*a=*a/v;
*b=*b/v;
}
void Rational::add()
{
if(a[1]==b[1])
{
c[0]=a[0]+b[0];
c[1]=a[1];
huajian(&c[0],&c[1]);
}
else
{
c[1]=a[1]*b[1];
c[0]=a[0]*b[1]+b[0]*a[1];
huajian(&c[0],&c[1]);
}
}
void Rational::sub()
{
if(a[1]==b[1])
{
c[0]=a[0]-b[0];
c[1]=a[1];
}
else
{
c[1]=a[1]*b[1];
c[0]=a[0]*b[1]-b[0]*a[1];
huajian(&c[0],&c[1]);
}
}
void Rational::set()
{
cout<<"输入二个分数:"<<endl;
cout<<"第一个分数分子:";
cin>>a[0];
cout<<endl<<"第一个分数分母:";
cin>>a[1];
cout<<endl<<"第二个分数分子:";
cin>>b[0];
cout<<endl<<"第二个分数分母:";
cin>>b[1];
cout<<endl;
huajian(&a[0],&a[1]);
huajian(&b[0],&b[1]);
}
void Rational::select()
{ int h;
cout<<"1.相加<<endl<<2.相减"<<endl;
cin>>h;
if(h!=1&&h!=2)
cout<<"输入错误"<<endl;
else
switch(h)
{ case 1: add ();break;
case 2: sub ();break;
}
}
void Rational::shucu()
{
cout<<endl<<"结果是"<<c[0]<<"/"<<c[1];
}
void Rational::f_shucu()
{
x=float(c[0]);
y=float(c[1]);
z=x/y;
cout<<"结果是"<<z<<endl;
}
Rational::~Rational();
void main()
{
Rational a;
a.set();
a.select() ;
a.shucu();
a.f_shucu();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -