#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);
}