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


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

    主界面:

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

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

    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();
    发现自己的不足,善于利用找到的方法去扬长避短。行动起来。
  • 相关阅读:
    关于mysql创建数据库中字符集和排序规则的选择
    关于springboot中数据库连接池报错:testWhileIdle is true, validationQuery not set
    微软不允许以maven的方式直接下载该文件 (com.microsoft.sqlserver:sqljdbc4:jar:4.0),记录一下解决方案
    关于 idea 添加 web项目非 maven
    关于 tomcat版本和jdk版本的问题
    关于 jquery中的 只读两种属性(readonly,disabled),
    layui中如何给 表单中的input标签动态赋值,怎么获取父页面中的值
    pl/sql developer F5快捷键
    SQL中的left outer join,inner join,right outer join用法
    Aix下使用rman备份Oracle RAC数据库
  • 原文地址:https://www.cnblogs.com/rechen/p/5100430.html
Copyright © 2020-2023  润新知