博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在学校的时候写的简单的计算器软件分析
阅读量:6076 次
发布时间:2019-06-20

本文共 2872 字,大约阅读时间需要 9 分钟。

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

主界面:

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

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

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

你可能感兴趣的文章
MySQL的btree索引和hash索引的区别
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 mailPage
查看>>
sql server 通过sql server 协议进行登录的解析
查看>>
按下返回键,不直接退出而是弹出对话框
查看>>
拦截器__call,_callstatic
查看>>
自学编程的技术大牛是如何进谷歌的
查看>>
IE6 和 IE8下翻页功能的失效差异问题
查看>>
NoSQL&MongoDB
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
HashTable 与HashMap的区别
查看>>
TiDB 在摩拜单车在线数据业务的应用和实践
查看>>
我的友情链接
查看>>
多使用工具方法
查看>>
超微型微博系统(简单实现)
查看>>
FruityWifi 2.0 试用体会
查看>>
redux资料
查看>>
Elasticsearch上遇到的部分问题及处理
查看>>
PE,Dos工具箱,自动安装linux的U盘制作
查看>>
SpringMVC + Hibernate + Spring集成Log4j日志插件
查看>>
你后台的Activity被系统回收怎么办:onSaveInstanceState
查看>>