计算机算分数的过程,分数计算器 - C++教室 - C++论坛 - 编程论坛

已结贴√

问题点数:10 回复次数:6

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

分数计算器

#include

using namespace std;

class Fraction

{

private:

int f1;  //分子

int f2;   //分母

public:

Fraction(int i=0,int j=1):f1(i),f2(j){}

void gs()//格式函数

{

int q=f1;

int w=f2;

int p=q/w;

for(;p!=0;)   //辗转相除法求最大公约数

{

int m=q%w;

q=w;

w=m;

p=q/w;

}

f1/= w;

f2/=w;

}

void jiaf(const Fraction &copy)//加法

{

f1=f1*copy.f2+f2*copy.f1;

f2=f2*copy.f2 ;

}

void jianf(const Fraction &copy)//减法

{

f1=f1*copy.f2-f2*copy.f1;

f2=f2*copy.f2;

}

void chengf(const Fraction &copy)//乘法

{

f1*=copy.f1;

f2*=copy.f2;

}

void chuf(const Fraction &copy)//除法

{

f1*=copy.f2;

f2*=copy.f1;

}

void Show()

{

cout<

}

Fraction( const Fraction &cp)  //复制构造函数

{

f1=cp.f1;

f2=cp.f2;

}

~Fraction(){

}

};

int main()

{

void Show();

cout<

int fz1,fm;

cin>>fz1>>fm;

Fraction fz(fz1,fm);

cout<

int fz2,fm2;

cin>>fz2>>fm2;

Fraction fr(fz2,fm2);

Show();

char c1;

cin>>c1;

fz.gs();

fr.gs();

while(c1!='-'&&c1!='+'&&c1!='/'&&c1!='*')

{

Show();

cin>>c1;   //排除出入的符号不是 加减乘除的符号

}

switch(c1)

{

case '+':

fz.jiaf(fr);

break;

case '-':

fz.jianf(fr);

break;

case '*':

fz.chengf(fr);

break;

case '/':

fz.chuf(fr);

break;

}

fz.gs();

cout<

cout<

fz.Show();

return 0;

}

void Show(){

cout<

cout<

cout<

cout<

cout<

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值