/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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得函数



