MFC之计算器

上学期老师曾经让我们写过一个计算器,但是那个时候对windows编程的原理还有很多东西都是不知道的 所以就是照葫芦画瓢的写了一个,最近重新在学MFC,所以就重新写了一个,界面的美化还没去做,只是将功能和主要的界面做好了。

源码下载

效果图

下面是代码:

/ // CCalculatorDlg dialog CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = _T(""); m_edit2 = 0.0; m_result=0.0; m_Count_Style=-1; m_temp1=0.0; m_temp2=0.0; m_Window_right=0.0; m_Count_type=0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CCalculatorDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCalculatorDlg) DDX_Text(pDX, IDC_EDIT1, m_edit1); DDX_Text(pDX, IDC_EDIT2, m_edit2); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialog) //{{AFX_MSG_MAP(CCalculatorDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_RADIO2, OnRadio2) ON_BN_CLICKED(IDC_RADIO1, OnRadio1) ON_BN_CLICKED(IDC_BUTTON_EQUAL, OnButtonEqual) ON_BN_CLICKED(IDC_BUTTON_1, OnButton1) ON_BN_CLICKED(IDC_BUTTON_0, OnButton0) ON_BN_CLICKED(IDC_BUTTON_10X, OnButton10x) ON_BN_CLICKED(IDC_BUTTON_2, OnButton2) ON_BN_CLICKED(IDC_BUTTON_3, OnButton3) ON_BN_CLICKED(IDC_BUTTON_4, OnButton4) ON_BN_CLICKED(IDC_BUTTON_7, OnButton7) ON_BN_CLICKED(IDC_BUTTON_5, OnButton5) ON_BN_CLICKED(IDC_BUTTON_6, OnButton6) ON_BN_CLICKED(IDC_BUTTON_8, OnButton8) ON_BN_CLICKED(IDC_BUTTON_9, OnButton9) ON_BN_CLICKED(IDC_BUTTON_POINT, OnButtonPoint) ON_BN_CLICKED(IDC_BUTTON_PLUS, OnButtonPlus) ON_BN_CLICKED(IDC_BUTTON_SUB, OnButtonSub) ON_BN_CLICKED(IDC_BUTTON_MUL, OnButtonMul) ON_BN_CLICKED(IDC_BUTTON_DIV, OnButtonDiv) ON_BN_CLICKED(IDC_BUTTON_DAOSHU, OnButtonDaoshu) ON_BN_CLICKED(IDC_BUTTON_SQRT, OnButtonSqrt) ON_BN_CLICKED(IDC_BACKSPACE, OnBackspace) ON_BN_CLICKED(IDC_C, OnC) ON_BN_CLICKED(IDC_BUTTON_QUYU, OnButtonQuyu) ON_BN_CLICKED(IDC_BUTTON_ONOFF, OnButtonOnoff) ON_BN_CLICKED(IDC_BUTTON_Science, OnBUTTONScience) ON_BN_CLICKED(IDC_BUTTON_SIN, OnButtonSin) ON_BN_CLICKED(IDC_BUTTON_COS, OnButtonCos) ON_BN_CLICKED(IDC_BUTTON_TAN, OnButtonTan) ON_BN_CLICKED(IDC_BUTTON_SINH, OnButtonSinh) ON_BN_CLICKED(IDC_BUTTON_COSH, OnButtonCosh) ON_BN_CLICKED(IDC_BUTTON_TANH, OnButtonTanh) ON_BN_CLICKED(IDC_BUTTON_INT, OnButtonInt) ON_BN_CLICKED(IDC_BUTTON_X2, OnButtonX2) ON_BN_CLICKED(IDC_BUTTON_X3, OnButtonX3) ON_BN_CLICKED(IDC_BUTTON_XY, OnButtonXy) ON_BN_CLICKED(IDC_BUTTON_LN, OnButtonLn) ON_BN_CLICKED(IDC_BUTTON_N, OnButtonN) ON_BN_CLICKED(IDC_BUTTON_LOG, OnButtonLog) ON_BN_CLICKED(IDC_BUTTON_LEFT, OnButtonLeft) ON_BN_CLICKED(IDC_BUTTON_RIGHT, OnButtonRight) ON_BN_CLICKED(IDC_BUTTON_PorN, OnBUTTONPorN) //}}AFX_MSG_MAP END_MESSAGE_MAP() / // CCalculatorDlg message handlers BOOL CCalculatorDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here CRect rectLarge; CRect rectSmall; CRect rectSeprator; GetWindowRect(&rectLarge); GetDlgItem(IDC_SEPARATOR)->GetWindowRect(&rectSeprator); m_Window_right=rectLarge.right-rectSeprator.right; rectSmall.left=rectLarge.left; rectSmall.bottom=rectLarge.bottom; rectSmall.top=rectLarge.top; rectSmall.right=rectSeprator.right; SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),SWP_NOMOVE | SWP_NOZORDER); GetDlgItem(IDC_BUTTON_LEFT)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_RIGHT)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_PorN)->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control } void CCalculatorDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CCalculatorDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CCalculatorDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } void CCalculatorDlg::OnRadio1() { // TODO: Add your control notification handler code here //计算表达式 m_Count_Style=1; GetDlgItem(IDC_BUTTON_QUYU)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_DAOSHU)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_SQRT)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_LEFT)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON_RIGHT)->EnableWindow(TRUE); } void CCalculatorDlg::OnRadio2() { // TODO: Add your control notification handler code here m_Count_Style=2; GetDlgItem(IDC_BUTTON_QUYU)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON_DAOSHU)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON_SQRT)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON_LEFT)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_RIGHT)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_PorN)->EnableWindow(TRUE); } void CCalculatorDlg::OnBUTTONScience() { // TODO: Add your control notification handler code here CString str; if(GetDlgItemText(IDC_BUTTON_Science,str),str=="功能增强>>") { SetDlgItemText(IDC_BUTTON_Science,"基本运算<<"); } else { SetDlgItemText(IDC_BUTTON_Science,"功能增强>>"); } static CRect rectLarge; static CRect rectSmall; if(rectLarge.IsRectEmpty()) { GetWindowRect(&rectSmall); rectLarge.left=rectSmall.left; rectLarge.top=rectSmall.top; rectLarge.right=rectSmall.right+m_Window_right; rectLarge.bottom=rectSmall.bottom; } if(str=="基本运算<<") { SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),SWP_NOMOVE | SWP_NOZORDER); } else { SetWindowPos(NULL,0,0,rectLarge.Width(),rectLarge.Height(),SWP_NOMOVE | SWP_NOZORDER); } } void CCalculatorDlg::OnBackspace() { // TODO: Add your control notification handler code here UpdateData(); char *ch=(LPTSTR)(LPCTSTR)m_edit1; int length=m_edit1.GetLength(); ch[length-1]='\0'; m_edit1=ch; UpdateData(FALSE); } void CCalculatorDlg::OnC() { // TODO: Add your control notification handler code here m_edit1=""; m_edit2=0.0; m_result=0.0; UpdateData(FALSE); } void CCalculatorDlg::OnButtonOnoff() { // TODO: Add your control notification handler code here CString str; if(GetDlgItemText(IDC_BUTTON_ONOFF,str),str=="OFF") { SetDlgItemText(IDC_BUTTON_ONOFF,"ON"); } else SetDlgItemText(IDC_BUTTON_ONOFF,"OFF"); if(str=="OFF") { GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE); m_edit1=""; m_edit2=0.0; UpdateData(FALSE); } else { GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); } } void CCalculatorDlg::OnButtonPoint() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='.'; UpdateData(FALSE); } void CCalculatorDlg::OnBUTTONPorN() { // TODO: Add your control notification handler code here UpdateData(); if(m_edit1=="") MessageBox("操作不合法"); else { if(m_edit1[0]=='-') { m_edit1.Remove('-'); } else m_edit1="-"+m_edit1; } UpdateData(FALSE); } void CCalculatorDlg::OnButton0() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='0'; UpdateData(FALSE); } void CCalculatorDlg::OnButton1() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='1'; UpdateData(FALSE); } void CCalculatorDlg::OnButton2() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='2'; UpdateData(FALSE); } void CCalculatorDlg::OnButton3() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='3'; UpdateData(FALSE); } void CCalculatorDlg::OnButton4() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='4'; UpdateData(FALSE); } void CCalculatorDlg::OnButton5() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='5'; UpdateData(FALSE); } void CCalculatorDlg::OnButton6() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='6'; UpdateData(FALSE); } void CCalculatorDlg::OnButton7() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='7'; UpdateData(FALSE); } void CCalculatorDlg::OnButton8() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='8'; UpdateData(FALSE); } void CCalculatorDlg::OnButton9() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+='9'; UpdateData(FALSE); } void CCalculatorDlg::OnButtonPlus() { // TODO: Add your control notification handler code here if(m_Count_Style==1) { UpdateData(); m_edit1+='+'; UpdateData(FALSE); } if(m_Count_Style==2) { m_Count_type=1; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp1=atof(m_char); m_edit1=""; UpdateData(FALSE); } } void CCalculatorDlg::OnButtonSub() { // TODO: Add your control notification handler code here if(m_Count_Style==1) { UpdateData(); m_edit1+='-'; UpdateData(FALSE); } if(m_Count_Style==2) { m_Count_type=2; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp1=atof(m_char); m_edit1=""; UpdateData(FALSE); } } void CCalculatorDlg::OnButtonMul() { // TODO: Add your control notification handler code here if(m_Count_Style==1) { UpdateData(); m_edit1+='*'; UpdateData(FALSE); } if(m_Count_Style==2) { m_Count_type=3; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp1=atof(m_char); m_edit1=""; UpdateData(FALSE); } } void CCalculatorDlg::OnButtonDiv() { // TODO: Add your control notification handler code here if(m_Count_Style==1) { UpdateData(); m_edit1+='/'; UpdateData(FALSE); } if(m_Count_Style==2) { m_Count_type=4; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp1=atof(m_char); m_edit1=""; UpdateData(FALSE); } } void CCalculatorDlg::OnButtonQuyu() { // TODO: Add your control notification handler code here if(m_Count_Style==2) { m_Count_type=5; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp1=atof(m_char); m_edit1=""; UpdateData(FALSE); } } void CCalculatorDlg::OnButtonXy() { // TODO: Add your control notification handler code here m_Count_type=6; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp1=atof(m_char); m_edit1=""; UpdateData(FALSE); } void CCalculatorDlg::OnButtonDaoshu() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); double temp=atof(m_char); CString str=m_char; if(temp==0) MessageBox("0不能做除数"); else { m_edit1="1/"+str; m_edit2=1/temp; } UpdateData(FALSE); } void CCalculatorDlg::OnButtonSqrt() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="sqrt("+str+")"; m_edit2=sqrt(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonSin() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="sin("+str+")"; m_edit2=sin(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonCos() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="cos("+str+")"; m_edit2=cos(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonTan() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="tan("+str+")"; m_edit2=tan(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonSinh() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="sinh("+str+")"; m_edit2=sinh(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonCosh() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="cosh("+str+")"; m_edit2=cosh(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonTanh() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1="tanh("+str+")"; m_edit2=tanh(temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonInt() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; int temp=atoi(m_char); m_edit1="Int("+str+")"; m_edit2=temp; UpdateData(FALSE); } void CCalculatorDlg::OnButtonX2() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1=str+"*"+str; m_edit2=temp*temp; UpdateData(FALSE); } void CCalculatorDlg::OnButtonX3() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); m_edit1=str+"*"+str+"*"+str; m_edit2=temp*temp*temp; UpdateData(FALSE); } void CCalculatorDlg::OnButton10x() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; int temp=atoi(m_char); m_edit1="10^"+str; m_edit2=pow(10,temp); UpdateData(FALSE); } void CCalculatorDlg::OnButtonLn() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); if(temp<=0) MessageBox("参数不合法"); else { m_edit1="ln("+str+")"; m_edit2=log(temp); } UpdateData(FALSE); } void CCalculatorDlg::OnButtonN() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; int temp=atoi(m_char); temp=int(temp); m_edit1=str+"!"; m_edit2=temp; for(int i=temp-1;i>=1;i--) m_edit2*=i; UpdateData(FALSE); } void CCalculatorDlg::OnButtonLog() { // TODO: Add your control notification handler code here char m_char[10]; GetDlgItem(IDC_EDIT2)->GetWindowText(m_char,10); CString str=m_char; double temp=atof(m_char); if(temp<=0) MessageBox("参数不合法"); else { m_edit1="Log10("+str+")"; m_edit2=log10(temp); } UpdateData(FALSE); } void CCalculatorDlg::OnButtonLeft() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+="("; UpdateData(FALSE); } void CCalculatorDlg::OnButtonRight() { // TODO: Add your control notification handler code here UpdateData(); m_edit1+=")"; UpdateData(FALSE); } void CCalculatorDlg::OnButtonEqual() { // TODO: Add your control notification handler code here if(m_Count_Style==1) { UpdateData(); if(m_edit1=="") { m_result=0; goto lp; } int i=0; double v1,v2,v3; double s,f; char *ch=(LPTSTR)(LPCTSTR)m_edit1; //将CString类型强制转换为char *类型 stack<char> s1; stack<double> s2; while(ch[i]!='\0') { s=0; f=0.1; switch(ch[i]) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': while( (ch[i]>='0') && (ch[i]<='9') ) { s=s*10+(ch[i]-'0'); i++; } if(ch[i]=='.') { i++; while( (ch[i]>='0') && (ch[i]<='9')) { s=s+(ch[i]-'0')*f; f=f*0.1; i++; } } s2.push(s); i--; break; case '+': case '-': if( (s1.empty()) || (s1.top()=='(') ) s1.push(ch[i]); else { while( (!s1.empty()) && (s1.top()!='(') ) { switch(s1.top()) { case '+': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1+v2; s2.push(v3); break; case '-': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2-v1; s2.push(v3); break; case '*': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1*v2; s2.push(v3); break; case '/': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2/v1; s2.push(v3); break; }//switch s1.pop(); }//while s1.push(ch[i]); }//else break; case '*': case '/': if( (s1.empty()) || (s1.top()=='(') || (s1.top()=='+') || (s1.top()=='-') ) s1.push(ch[i]); else { while( (!s1.empty()) && (s1.top()!='(') && (s1.top()!='+') && (s1.top()!='-') ) { switch(s1.top()) { case '*': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1*v2; s2.push(v3); break; case '/': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2/v1; s2.push(v3); break; } s1.pop(); } s1.push(ch[i]); } break; case '(': s1.push(ch[i]); break; case ')': while( (!s1.empty()) && (s1.top()!='(') ) { switch(s1.top()) { case '+': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1+v2; s2.push(v3); break; case '-': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2-v1; s2.push(v3); break; case '*': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1*v2; s2.push(v3); break; case '/': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2/v1; s2.push(v3); break; } s1.pop(); } if(!s1.empty())//pop掉左括号 s1.pop(); break; }//switch i++; }//while while(!s1.empty()) { switch(s1.top()) { case '+': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1+v2; s2.push(v3); break; case '-': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2-v1; s2.push(v3); break; case '*': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v1*v2; s2.push(v3); break; case '/': v1=s2.top(); s2.pop(); v2=s2.top(); s2.pop(); v3=v2/v1; s2.push(v3); break; }//switch s1.pop(); }//while v3=s2.top(); s2.pop(); m_result=v3; } else if(m_Count_Style==2) { CString str1,str2; char m_c1[10],m_c2[10]; char m_char[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(m_char,10); m_temp2=atof(m_char); m_edit1=""; UpdateData(FALSE); switch(m_Count_type) { case 1: m_temp1+=m_temp2; if(m_result==0) m_result=m_temp1; else m_result+=m_temp2; break; case 2: m_temp1-=m_temp2; if(m_result==0) m_result=m_temp1; else m_result-=m_temp2; break; case 3: m_temp1*=m_temp2; if(m_result==0) m_result=m_temp1; else m_result*=m_temp2; break; case 4: m_temp1/=m_temp2; if(m_result==0) m_result=m_temp1; else m_result/=m_temp2; break; case 5: m_temp1=(int)m_temp1%(int)m_temp2; if(m_result==0) m_result=m_temp1; else m_result=(int)m_result%(int)m_temp2; break; case 6: itoa(m_temp1,m_c1,10); itoa(m_temp2,m_c2,10); str1=m_c1; str2=m_c2; m_edit1=str1+"^"+str2; m_result=pow(m_temp1,m_temp2); break; default: m_result=m_temp2; } } else { MessageBox("请选择计算的模式"); } lp: m_edit2=m_result; UpdateData(FALSE); }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值