第15周实验报告2

MyCFriangle.h中的代码
class CFraction  
{private:  
  
int nume;  // 分子  
int deno;  // 分母  
public:  
    CFraction(int nu=0,int de=1);   //构造函数,初始化用  
    void Set(int nu=0,int de=1);    //置值,改变值时用  
    void input();               //按照"nu/de"的格式,如"5/2"的形式输入  
    void Simplify();            //化简(使分子分母没有公因子) 
	int Get_nume(){return nume;}
	int Get_deno(){return deno;}
   
CFraction operator+(CFraction &c);//实现分数的加法并化简
CFraction operator-(CFraction &c);//实现分数的减法并化简
CFraction operator*(CFraction &c);//实现分数的乘法并化简
CFraction operator/(CFraction &c);//实现分数的除法并化简
};


MyCFriangle.cpp中的代码
#include"stdafx.h"
#include "MyCFriangle.h"
CFraction::CFraction (int nu, int de)//定义构造函数  
 {  
     nume=nu;  
     deno=de;  
 }  
void CFraction::Set(int nu,int de)  
{  
    nume=nu;  
    deno=de;  
  
}  


void CFraction::Simplify()  
{  
    int i;  
    if(nume>deno)//分分子和分母哪个大小两种情况  
    {  
        for(i=2;i<=nume;i++)  
        {  
            if(nume%i==0&&deno%i==0)  
            {  
                nume=nume/i;  
                deno=deno/i;  
                i=2;  
            }  
        }  
    }  
    else  
        for(i=2;i<=deno;i++)  
        {  
            if(nume%i==0&&deno%i==0)  
            {  
                nume=nume/i;  
                deno=deno/i;  
                i=2;  
            }  
        }  
      
}  
  

CFraction CFraction::operator+(CFraction &c)//实现分数的加法并化简
{
	CFraction c1;

	c1.deno=deno*c.deno;
	c1.nume=nume*c.deno+c.nume*deno;

	c1.Simplify();

	return c1;

}
CFraction CFraction::operator-(CFraction &c)//实现分数的减法并化简
{
	CFraction c1;

	c1.deno=deno*c.deno;
	c1.nume=nume*c.deno-c.nume*deno;
 
   c1.Simplify();

	return c1;


}
CFraction CFraction::operator*(CFraction &c)//实现分数的乘法并化简
{
	CFraction c1;

	c1.deno=deno*c.deno;
	c1.nume=nume*c.nume;

    c1.Simplify();

	return c1;


}
CFraction CFraction::operator/(CFraction &c)//实现分数的除法并化简
{
	CFraction c1;

	c.deno=c.nume;
	c.nume=c.deno;
   c1.deno=deno*c.deno;
	c1.nume=nume*c.nume;

    c1.Simplify();

	return c1;


}

等号控件中增加的代码
另外还要再加#include "MyCFriangle.h"

UpdateData();
CFraction c3,c1(c1_n,c1_d),c2(c2_n,c2_d);
if(f=='+')
{
	c3=c1+c2;
}
if(f=='-')
{
	c3=c1-c2;
}
if(f=='*')
{
	c3=c1*c2;
}
if(f=='/')
{
	c3=c1/c2;
}
c3_n=c3.Get_nume();
c3_d=c3.Get_deno();

   UpdateData(FALSE);
}

 

 

上机感想。老师用这种方法感觉很新鲜 很好玩 让同学们都有兴趣来做,很值得长期发展啊老师。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值