您的位置:首页 > 编程语言 > C语言/C++

C++-------实现计算器

2012-05-29 21:09 316 查看
头文件声明

 

class CFraction
{
private:

int nu;
int de;

public:
CFraction(int nu = 0,int de = 1);

CFraction operator +(CFraction &a);

CFraction operator -(CFraction &a);

CFraction operator *(CFraction &a);

CFraction operator /(CFraction &a);

CFraction operator -();

void simplify();

int get_nu()
{
simplify();
return nu;
}

int get_de()
{
simplify();
return de;
}
};


源程序

 

#include "stdafx.h"
#include <cmath>
#include "string"
#include "Mycount.h"
using namespace std;
CFraction::CFraction(int n,int d)
{
nu = n;
de = d;
}

CFraction CFraction::operator +(CFraction &a)
{
CFraction c;
c.nu = a.nu*de+nu*a.de;
c.de = a.de*de;
return c;
}

CFraction CFraction::operator -(CFraction &a)
{
CFraction c;
c.nu = nu*a.de - a.nu*de;
c.de = a.de*de;
return c;
}

CFraction CFraction::operator *(CFraction &a)
{
CFraction c;
c.nu = nu*a.nu;
c.de = de*a.de;
return c;
}

CFraction CFraction::operator /(CFraction &a)
{
CFraction c;
c.nu = a.nu*de;
c.de = a.de*nu;
return c;
}

CFraction CFraction::operator -()
{
CFraction c;
c.de = -de;
c.nu = -nu;
return c;
}

void  CFraction::simplify()
{
int x;
if(nu>de)
x = de;
else
x = nu;

for(int i = 2; i<=x;i++)
{
if(nu%i==0&& de%i==0)
{
nu = nu/i;
de = de/i;
i = 1;
}
}
}


button 按键程序

 

void C分数的计算Dlg::OnBnClickedButton1()
{
UpdateData();
CFraction c1(c1_nu,c1_de),c2(c2_nu,c2_de),c(0,1);
if(sign == '+')
{
c = c1 +c2;
}
else if(sign =='-')
{
c = c1 -c2;
}
else if(sign =='*')
{
c = c1*c2;
}
else if(sign =='/')
{
c = c1/c2;
}

c_nu = c.get_nu();
c_de = c.get_de();

UpdateData(FALSE);
// TODO: 在此添加控件通知处理程序代码
}




下拉列那个还没找到怎么弄。谁懂得告诉下吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  任务 c button class