• 实现计算器代码实例


    在对话框头文件中声明如下变量:

    CEdit m_ret;
     

     CString num1;       //数值计算符号前面的数值
     CString num2;       //数值计算后面的数值
     BOOL isresult;        //是否按下加、减、乘、除符号
     int witch;                //是加、减、乘、除哪种计算

     1

    在对话框初始化代码中定义变量初始值,如下:

    BOOL CTest1::OnInitDialog()
    {
     CDialog::OnInitDialog();

     num1="";        //第一个数据
     num2="";        //第二个数据
     isresult=FALSE;     //保存是否点击了运算按钮
     witch=0;              //保存运算按钮

     m_result="";  //清空操作


     SetIcon(m_Icon, TRUE);   // 设置大图标
     SetIcon(m_Icon, FALSE);  // 设置小图标


     return TRUE;  // return TRUE unless you set the focus to a control
     // 异常: OCX 属性页应返回 FALSE
    }

    具体代码实现如下:

    效果如下:

    void CTest1::OnBnClickedButton1()
    {
    //  CString st1;
    //  CString ret;
    //  UpdateData(true);
    //  GetDlgItemText(IDC_BUTTON_1,st1);
    //  //MessageBox(st1);
    //  ret=st1;
    //  //ret.Format("%s",st1);
    //  SetDlgItemText(IDC_EDIT_RET,ret);
    //  //m_ret.SetWindowText(ret);
    //  //MessageBox(ret);

     

     if(isresult==FALSE)
     {
      
      num1+="1";
      m_result=num1;
     // MessageBox(m_result,NULL,0);
      UpdateData(false);
      
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="1";
     
      m_result=num2;

    //   AfxMessageBox(m_result);
    //   AfxMessageBox(num2);
      UpdateData(false);
     }


    }

    void CTest1::OnBnClickedButton2()
    {
     if(isresult==FALSE)
     {

      num1+="2";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {

      m_result="";
      num2="";

      num2+="2";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton3()
    {
     if(isresult==FALSE)
     {

      num1+="3";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="3";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton4()
    {
     if(isresult==FALSE)
     {

      num1+="4";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="4";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton5()
    {
     if(isresult==FALSE)
     {

      num1+="5";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="5";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton6()
    {
     if(isresult==FALSE)
     {

      num1+="6";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="6";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton8()
    {
     if(isresult==FALSE)
     {

      num1+="7";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="7";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton10()
    {
     if(isresult==FALSE)
     {

      num1+="8";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="8";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton7()
    {
     if(isresult==FALSE)
     {
      
      num1+="9";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="9";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton14()
    {
     if(isresult==FALSE)
     {

      num1+="0";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)

     {
      m_result="";
      num2="";
      num2+="0";
      m_result=num2;
      UpdateData(false);
     }

    }

    void CTest1::OnBnClickedButton15()
    {
     if(isresult==FALSE)
     {

      num1+=".";
      m_result=num1;
      UpdateData(false);
     }
     if(isresult==TRUE)
     {
      m_result="";
      num2="";
      num2+=".";
      m_result=num2;
      UpdateData(false);
     }


    }

    void CTest1::OnBnClickedButton9()
    {
     isresult=TRUE;
     witch=1;

    }

    void CTest1::OnBnClickedButton11()
    {
     isresult=TRUE;
     witch=2;

    }

    void CTest1::OnBnClickedButton12()
    {
     isresult=TRUE;
     witch=3;

    }

    void CTest1::OnBnClickedButton13()
    {
     isresult=TRUE;
     witch=4;

    }

    void CTest1::OnBnClickedButton16()
    {
     double number1=atof(num1);
     double number2=atof(num2);
     //AfxMessageBox(num1);  //此时,该值为空?
     //AfxMessageBox(num2);
     double result=0.0;
     switch(witch)
     {
     case 1:result=number1+number2;break;
     case 2:result=number1-number2;break;
     case 3:result=number1*number2;break;
     case 4:result=number1/number2;break;
     default:AfxMessageBox("程序运行错误");break;
     }
     
     m_result.Format("%f",result);

     UpdateData(false);


    }

    void CTest1::OnBnClickedButton17()
    {

     m_result="0";
      UpdateData(false);
     SetDlgItemText(IDC_EDIT_RET,m_result); 
      //num1="";    
     num2="";  //将num1值赋值为空
     m_result="0";
     
     
    }

  • 相关阅读:
    BZOJ 1101 [POI2007]Zap
    BZOJ 2005 [Noi2010]能量采集
    BZOJ 1053 [HAOI2007]反素数ant
    BZOJ 4321 queue2
    ZOJ 1456 Minimum Transport Cost(Floyd算法求解最短路径并输出最小字典序路径)
    POJ 3268 Silver Cow Party(Dijkstra算法求解来回最短路问题)
    Trie(字典树)解析及其在编程竞赛中的典型应用举例
    POJ 3037 Skiing(如何使用SPFA求解二维最短路问题)
    POJ 1724 ROADS(使用邻接表和优先队列的BFS求解最短路问题)
    POJ 1860 Currency Exchange(如何Bellman-Ford算法判断图中是否存在正环)
  • 原文地址:https://www.cnblogs.com/jinjiangongzuoshi/p/3301315.html
Copyright © 2020-2023  润新知