17
}
}
}
b[j]='*';
for(j=0;j<=s;j++)//乘法,有乘号时执行乘法计算,同时注意优先级 { }
for(j=0;j<=s;j++)//数值和运算符的传递 {
if(a[j]!=100000000.0) { }
if(b[j]!=' ') {
17 1
if(b[j]=='*') { }
if(j-t==2) { } else
a[j-1]=a[j-1]*a[j+1];//乘法的实现 a[j+1]=100000000.0; b[j]=' '; t=j;
a[t-m]=a[t-m]*a[j+1];//实现连乘 m=m+2;
a[x]=a[j]; x+=2;
18
}
}
}
b[y]=b[j]; y+=2;
for(j=0;j<=y-2;j++)//加减法 { }
if(abs(a[0])>100000000)
MessageBox(\您输入的数值过大!\else
m_str.Format(\pass1=0; UpdateData(0);
if(b[j]=='+')
a[0]=a[0]+a[j+1];
else if(b[j]=='-')
a[0]=a[0]-a[j+1];
6附录
6.1调试报告
运行时,backspace按键功能不能实现,点击后无任何反应。经过检查,程序和关联的相关变量等都没错误,可是该键没有响应。在与同学讨论后,重新添加改按钮,功能正常实现。
18 1
19
6.2测试结果
1、输入“2”,“+”,“6”,“-”,“3”,“*”,“9”,“=”,并在菜单中同样输入这组操作,均得到结果如图16。
图16 结果图1
2、输入“0”,“ln”,得到结果如图17。
图17 结果图2
3、输入“30”,“sin”,得到结果如图18。
19 1
20
图18 结果图3
6.3关键源代码
1、0到9的输入
void CLuxiaoyingDlg::On0Button1() { }
void CLuxiaoyingDlg::On1Button2()
20 1
// TODO: Add your control notification handler code here UpdateData(TRUE); if(pass1==1&&pass3==0) m_str+=\
if(pass1==1&&pass3==1)//在编辑框1的字符串后加上字符0 m_str=\pass3=0;
UpdateData(FALSE);