您的位置:首页 > 编程语言 > PHP开发

第十五周 任务二

2012-05-22 20:55 78 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:窗口练习

* 作    者: 薛广晨
* 完成日期: 2012  年 05 月22 日
* 版 本 号:       x1.0
* 对任务及求解方法的描述部分
* 输入描述:窗口化 (分数的加减乘除)
* 问题描述:
* 程序头部的注释结束
*/

//头文件 CFrac.h

class 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);
}

 

 


上机感言: 费了好大的劲,终于做出来了。窗口看着就爽
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  任务 c output