教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

VC++ - mfc编计算器+源代码(9)

来源:网络收集 时间:2026-05-18
导读: 王井泉 《计算器程序设计》 第31页 共36页 } void CMyDlg::OnSqr() { UpdateData(TRUE);//把编辑框显示的字符串传给相应的变量m_strResult double result;//定义一个双精度型变量result,用来获取进行了sqrt运算

王井泉 《计算器程序设计》 第31页 共36页

}

void CMyDlg::OnSqr() {

UpdateData(TRUE);//把编辑框显示的字符串传给相应的变量m_strResult double result;//定义一个双精度型变量result,用来获取进行了sqrt运算的结果 result=sqrt(GetaStr(m_strResult));

//先调用GetaStr函数用来把字符串变为数字,再进行sqrt运算,把结果赋给result

m_strResult.Format(\

//调用Format函数,把result转化为字符串并赋给m_strResult

OperatorPressed=true;

//把bool变量OperatorPressed的值改为true,再次输入数字时,覆盖掉现在的m_strResult UpdateData(FALSE);//把字符串变量m_strResult传给编辑框 }

void CMyDlg::OnDot() {

UpdateData(TRUE);

//把编辑框显示的字符串传给相应的变量m_strResult

if(OperatorPressed==true||Restarted==true)

//在按下了\等按忸时, \

else //在按下数字键的情况下,则在m_strResult后加\

m_strResult+=\

m_strResult=\ //变量m_strResult的值为按下的按忸

OperatorPressed=false;

//把bool变量OperatorPressed和Restarted的值改为false

Restarted=false;

UpdateData(FALSE); //把字符串变量m_strResult传给编辑框

王井泉 《计算器程序设计》 第32页 共36页

}

double CMyDlg::GetaStr(CString str) { }

void CMyDlg::OnLbr() {

UpdateData(TRUE); int i=0;

double rate=10.0,itemp=0.0;

for(;i

return (itemp);

if(isdigit(str.GetAt(i))) //如果字符串str.GetAt(i)的内容是整数 { }

else if(str.GetAt(i)=='.') //如果str.GetAt(i)是小数点

rate=0.1; //让rate=0.1,开始计算小数部分 if(rate==10.0) //整数部分

itemp=itemp*rate+(str.GetAt(i)-'0');//获得整数

else //小数部分 { }

itemp=itemp+rate*(str.GetAt(i)-'0');//获得小数

rate=rate/10; //每次让rate小10倍

//把编辑框显示的字符串传给相应的变量m_strResult

if(OperatorPressed==true||Restarted==true)//在按下了\

王井泉 《计算器程序设计》 第33页 共36页

等按忸时,

m_strResult=\ //变量m_strResult的值为按下的按忸\

else

//在按下数字键的情况下,则在m_strResult后加\

m_strResult+=\

OperatorPressed=false;

//把bool变量OperatorPressed和Restarted的值改为false }

void CMyDlg::OnRbr() {

UpdateData(TRUE); Restarted=false;

UpdateData(FALSE); //把字符串变量m_strResult传给编辑框

//把编辑框显示的字符串传给相应的变量m_strResult

if(OperatorPressed==true||Restarted==true)

//在按下了\等按忸时,

m_strResult=\ //变量m_strResult的值为按下的按忸\

else

//在按下数字键的情况下,则在m_strResult后加\

m_strResult+=\

OperatorPressed=false;

//把bool变量OperatorPressed和Restarted的值改为false }

void CMyDlg::On2() {

Restarted=false;

UpdateData(FALSE); //把字符串变量m_strResult传给编辑框

int m,n[20];

王井泉 《计算器程序设计》 第34页 共36页

CString str;

UpdateData(TRUE);

//把编辑框显示的字符串传给相应的变量m_strResult

m=(int)GetaStr(m_strResult);

//调用GetaStr(m_strResult),用来获取m_strResult中的数字

m_strResult=\ //对m_strResult的值初始化

for(int i=0;i<=20;i++)

{ n[i]=m%2; //把m除2的余数保存在n[i]中 m=m/2; //把m/2的值赋给m }

if(m==0) break; //当m为0时,退出循环

for(;i>=0;i--)

{

str.Format(\ //用Format函数把n[i]的值转化为字符串 m_strResult+=str; //把str的值加在m_strResult上 }

void CMyDlg::On16() {

int m;

UpdateData(TRUE); }

OperatorPressed=true; //把bool变量OperatorPressed的值改为true UpdateData(FALSE); //把字符串变量m_strResult传给编辑框

//把编辑框显示的字符串传给相应的变量m_strResult

m=(int)GetaStr(m_strResult);

//调用GetaStr(m_strResult),用来获取m_strResult中的数字

f(m); //调用f(m)函数,把十进制转化为十六进制 m_strResult=str7; //把str3的值赋给m_strResult

str7=\ //把str3初始化

王井泉 《计算器程序设计》 第35页 共36页

}

OperatorPressed=true; //把bool变量OperatorPressed的值改为true UpdateData(FALSE); //把字符串变量m_strResult传给编辑框

void CMyDlg::f(int n) {

CString str1; int x;

if((n/16)!=0) //如果n大于等于16

f(n/16); //把n除以16,进行递归调用 x=n; //把n除以16的余数赋给x if(x>=0&&x<=9){ //如果x在0到9之间

str1.Format(\ //用Format函数把x的值转化为字符串 str7+=str1;} //把str1加在str7上

…… 此处隐藏:1535字,全部文档内容请下载后查看。喜欢就下载吧 ……
VC++ - mfc编计算器+源代码(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/607735.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)