重庆科技学院 面向对象程序设计课程
switch( flag ) { case 1: result = n1 + n2; break; case 2: result = n1 - n2; break; case 3: result = n1 * n2; break; case 4: if(n2 == 0 ) MessageBox(\除数不能为零!\ result = n1 / n2; break; case 5: result = sin(n1); break; case 6: result = cos(n1); break; case 7: result = tan(n1); break; case 8: result = n1;break; case 9: result = n1;break; case 10:result = n1;break; case 11:result = pow(n1, n2); break; case 12: result = n1; break; case 13: result = n1; break; case 14: result = (int)n1 % (int)n2; break; case 15: result = (int)n1 ^ (int)n2;break; case 16: result = exp(n1);break; case 17: result = (int)n1 || (int)n2;break; case 48: result = (int)n1 && (int)n2;break; case 19: result = n1; break; case 20: result = n1; break; case 21: result = pow( n1, 1/n2 );break; } m_a.Format( \ UpdateData(FALSE); m_a.ReleaseBuffer(0); n1 = atof(m_a); }
void CCalcutorDlg::OnBUTTONjia() //加法 { n = 0; if( flag != 0 ) OnBUTTONdengyu(); else { n1 = atof( m_a ); //UpdateData(FALSE); } m_a.ReleaseBuffer(0); //把缓存区间清除 flag = 1; }
void CCalcutorDlg::OnBUTTONjin() //减法 { n = 0; if(flag != 0) OnBUTTONdengyu();
26
重庆科技学院 面向对象程序设计课程
else n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 2; }
void CCalcutorDlg::OnBUTTONcheng() //乘法 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 3; }
void CCalcutorDlg::OnBUTTONchu() //除法 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 4; }
void CCalcutorDlg::OnBUTTONsin() //sin { n = 0; n1 = atof( m_a ); n1 = n1 * PI/180 ; m_a.ReleaseBuffer(0); flag = 5; }
void CCalcutorDlg::OnBUTTONcos() //cos { n = 0; n1 = atof( m_a ); n1 = n1 * PI / 180; m_a.ReleaseBuffer(0); flag = 6; }
void CCalcutorDlg::OnBUTTONtan() //tan { n = 0; n1 = atof( m_a ); if( n1 != 0 && int(n1 * PI / 180) % 90 == 0 && int(n1 * PI / 180) % 90 != 0 ) MessageBox( \定义域错误!\ n1 = n1 * PI / 180; m_a.ReleaseBuffer(0); flag = 7; }
void CCalcutorDlg::OnBUTTONlog() //log以10为底 {
27
重庆科技学院 面向对象程序设计课程
n = 0; n1 = atof( m_a ); if( n1 <= 0 ) MessageBox( \真数必须大于零!\ n1 = log10(n1); m_a.ReleaseBuffer(0); flag = 8; }
void CCalcutorDlg::OnBUTTONln() //ln { n = 0; n1 = atof( m_a ); if( n1 <= 0 ) MessageBox( \真数必须大于零!\ n1 = log(n1); UpdateData(FALSE); flag = 9; }
void CCalcutorDlg::OnBUTTONn() //阶乘 { n = 0; n1 = atof(m_a); double s = 1; for( double i = 1; i < n1+1; i++ ) s *= i; n1 = s; m_a.ReleaseBuffer(0); flag = 10; }
int fun(int n) { if(n == 0) return 1; return n * fun(n-1); }
void CCalcutorDlg::OnBUTTONxy() //x的y次方 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 11; }
void CCalcutorDlg::OnBUTTONxx() //X的2次方 { n = 0; n1 = atof( m_a ); n1 = n1 * n1; m_a.ReleaseBuffer(0); flag = 12; }
28
重庆科技学院 面向对象程序设计课程
void CCalcutorDlg::OnBUTTONxxx() //X的3次方 { n = 0; n1 = atof( m_a ); n1 = n1 * n1 * n1; m_a.ReleaseBuffer(0); flag = 13; }
void CCalcutorDlg::OnBUTTONmod() //求余数mod { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 14; }
void CCalcutorDlg::OnButtonXor() //异或 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 15; }
void CCalcutorDlg::OnBUTTONexp() //E的多少次方 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 16; }
void CCalcutorDlg::OnBUTTONor() //或 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 17; }
void CCalcutorDlg::OnBUTTONand() //且 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 18; }
void CCalcutorDlg::OnBUTTONx() // 1 / x { n = 0; n1 = atof( m_a ); if( n1 == 0 )
29
重庆科技学院 面向对象程序设计课程
MessageBox( \分母不能为零!\ n1 = 1 / n1; flag = 19; }
void CCalcutorDlg::OnBUTTONsquareRoot() //开2次根号 { n = 0; n1 = atof( m_a ); if( n1 < 0 ) MessageBox(\错误!\ n1 = pow( n1, 0.5 ); m_a.ReleaseBuffer(0); flag = 20; }
void CCalcutorDlg::OnBUTTONnRoot() //n1开N次根号 { n = 0; n1 = atof( m_a ); m_a.ReleaseBuffer(0); flag = 21; }
30
C++课程设计基于MFC的计算器



