求教。用mfc写计算器。sin,cos,,退格不知道怎么实现。定义的int n;double date;CString m_result;
#include"stdafx.h"#include"计算器3.h"#include"计算器3Dlg.h"#include"afxdialogex.h"#include<...
#include "stdafx.h"
#include "计算器3.h"
#include "计算器3Dlg.h"
#include "afxdialogex.h"
#include <stdlib.h>
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
void C计算器3Dlg::OnBnClickedButton1()
{
m_result += _T("1");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton2()
{
m_result += _T("2");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton4()
{
m_result += _T("3");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton5()
{
m_result += _T("4");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton11()
{
m_result += _T("5");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton9()
{
m_result += _T("6");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton6()
{
m_result += _T("7");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton8()
{
m_result += _T("8");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton14()
{
m_result += _T("9");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton10()
{
m_result += _T("0");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton12()
{
m_result += _T(".");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton17()//+
{
n = 0;
date = _wtof(m_result);
m_result = _T("");
}
void C计算器3Dlg::OnBnClickedButton3()//-
{
n = 1;
date = _wtof(m_result);
m_result = _T("");
}
void C计算器3Dlg::OnBnClickedButton15()//*
{
n = 2;
date = _wtof(m_result);
m_result = _T("");
}
void C计算器3Dlg::OnBnClickedButton7()//delete
{
n = 4;
m_result = m_result.Left(m_result.GetLength() - 1);
if (m_result == "")
{
m_result = '0';
}
UpdateData(FALSE);
}
准备在等于号写运算,n=0就执行+这样。然后退格,sin,cos就不知道怎么写了。求大神解救
void C计算器3Dlg::OnBnClickedButton13()
{
if (n == 0)
{
date += _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
if (n == 1)
{
date -= _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
if (n == 2)
{
date *= _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
if (n == 3)
{
date /= _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
} 展开
#include "计算器3.h"
#include "计算器3Dlg.h"
#include "afxdialogex.h"
#include <stdlib.h>
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
void C计算器3Dlg::OnBnClickedButton1()
{
m_result += _T("1");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton2()
{
m_result += _T("2");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton4()
{
m_result += _T("3");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton5()
{
m_result += _T("4");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton11()
{
m_result += _T("5");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton9()
{
m_result += _T("6");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton6()
{
m_result += _T("7");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton8()
{
m_result += _T("8");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton14()
{
m_result += _T("9");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton10()
{
m_result += _T("0");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton12()
{
m_result += _T(".");
UpdateData(FALSE);
}
void C计算器3Dlg::OnBnClickedButton17()//+
{
n = 0;
date = _wtof(m_result);
m_result = _T("");
}
void C计算器3Dlg::OnBnClickedButton3()//-
{
n = 1;
date = _wtof(m_result);
m_result = _T("");
}
void C计算器3Dlg::OnBnClickedButton15()//*
{
n = 2;
date = _wtof(m_result);
m_result = _T("");
}
void C计算器3Dlg::OnBnClickedButton7()//delete
{
n = 4;
m_result = m_result.Left(m_result.GetLength() - 1);
if (m_result == "")
{
m_result = '0';
}
UpdateData(FALSE);
}
准备在等于号写运算,n=0就执行+这样。然后退格,sin,cos就不知道怎么写了。求大神解救
void C计算器3Dlg::OnBnClickedButton13()
{
if (n == 0)
{
date += _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
if (n == 1)
{
date -= _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
if (n == 2)
{
date *= _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
if (n == 3)
{
date /= _wtof(m_result);
m_result.Format(_T("%lf"), date);
}
} 展开
3个回答
展开全部
sin,cos 之类的实现挺简单的直接调用函数库就好了,头文件Math.h。具体怎么用百度一下吧。
退格也不复杂:读取文本框的值,然后转化为数字以后除10取整(浮点数之类的也差不多,就是格式化的时候不太一样),然后再转化为字符串显示出来就好了。
希望能够帮到你!
追问
是调用math.h。
void C计算器3Dlg::OnBnClickedButton19()//sin
{
n = 5;
num += sin(_wtof(m_result));
date += num;
}
但是好像不太对。。。。。。
追答
没看明白你这段代码。。。
这是我的拙见,望采纳:
CString m_str_input;//输入框关联控件变量,如果不喜欢也可以使用setWindowText实现
float temp_result;//sin计算的结果
temp_result = sin(_wtof(m_str_input));
m_str_input.format( TEXT("%f") , temp_result );//格式化输出,如果设置了控件变量转换完就自动显示了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-06
展开全部
杰伦杰伦李连杰基金
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询