第十五周 任务二

来源:互联网 发布:剑客软件手机 编辑:程序博客网 时间:2024/04/30 15:20
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:窗口练习  * 作    者: 薛广晨                        * 完成日期: 2012  年 05 月22 日 * 版 本 号:       x1.0    * 对任务及求解方法的描述部分 * 输入描述:窗口化 (分数的加减乘除)* 问题描述: * 程序头部的注释结束 */  //头文件 CFrac.hclass CFraction{private:int nume;  // 分子int deno;  // 分母 public:CFraction(int nu = 0, int de = 1) : nume(nu), deno(de){}   //构造函数,初始化用void output();CFraction operator+(CFraction &c1);CFraction operator-(CFraction &c1);CFraction operator*(CFraction &c1);CFraction operator/(CFraction &c1);};//CFrac.cpp#include "stdafx.h"#include "CFrac.h"using namespace std;CFraction CFraction :: operator+(CFraction &c1){ CFraction c2;      c2.deno = deno * c1.deno;      c2.nume = nume * c1.deno + c1.nume * deno;     c2.output();     return c2;  }  CFraction CFraction :: operator-(CFraction &c1){  CFraction c2;      c2.deno = deno * c1.deno;      c2.nume = nume * c1.deno - c1.nume * deno;     c2.output();     return c2;  }  CFraction CFraction :: operator*(CFraction &c1){  CFraction c2;      c2.deno = deno * c1.deno;      c2.nume = nume * c1.nume;     c2.output();     return c2;  }  CFraction CFraction :: operator/(CFraction &c1){  CFraction c2;      c2.deno = deno * c1.nume;      c2.nume = nume * c1.deno;    c2.output();    return c2;  }

void CFraction :: output()  {   int i;   if(nume >= 0) {  if(deno < nume)i = deno;     else i = nume;     for(; i > 0; --i)     {   if(nume % i == 0 && deno % i == 0)      {    nume = nume / i;       deno = deno / i;       break;         }         }  } else  {  nume = -nume;  if(deno < nume)i = deno;     else i = nume;     for(; i > 0; --i)     {   if(nume % i == 0 && deno % i == 0)      {    nume = nume / i;       deno = deno / i;       break;         }         }    nume = -nume; }

}

//button按钮void CcfractionDlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码UpdateData();//将界面上的各控件输入的值“捕获”到与之关联的变量中CFraction t1(m_nu1, m_du1);CFraction t2(m_nu2, m_de2);CFraction t3;if(m_a == "+")t3 = t1.operator+(t2);else if(m_a == "-")t3 = t1.operator-(t2);else if(m_a == "*")t3 = t1.operator*(t2);else if(m_a == "/")t3 = t1.operator/(t2);m_nu3 = t3.getnume();m_de3 = t3.getdeno();UpdateData(FALSE);}
 

 


上机感言: 费了好大的劲,终于做出来了。窗口看着就爽