15周任务2

/* (程序头部注释开始)  
* 程序的版权和版本声明部分  
* Copyright (c) 2011, 烟台大学计算机学院学生   
* All rights reserved.  
* 文件名称:窗口练习  
  
* 作    者: 苗影                     
* 完成日期: 2012  年 05 月30日  
* 版 本 号:       x1.0     
* 对任务及求解方法的描述部分  
* 输入描述:窗口化 (分数的加减乘除) 
* 问题描述:  
* 程序头部的注释结束  
*/    


#include<iostream>
#include"hh.h"
class CFraction  
{  
private:  
    double nume;  // 分子  
    double deno;  // 分母  
public:  
     CFraction(int nu=0,int de=1):nume(nu),deno(de){}    
    void simplify();    
   double getnume();
   double getdeno();
    CFraction operator+( CFraction &c);  //两个分数相加,结果要化简     
    CFraction operator-( CFraction &c);  //两个分数相减,结果要化简     
    CFraction operator*( CFraction &c);  //两个分数相乘,结果要化简     
    CFraction operator/( CFraction &c);  //两个分数相除,结果要化简     
}

void CFraction::simplify()  
{  
    int h,m,i,j;  
    for(i=2;i<=6;i++)  
    {  
    {  
        h=nume%i;  
        m=deno%i;  
    }  
      
    while(h==0&&m==0)  
      
    {   j=i;  
        nume=nume/j;  
        deno=deno/j;  
        h=nume%i;  
        m=deno%i;  
    }  
    }  
 }   
CFraction CFraction::operator+( CFraction &c)    
{    
    CFraction t;    
    t.nume=nume*c.deno+c.nume*deno;    
    t.deno=deno*c.deno;  
	t.simplify()
    return t;    
}    
CFraction CFraction:: operator-( CFraction &c)    
{    
    CFraction t;    
    t.nume=nume*c.deno-c.nume*deno;    
    t.deno=deno*c.deno; 
    t.simplify()
    return t;    
}    
CFraction CFraction:: operator/( CFraction &c)    
{    
    CFraction t;    
    t.nume=nume*c.nume;    
    t.deno=deno*c.deno;    
    t.simplify()
    return t;    
}    
CFraction CFraction:: operator*( CFraction &c)    
{  
     CFraction t;    
    t.nume=nume*c.deno;    
    t.deno=deno*c.nume; 
    t.simplify()
    return t;    
} 
double CFraction:: getnume()
{
	return nume;
}
double CFraction::getdeno()
{
	return deno;
}
void CfenshuDlg::OnBnClickedButton1()  
{  
    // TODO: 在此添加控件通知处理程序代码   
   UpdateData();   //将把界面上各控件输入的值“捕获”到与之关联的变量中     
   CFraction t1(m_a,m_b),t2(m_c,m_d),c,d;  //定义分数类的对象     
     
   if(m_n=="+")  
   {  
   c=t1+t2;  
   m_e=c.getnume();  
   m_f=c.getdeno();  
   }  
     
   else if(m_n=="-")  
   {  
     c=t1-t2;  
     m_e=c.getnume();  
     m_f=c.getdeno();  
   }  
   else if(m_n=="*")  
   {  
       c=t1*t2;  
       m_e=c.getnume();  
       m_f=c.getdeno();  
   }  
   else if(m_n=="/")  
   {  
       c=t1/t2;  
       m_e=c.getnume();  
       m_f=c.getdeno();  
   }  
  
   UpdateData(FLASE)
}
 
感言:为了把分子分母分开显示出来,要在写一个getnume,getdeno得函数
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值