vs2017实现一个简单计算器

VS计算器

工程代码
初学vs,如有出错请多指正。部分代码来源于网络,其中代码大多重复,自行搜索与体会
1.工程命名
2.基于对话框类,这跟工具集的调用也有关联,
3.工具箱的灰名,消失,参考csdn的解决
4.MFC中未定义标识符的解决,在resource.h把函数定义
5 类添加函数,会有无法识别该函数的警告,可重启vs,
6 m_coff的初始化1.0,初始化计算器
下面是部分代码,
数字N的button:

void CmycalculatorDlg::OnOnButtonN()
{
 if (m_coff == 1.0)
  m_second = m_second * 10 + N;
 else
 {
  m_second = m_second + N * m_coff;
  m_coff *= 0.1;
 }
 UpdateDisplay(m_second);

乘法符号:

void CmycalculatorDlg::OnButtonAdd()
{
 Calculate();
 m_operator = "+";
 // TODO: 在此添加控件通知处理程序代码
}

其他符号类似;
下面是本计算器最关键的函数,实现了等于号及其他符号运算的功能:

void CmycalculatorDlg::OnButtonEqual()
{
 Calculate();
 m_first = 0.0;  
 m_operator = "+";
// TODO: 在此添加控件通知处理程序代码
}
void CmycalculatorDlg::Calculate(void)
{
 switch (m_operator.GetAt(0))
 {
 case '+': m_first += m_second; break;
 case '-': m_first -= m_second; break;
 case '*': m_first *= m_second; break;
 case '/': 
  if (fabs(m_second) <= 0.000001)
  {
  m_display = "除数不能为零";
  UpdateData(false); 
  return;
  }
     m_first /= m_second; 
     break;
 }
 m_second = 0.0;
 m_coff = 1.0;
 UpdateDisplay(m_first);//更新编辑框的显示内容
}
void CmycalculatorDlg::UpdateDisplay(double lVal)
{
 m_display.Format(_T("%f"), lVal);
 int i = m_display.GetLength();
 //格式化输出,将输出结果后的零全部截去
 while (m_display.GetAt(i - 2) == '0')
 {
  m_display.Delete(i - 2, 1);
  i--;
 }
 UpdateData(false); //更新显示编辑框变量m_display
}

计算器没有中间输入式,如图直接产生结果
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J先生x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值