简单计算器c++课程设计讲解 下载本文

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);