15周任务2

#include <iostream>   
  
class CFraction  
{  
private:  
  
    int nume;  // 分子   
    int deno;  // 分母   
public:  
  
    //构造函数,初始化用   
    CFraction(int nu=0,int de=1): nume(nu), deno(de){};  
    //得到分子、分母   
    int get_nume();  
    int get_deno();  
  
    //加减乘除四则运算   
    CFraction operator + (CFraction &c);  
    CFraction operator - (CFraction &c);  
    CFraction operator * (CFraction &c);  
    CFraction operator / (CFraction &c);  
  
    void simplify();            //  
};
#include "stdafx.h"   
#include "jian1.h"   
  
//得到分子、分母   
int CFraction::get_nume()  
{  
    return nume;  
}  
  
int CFraction::get_deno()  
{  
    return deno;  
}  
      
//加减乘除四则运算   
CFraction CFraction::operator + (CFraction &c)  
{  
    return CFraction (nume * c.deno  + deno * c.nume , deno * c.deno);  
}  
  
CFraction CFraction::operator - (CFraction &c)  
{  
    return CFraction (nume * c.deno  - deno * c.nume , deno * c.deno);  
}  
  
CFraction CFraction::operator * (CFraction &c)  
{  
    return CFraction (nume * c.nume , deno * c.deno);  
}  
  
CFraction CFraction::operator / (CFraction &c)  
{  
    return CFraction (nume * c.deno , deno * c.nume);  
}  
  
  
void CFraction::simplify()          //化简(使分子分母没有公因子)   
{  
    int nu = nume, de = deno,temp, a;  
  
    if(nu > de)  
    {  
        temp = nu;  
        nu = de;  
        de= temp;  
    }  
  
    while(nu != 0)  
    {  
        a = de % nu;  
        de = nu;  
        nu = a;  
    }  
  
    deno = deno / de;  
    nume = nume / de;   
}  
void CjianDlg::OnBnClickedButton1()
{
 // TODO: 在此添加控件通知处理程序代码
// TODO: 在此添加控件通知处理程序代码   
    UpdateData();  
    CFraction f1(f_n1, f_d1), f2(f_n2, f_d2), f3(0, 0);  
  
    if(f_s == '+')  
        f3 = f1 + f2;  
    else if(f_s == '-')  
        f3 = f1 - f2;  
    else if(f_s == '*')  
        f3 = f1 * f2;  
    else if(f_s == '/')  
        f3 = f1 / f2;  
  
    f3.simplify ();  
    f_n3 = f3.get_nume ();  
    f_d3 = f3.get_deno ();  
    UpdateData(FALSE);  

}


感悟:还是这种框框看的顺眼啊。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值