通俗易懂版基于mfc科学计算器内容摘要:
ateData(TRUE)。 m_strResult+=。 OperatorPressed=false。 Restarted=false。 UpdateData(FALSE)。 } void Ctext2Dlg::OnBnClickedmul() { UpdateData(TRUE)。 m_strResult+=*。 OperatorPressed=false。 Restarted=false。 UpdateData(FALSE)。 } void Ctext2Dlg::OnBnClickedDiv() { UpdateData(TRUE)。 m_strResult+=/。 OperatorPressed=false。 Restarted=false。 UpdateData(FALSE)。 } void Ctext2Dlg::OnBnClickedEqual() { UpdateData(TRUE)。 L1=true。 int p=0,i=0,g[10]={0},k=0,j。 for(。 i()。 i++) { if((i)==39。 (39。 ) { j=p。 g[j]=i。 p++。 } } for(。 kp。 k++) . . { Bracket(m_strResult,amp。 g[j])。 //调用 Bracket(m_strResult)函数,解决括号问题 j。 } GetStr(m_strResult)。 // 调用函数 GetStr(m_strResult) ,作用是把m_strResult 转化成数字和加减乘除四则运算 GetResult()。 //调用函数 GetResult(),作用是计算出表达式的值 (_T(%1f),a[0])。 while(L==1) { MOD(m_strResult)。 L=0。 } while(PB==39。 E39。 ) { EXP10(m_strResult)。 PB=39。 39。 } while(PB==39。 X39。 ) { Xy(m_strResult)。 PB=39。 39。 } while(PB==39。 c39。 ) { SqrtMul(m_strResult)。 } ClearZero(m_Edit3)。 UpdateData(FALSE)。 OperatorPressed=true。 } void Ctext2Dlg::OnBnClickedBackspace() { UpdateData(TRUE)。 //把编辑框显示的字符串传给相应的变量 m_strResult if(m_strResult!=0amp。 amp。 ()1) //判断编辑框是否只剩下“ 0”或者是否有字符在编辑框上 m_strResult=(()1)。 // 把m_strResult 左边的数(长度已经减一)重新赋给 m_strResult else { . . Restarted=true。 //把 bool 变量 Restarted 的值改为 true m_strResult=0。 //变量 m_strResult 的值为按下的按忸 0 } UpdateData(FALSE)。 //把字符串变量 m_strResult 传给编辑框 } void Ctext2Dlg::OnBnClickedC() { Restarted=true。 //把 bool 变量 Restarted 的值改为 true m_strResult=0。 //变量 m_strResult 的值为按下的按忸 0 UpdateData(FALSE)。 //把字符串变量 m_strResult 传给编辑框 } void Ctext2Dlg::OnBnClickedSin() //以下“ cos tan sinh cosh tanh”都是一个道理,在此写一个说明一下 { UpdateData(TRUE)。 //把编辑框显示的字符串传给相应的变量 m_strResult double result。 //定义一个局部变量 double 型的 result if(radio==1) //判断是否按下度(这里还没有设置梯度的消息命令响 应函数) result=sin(_wtof(m_strResult)*)。 //计算 sin(度)的公式 else result=sin(_wtof(m_strResult))。 //计算 sin(弧度)的公式 (_T(%1f),result)。 //将 result 的 double 型数据转换成字符串,并传递给编辑框 2 的变量 m_Edit3 ClearZero(m_Edit3)。 //清零 m_strResult=m_Edit3。 //将编辑框 2 的变量 m_Edit3 上的字符串赋值给编辑框 1 的变量 m_strResult OperatorPressed=true。 //把 bool 变量 OperatorPressed 的值改为 true UpdateData(FALSE)。 //把字符串变量 m_strResult,m_Edit3传给各自的编辑框 } void Ctext2Dlg::OnBnClickedCos() { UpdateData(TRUE)。 double result。 if(radio==1) result=cos(_wtof(m_strResult)*)。 else . . result=cos(_wtof(m_strResult))。 (_T(%1f),result)。 ClearZero(m_Edit3)。 m_strResult=m_Edit3。 OperatorPressed=true。 UpdateData(FALSE)。 } void Ctext2Dlg::OnBnClickedTan() { UpdateData(TRUE)。 double result。 if(radio==1) result=tan(_wtof(m_strResult)*)。 else result=tan(_wtof(m_strResult))。 (_T(%1f),result)。 ClearZero(m_Edit3)。 m_strResult=m_Edit3。 OperatorPressed=true。 UpdateData(FALSE)。 } void Ctext2Dlg::OnBnClickedSqrt() { UpdateData(TRUE)。 //把编辑框显示的字符串传给相应的变量 m_strResult double result。 //定义一个局部变量 double 型的 result result=sqrt(_wtof(m_strResult))。 //计算 sqrt (_T(%1f),result)。 //将 result 的 double 型数据转换成字符串,并传递给编辑框 2 的变量 m_Edit3 ClearZero(m_Edit3)。 //清零 OperatorPressed=true。 //把 bool 变量 OperatorPressed 的值改为 true UpdateData(FALSE)。 //把字符串变量 m_Edit3 传给编辑框 } double Ctext2Dlg::GetaStr(CString str) //这个函数的作用是将只有数字和 .的字符串 转成 double 的数值,即相当于 _wtof()这个函数 //这个函数也是自己添加 { int i=0。 . . double rate=,itemp=。 for(。 i()。 i++) { if(isdigit((i))) //如果字符串 (i)的内容是整数 { if(rate==) //整数部分 itemp=itemp*rate+((i)39。 039。 )。 //获得整数 else //小数部分 { itemp=itemp+rate*((i)39。 039。 )。 //获得小数 rate=rate/10。 //每次让 rate 小 10 倍 } } else if((i)==39。 .39。 ) //如果 (i)是小数点 rate=。 //让 rate=,开始计算小数部分 } return (itemp)。 } void Ctext2Dlg::OnBnClickedLkouhao() { UpdateData(TRUE)。 //把编辑框显示的字符串传给相应的变量 m_strResult if(OperatorPressed==true||Restarted==true) m_strResult=(。 //变量 m_strResult 的值为按下的按忸 ( else m_strResult+=(。 //在按下数字键的情况下,则在 m_strResult 后加 ( OperatorPressed=false。 Restarted=false。 //把 bool 变量 OperatorPressed 和 Restarted 的值改为false UpdateData(FALSE)。 //把字符串变量 m_strResult 传给编辑框 } void Ctext2Dlg::OnBnClickedRkouhao() { UpdateData(TRUE)。 if(OperatorPressed==true||Restarted==true) m_strResult=)。 else m_strResult+=)。 . . OperatorPressed=false。 Restarted=false。 UpdateData(FALSE)。 } void Ctext2Dlg::Bracket(CString str0,int *h)//这个代码也是自己添加 { CString str1=_T(),str2=_T(),str3=_T()。 int i=0。 for(。 i()。 i++) { if(*h==i) //如果碰到了左括号 { i++。 //i 自加一次,用来跳过左括号 for(。 i()。 i++) { if((i)==39。 )39。 ) break。 //如果碰到右括号,跳出循环 str2+=(i)。 //把括号内的表达式赋给 str2 } i++。 //i 自加一次,用来跳过右括号 for(。 i()。 i++) { str3+=(i)。 //把括号后边的表达式赋给 str3。通俗易懂版基于mfc科学计算器
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
通信工程概算、预算(626定额)编制办法
质量监督费:指工程质量监督机构对通信工程进行质量监督所发生的费用。 十一、建设期投资贷款利息:指建设项目投资中分年度使 用银行贷款部分,在建设期间应归还的贷款利息。 十二、建设单位管理费:指建设项目从立项、筹建、建设、竣工验收交付使用及后评估等全过程发生的管理费用。 内容包括: 1.建设单位开办费:是指新建项目为保证筹建和建设工作正常进行购置必要的办公设备及生活家具、用具、交通工具所需费用。
选美活动大赛策划方案
最佳服装展示奖(也可设旗袍奖,可根据赞助商服装设立) 中国友谊小姐和亲善大使小姐。 2020 中华旅游小姐国际大赛冠军总决赛 这是一个很特别的奖项,她是由参赛选手们投票选举她们当中以为她们认为最友善、最热情、最有爱心、最有礼貌的一个佳丽。 最佳晚礼服奖 由来自主办的全体评审评判,评选服装的设计与品位。 最佳形体奖 赛前评委见面会中,由来自国际执行机构和中 国总决赛主办方的全体评审评判