在学校的时候写的简单的计算器软件分析

news/2024/7/8 13:25:33

计算器是简单的加减乘除运算。

主界面:

在点击按钮输入数字的时候,会出现在第三个文本框中显示第一个数字。

清除按钮就是清空文本框:

void CMyDlg::OnClear() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_str1="";
    m_fNumber1=0.0f;
    m_fNumber2=0.0f;
    m_iSign=0;
    m_RESULT=(int)"";
    m_str2=0;
    m_OPER="";
    UpdateData(FALSE);
}

点击 = 后,计算函数为:

void CMyDlg::OnButton16() 
{
    // TODO: Add your control notification handler code here
    //从edit获取数据进行计算,并将结果返回给edit4显示。
    Calculator();  
}

 

void CMyDlg::Calculator()
{
  UpdateData(TRUE);
    m_fNumber2 = atof(m_str1);//字符到浮点型转换
    m_RESULT = 0.0f;//结果是浮点型
    switch (m_iSign)//根据符号来判断什么运算
    {
            //
        case 0:
            m_RESULT = m_fNumber1 + m_fNumber2;
            break;
            //
        case 1:
            m_RESULT = m_fNumber1 - m_fNumber2;
            break;
            //
        case 2:
            m_RESULT = m_fNumber1 * m_fNumber2;
            break;
            //
        case 3:
            if (m_fNumber2 == 0.0f)
            {
                m_RESULT = m_fNumber1;//非法运算
            }
            else
            {
                m_RESULT = m_fNumber1 / m_fNumber2;//结果为浮点型,除法运算
            }
            break;
        default:
            break;
    }
    m_fNumber1 = m_RESULT;//计算结果给
    m_fNumber2 = 0.0f;//第二个数字置0(浮点型)

    UpdateData(FALSE);

}

 

点击1后:

void CMyDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    //edit显示1
    UpdateData(TRUE);  
    m_str1 =m_str1+ "1";
    UpdateData(FALSE);  

}

上面直接用浮点型数据显示更好啊!(刚开始学的时候真是没有多尝试,没仔细看 控件变量的类型有 那么多!)

其他数字类似:

void CMyDlg::OnButton2() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);  
    m_str1 =m_str1+ "2";
    UpdateData(FALSE);  
}

小数点:

void CMyDlg::OnButton15() 
{
    // TODO: Add your control notification handler code here
    //edit显示.
    UpdateData(TRUE);  
    m_str1 =m_str1+ ".";
    UpdateData(FALSE);  
}


计算符号:

void CMyDlg::OnButton11() 
{
    // TODO: Add your control notification handler code here
    //edit显示+
    UpdateData(TRUE);  
   
    SaveValue1();
    m_iSign = 0;
    m_OPER = m_OPER + "+";
    UpdateData(FALSE);  
}

void CMyDlg::OnButton12() 
{
    // TODO: Add your control notification handler code here
    //edit显示-
    UpdateData(TRUE);
 
    SaveValue1();
    m_iSign = 1;
    m_OPER= m_OPER + "-";
    UpdateData(FALSE);  

}

void CMyDlg::OnButton13() 
{
    // TODO: Add your control notification handler code here
    //edit显示x
    UpdateData(TRUE);  
 
       SaveValue1();
    m_iSign = 2;
     m_OPER = m_OPER +"x";
    UpdateData(FALSE);  
}

void CMyDlg::OnButton14() 
{
    // TODO: Add your control notification handler code here
    //edit显示/
    UpdateData(TRUE);  
   
       SaveValue1();
    m_iSign = 3;
    m_OPER=  m_OPER + "/";
    UpdateData(FALSE);  
}

 

头文件中:

    int m_iSign;
    double m_fNumber2;
    double m_fNumber1;
    void SaveValue1();
    void Calculator();

 

转载于:https://www.cnblogs.com/rechen/p/5100430.html


http://www.niftyadmin.cn/n/710101.html

相关文章

aja如何解决跨域请求?

一、什么是跨域 举个例子:http://www.a.com/a.js访问以下URL的结果 URL说明是否允许通信http://www.a.com/b.js请求地址不同允许http://www.a.com/script/b.js请求地址不同允许https://www.a.com/b.js协议不同不允许http://script.a.com/b.js子域不同不允许http://a…

Caffe学习系列(15):计算图片数据的均值

图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以…

全文搜索引擎 Elasticsearch (一)

一、安装 Elastic 需要 Java 8 环境。如果你的机器还没安装 Java,可以参考这篇文章,注意要保证环境变量JAVA_HOME正确设置。 安装完 Java,就可以跟着官方文档安装 Elastic。直接下载压缩包比较简单。 $ wget https://artifacts.elastic.co/do…

关于windows Server 2012拷贝大文件慢问题

转自https://redmondmag.com/articles/2014/05/16/network-performance-problems.aspx How To Fix Windows Server Network Performance ProblemsIf your server network performance is lagging, chances are Windows security features are to blame. Heres how to alleviate…

Android每周一个学习计划——Java容器的学习使用

序言:这篇文章本来早就应该写了,这个知识点也是日常开发中经常用到的,而且面试过程中也被每每提及,所以通过这次一周一个知识点的机会,打算好好总结一下容器相关的知识。 1、何为容器? 在Java中&#xff0c…

git for windows

git for windows https://git-for-windows.github.io/posted on 2016-01-05 18:15 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/5103379.html

[Hdu3652]B-number(数位DP)

Description 题目大意&#xff1a;求小于n是13的倍数且含有13的数的个数。 (1 < n < 1000000000) Solution 数位DP&#xff0c;题目需要包含13&#xff0c;且被13整除&#xff0c;所以状态应该多2个&#xff0c; \(F[i][j][k]\)表示位数为i&#xff0c;余数为j&#xff0…

alpha版、beta版、rc版的意思

2019独角兽企业重金招聘Python工程师标准>>> alpha版、beta版、rc版的意思 - a3015440的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/a3015440/article/details/6178568 很多软件在正式发布前都会发布一些预览版或者测试版&#xff0c;一般都叫“beta版”或者 …