第十五周任务二

源文件:
#include "stdafx.h"
#include <iostream>  
#include "fenshu.h"
using namespace std;  

int CFraction::get_nu()
{
	return nu;
}
int CFraction::get_de()
{
	return de;
}


void CFraction::input()  
{  
    cout<<"输入分数按照nu/de格式"<<endl;  
    cin>>nu;  
    cin>>c;  
    cin>>de;  
}  
  
void CFraction::simplify()  
{  
    int x;  
    if(nu>de)  
        x = de;  
    else   
        x = nu;  
      
    for(int i = 2; i<=x;i++)  
    {  
        if(nu%i==0&& de%i==0)  
        {  
            nu = nu/i;  
            de = de/i;  
                        i = 1;  
        }  
    }  
}  
  

  
CFraction::CFraction(int n,int d)  
{  
                         nu = n;  
                         de = d;  
} 

CFraction CFraction::operator +(CFraction &a)
{
	CFraction c;
	c.nu = a.nu*de+nu*a.de;
	c.de = a.de*de;
	return c;
}

CFraction CFraction::operator -(CFraction &a)
{
	CFraction c;
	c.nu = nu*a.de - a.nu*de;
	c.de = a.de*de;
	return c;
}

CFraction CFraction::operator *(CFraction &a)
{
	CFraction c;
	c.nu = nu*a.nu;
	c.de = de*a.de;
	return c;
}

CFraction CFraction::operator /(CFraction &a)
{
	CFraction c;
	c.nu = a.nu*de;
	c.de = a.de*nu;
	return c;
}

CFraction CFraction::operator -()
{
	CFraction c;
	c.de = -de;
	c.nu = -nu;
	return c;
}










头文件:
class CFraction  
{  
private:  
          
    int nu;  
    int de;  
    char c;  
      
public:  
   CFraction(int nu = 0,int de = 1);  
  
    void set(int nu = 0,int de  = 1);  
  
    void input();  
  
    void simplify();  
   
	void output();

	CFraction operator +(CFraction &a);

	CFraction operator -(CFraction &a);

	CFraction operator *(CFraction &a);

	CFraction operator /(CFraction &a);

	CFraction operator -();

	int get_nu();

	int get_de();

};  



Button1定义:
void CfenshujisuanDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData();
	CFraction C1(a_1,a_2),C2(b_1,b_2),C;
	if(fuhao == '+')
	{
		C = C1 + C2;
	}
	else if(fuhao == '-')
	{
		C = C1 - C2;
	}
	else if(fuhao == '*')
	{
		C = C1 * C2;
	}
	else if(fuhao == '/')
	{
		C = C1 / C2;
	}
	C.simplify();
	c_1 = C.get_nu();
	c_2 = C.get_de();
	UpdateData(FALSE);

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值