用C++写一个有图形界面的计算器,用VC++6.0 MFC只用实现加减乘除就行 用C++做一个计算器图形界面 怎么做?能进行加减乘除就行

作者&投稿:蔚玲 (若有异议请与网页底部的电邮联系)
很简单的,包含各种运算符的计算器。

//MyDlg的头文件
// CMyDlg 对话框
#include "afxwin.h"

class CMyDlg : public CDialog
{
DECLARE_DYNAMIC(CMyDlg)

public:
CMyDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CMyDlg();
BOOL PreTranslateMessage(MSG* pMsg);

// 对话框数据
enum { IDD = IDD_LOGIN_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedButton1();
public:
void Calc1();//按下数字键
void Calc2();//按下符号键
protected:
char m_sign;//记录按下哪个运算符
int m_numb;//记录按了哪个数字键
bool point;//是否按下小数点
bool equals;//是否按下等号
bool num; //是否按下数字键
bool funs;//是否按下功能键
int nums;//运算小数点之后的值
double number1;//按下运算符之后的数值
double number2;//没按运算符之前的数值
int m_edit;//记录按下的数字键的数值
char c_edit;//记录按下的运算符
CString m_EDIT1;
CString n_EDIT1;
protected:
afx_msg void OnClose();

public:
afx_msg void OnBnClickedButton17();
afx_msg void OnBnClickedButton18();
afx_msg void OnBnClickedButton21();
afx_msg void OnBnClickedButton2();
afx_msg void OnBnClickedButton3();
afx_msg void OnBnClickedButton4();
afx_msg void OnBnClickedButton5();
afx_msg void OnBnClickedButton6();
afx_msg void OnBnClickedButton7();
afx_msg void OnBnClickedButton8();
afx_msg void OnBnClickedButton9();
afx_msg void OnBnClickedButton10();
afx_msg void OnBnClickedButton12();
afx_msg void OnBnClickedButton13();
afx_msg void OnBnClickedButton14();
afx_msg void OnBnClickedButton15();
afx_msg void OnBnClickedButton19();
afx_msg void OnBnClickedButton11();
afx_msg void OnBnClickedButton16();
afx_msg void OnBnClickedButton20();
afx_msg void OnBnClickedButton22();
afx_msg void OnBnClickedButton25();
afx_msg void OnBnClickedButton24();
afx_msg void OnBnClickedButton23();
afx_msg void OnBnClickedButton26();
CEdit m_EDIT;
// afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
};
#pragma once

// MyDlg.cpp : 实现文件
#include "stdafx.h"
#include "MyDlg.h"
#include "math.h"

// CMyDlg 对话框
IMPLEMENT_DYNAMIC(CMyDlg, CDialog)

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyDlg::IDD, pParent)
{
number1 = 0;
number2 = 0;
nums =-1;
num = false;
point = false;
equals = false;
funs = false;
m_sign = '=';

}
CMyDlg::~CMyDlg()
{
}

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
/*DDX_Control(pDX, IDC_USERNAME, m_EDIT);*/
}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
/*ON_BN_CLICKED(IDC_BUTTON1, &CMyDlg::OnBnClickedButton1)*/
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON17, &CMyDlg::OnBnClickedButton17)
ON_BN_CLICKED(IDC_BUTTON18, &CMyDlg::OnBnClickedButton18)
ON_BN_CLICKED(IDC_BUTTON21, &CMyDlg::OnBnClickedButton21)
ON_BN_CLICKED(IDC_BUTTON2, &CMyDlg::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3, &CMyDlg::OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON4, &CMyDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5, &CMyDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON6, &CMyDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON7, &CMyDlg::OnBnClickedButton7)
ON_BN_CLICKED(IDC_BUTTON8, &CMyDlg::OnBnClickedButton8)
ON_BN_CLICKED(IDC_BUTTON9, &CMyDlg::OnBnClickedButton9)
ON_BN_CLICKED(IDC_BUTTON10, &CMyDlg::OnBnClickedButton10)
ON_BN_CLICKED(IDC_BUTTON12, &CMyDlg::OnBnClickedButton12)
ON_BN_CLICKED(IDC_BUTTON13, &CMyDlg::OnBnClickedButton13)
ON_BN_CLICKED(IDC_BUTTON14, &CMyDlg::OnBnClickedButton14)
ON_BN_CLICKED(IDC_BUTTON15, &CMyDlg::OnBnClickedButton15)
ON_BN_CLICKED(IDC_BUTTON19, &CMyDlg::OnBnClickedButton19)
ON_BN_CLICKED(IDC_BUTTON11, &CMyDlg::OnBnClickedButton11)
ON_BN_CLICKED(IDC_BUTTON16, &CMyDlg::OnBnClickedButton16)
ON_BN_CLICKED(IDC_BUTTON20, &CMyDlg::OnBnClickedButton20)
ON_BN_CLICKED(IDC_BUTTON22, &CMyDlg::OnBnClickedButton22)
ON_BN_CLICKED(IDC_BUTTON25, &CMyDlg::OnBnClickedButton25)
ON_BN_CLICKED(IDC_BUTTON24, &CMyDlg::OnBnClickedButton24)
ON_BN_CLICKED(IDC_BUTTON23, &CMyDlg::OnBnClickedButton23)
ON_BN_CLICKED(IDC_BUTTON26, &CMyDlg::OnBnClickedButton26)
// ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

// CMyDlg 消息处理程序

// void CMyDlg::OnBnClickedButton1()
// {
// // TODO: 在此添加控件通知处理程序代码
// }

void CMyDlg::OnBnClickedButton17()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = sqrt(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = sqrt(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton18()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
if (number1!=0)
{
number1 = 1/number1;
m_EDIT1.Format("%lg",number1);

}
else
{
m_EDIT1 = "除数不能为0";
}
}
else
{
if (number2!=0)
{
number2 = 1/number2;
m_EDIT1.Format("%lg",number2);

}
else
{
m_EDIT1 = "除数不能为0";
}
}
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton21()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 1;
Calc1();
}

void CMyDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 2;
Calc1();
}

void CMyDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 3;
Calc1();
}

void CMyDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 4;
Calc1();
}

void CMyDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 5;
Calc1();
}

void CMyDlg::OnBnClickedButton6()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 6;
Calc1();
}

void CMyDlg::OnBnClickedButton7()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 7;
Calc1();
}

void CMyDlg::OnBnClickedButton8()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 8;
Calc1();
}

void CMyDlg::OnBnClickedButton9()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 9;
Calc1();
}

void CMyDlg::OnBnClickedButton10()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 0;
Calc1();
}

void CMyDlg::OnBnClickedButton12()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '+';
}

void CMyDlg::OnBnClickedButton13()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '-';
}

void CMyDlg::OnBnClickedButton14()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '*';
}

void CMyDlg::OnBnClickedButton15()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '/';
}

void CMyDlg::OnBnClickedButton19()
{
// TODO: 在此添加控件通知处理程序代码
number1 = 0;
number2 = 0;
nums =-1;
num = false;
point = false;
equals = false;
funs = false;
m_sign = '=';
m_EDIT1.Format("%lg",number1);
SetDlgItemText(IDC_EDIT1,m_EDIT1);
}

void CMyDlg::OnBnClickedButton11()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '=';
equals = true;
}

void CMyDlg::OnBnClickedButton16()
{
// TODO: 在此添加控件通知处理程序代码

if (equals)
{
if (point == true)
{
m_EDIT1.Format("%lg",number1);
}
else
{
m_EDIT1.Format("%lg",number1);
m_EDIT1 += ".";
}
}
else
{
if (point == true)
{
m_EDIT1.Format("%lg",number2);
}
else
{
m_EDIT1.Format("%lg",number2);
m_EDIT1 += ".";
}

}
point = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}
void CMyDlg::Calc1()//点击数字键
{
switch(m_numb)
{
case 0:
m_edit = 0;
break;
case 1:
m_edit = 1;
break;
case 2:
m_edit = 2;
break;
case 3:
m_edit = 3;
break;
case 4:
m_edit = 4;
break;
case 5:
m_edit = 5;
break;
case 6:
m_edit = 6;
break;
case 7:
m_edit = 7;
break;
case 8:
m_edit = 8;
break;
case 9:
m_edit = 9;
break;
}
if (equals)
{
equals = false;
num = false;
}
if (point)
{
number2 = number2+m_edit*pow((double)10,(double)(nums--));
if (m_edit == 0)
{
if (nums == -2)
{
m_EDIT1.Format("%lg",number2);
m_EDIT1 += ".0";
}
else
{
m_EDIT1.Format("%lg",number2);
m_EDIT1 += "0";
}
}
else
m_EDIT1.Format("%lg",number2);

}
else
{
number2 = number2 * 10 + m_edit;
m_EDIT1.Format("%lg",number2);
}
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}
void CMyDlg::Calc2()//点击运算符
{
if (!equals)
{
if (num)//按下运算符之后,接着是否按下了数字键
{
switch (m_sign)
{
case '+':
number1 = number1+number2;
break;
case '-':
number1 = number1-number2;
break;
case '*':
number1 = number1*number2;
break;
case '/':
if (number2 != 0)
{
number1 = number1/number2;
}
break;
}
}
else
{
number1 = number2;
num = true;
}
}
else
{
equals = false;
}
if (m_sign == '/'&& number2 == 0)
m_EDIT1 = "除数不能为零";
else
m_EDIT1.Format("%lg",number1);
number2 = 0;
point = false;
nums = -1;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);

}

void CMyDlg::OnBnClickedButton20()//退格键
{
// TODO: 在此添加控件通知处理程序代码
if (!(equals||funs))
{
m_EDIT1.Format("%lg",number2);
int n = m_EDIT1.GetLength()-1;
CString c1 = m_EDIT1.Left(n);
if (n)
SetDlgItemText(IDC_EDIT1,c1);
else
SetDlgItemText(IDC_EDIT1,"0");
number2 = atof(c1);
}
UpdateData(FALSE);

}

void CMyDlg::OnBnClickedButton22()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = sin(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = sin(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);

}

void CMyDlg::OnBnClickedButton25()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = exp(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = exp(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton24()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = log(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = log(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton23()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = cos(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = cos(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton26()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = pow(number1,2);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = pow(number2,2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnClose()
{
if ( MessageBox(_T("是否退出程序?"),_T("提示"),MB_YESNO|MB_ICONQUESTION) == IDYES )
{
CDialog::OnClose();
}
}
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam == VK_ESCAPE)
{
return true;
}
if(pMsg->wParam == VK_RETURN)
{
return true;
}
}
return CDialog::PreTranslateMessage(pMsg);

}

链接: https://pan.baidu.com/s/1_H1d4d88BjEbHG_6N84zGw 密码: p6if
这是一个十六进制的计算器,你可以参考一下。

用C++写一个有图形界面的计算器~

很简单的,包含各种运算符的计算器。

//MyDlg的头文件
// CMyDlg 对话框
#include "afxwin.h"

class CMyDlg : public CDialog
{
DECLARE_DYNAMIC(CMyDlg)

public:
CMyDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CMyDlg();
BOOL PreTranslateMessage(MSG* pMsg);

// 对话框数据
enum { IDD = IDD_LOGIN_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedButton1();
public:
void Calc1();//按下数字键
void Calc2();//按下符号键
protected:
char m_sign;//记录按下哪个运算符
int m_numb;//记录按了哪个数字键
bool point;//是否按下小数点
bool equals;//是否按下等号
bool num; //是否按下数字键
bool funs;//是否按下功能键
int nums;//运算小数点之后的值
double number1;//按下运算符之后的数值
double number2;//没按运算符之前的数值
int m_edit;//记录按下的数字键的数值
char c_edit;//记录按下的运算符
CString m_EDIT1;
CString n_EDIT1;
protected:
afx_msg void OnClose();

public:
afx_msg void OnBnClickedButton17();
afx_msg void OnBnClickedButton18();
afx_msg void OnBnClickedButton21();
afx_msg void OnBnClickedButton2();
afx_msg void OnBnClickedButton3();
afx_msg void OnBnClickedButton4();
afx_msg void OnBnClickedButton5();
afx_msg void OnBnClickedButton6();
afx_msg void OnBnClickedButton7();
afx_msg void OnBnClickedButton8();
afx_msg void OnBnClickedButton9();
afx_msg void OnBnClickedButton10();
afx_msg void OnBnClickedButton12();
afx_msg void OnBnClickedButton13();
afx_msg void OnBnClickedButton14();
afx_msg void OnBnClickedButton15();
afx_msg void OnBnClickedButton19();
afx_msg void OnBnClickedButton11();
afx_msg void OnBnClickedButton16();
afx_msg void OnBnClickedButton20();
afx_msg void OnBnClickedButton22();
afx_msg void OnBnClickedButton25();
afx_msg void OnBnClickedButton24();
afx_msg void OnBnClickedButton23();
afx_msg void OnBnClickedButton26();
CEdit m_EDIT;
//afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
};
#pragma once

// MyDlg.cpp : 实现文件
#include "stdafx.h"
#include "MyDlg.h"
#include "math.h"

// CMyDlg 对话框
IMPLEMENT_DYNAMIC(CMyDlg, CDialog)

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyDlg::IDD, pParent)
{
number1 = 0;
number2 = 0;
nums =-1;
num = false;
point = false;
equals = false;
funs = false;
m_sign = '=';

}
CMyDlg::~CMyDlg()
{
}

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
/*DDX_Control(pDX, IDC_USERNAME, m_EDIT);*/
}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
/*ON_BN_CLICKED(IDC_BUTTON1, &CMyDlg::OnBnClickedButton1)*/
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON17, &CMyDlg::OnBnClickedButton17)
ON_BN_CLICKED(IDC_BUTTON18, &CMyDlg::OnBnClickedButton18)
ON_BN_CLICKED(IDC_BUTTON21, &CMyDlg::OnBnClickedButton21)
ON_BN_CLICKED(IDC_BUTTON2, &CMyDlg::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3, &CMyDlg::OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON4, &CMyDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5, &CMyDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON6, &CMyDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON7, &CMyDlg::OnBnClickedButton7)
ON_BN_CLICKED(IDC_BUTTON8, &CMyDlg::OnBnClickedButton8)
ON_BN_CLICKED(IDC_BUTTON9, &CMyDlg::OnBnClickedButton9)
ON_BN_CLICKED(IDC_BUTTON10, &CMyDlg::OnBnClickedButton10)
ON_BN_CLICKED(IDC_BUTTON12, &CMyDlg::OnBnClickedButton12)
ON_BN_CLICKED(IDC_BUTTON13, &CMyDlg::OnBnClickedButton13)
ON_BN_CLICKED(IDC_BUTTON14, &CMyDlg::OnBnClickedButton14)
ON_BN_CLICKED(IDC_BUTTON15, &CMyDlg::OnBnClickedButton15)
ON_BN_CLICKED(IDC_BUTTON19, &CMyDlg::OnBnClickedButton19)
ON_BN_CLICKED(IDC_BUTTON11, &CMyDlg::OnBnClickedButton11)
ON_BN_CLICKED(IDC_BUTTON16, &CMyDlg::OnBnClickedButton16)
ON_BN_CLICKED(IDC_BUTTON20, &CMyDlg::OnBnClickedButton20)
ON_BN_CLICKED(IDC_BUTTON22, &CMyDlg::OnBnClickedButton22)
ON_BN_CLICKED(IDC_BUTTON25, &CMyDlg::OnBnClickedButton25)
ON_BN_CLICKED(IDC_BUTTON24, &CMyDlg::OnBnClickedButton24)
ON_BN_CLICKED(IDC_BUTTON23, &CMyDlg::OnBnClickedButton23)
ON_BN_CLICKED(IDC_BUTTON26, &CMyDlg::OnBnClickedButton26)
//ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

// CMyDlg 消息处理程序

// void CMyDlg::OnBnClickedButton1()
// {
// // TODO: 在此添加控件通知处理程序代码
// }

void CMyDlg::OnBnClickedButton17()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = sqrt(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = sqrt(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton18()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
if (number1!=0)
{
number1 = 1/number1;
m_EDIT1.Format("%lg",number1);

}
else
{
m_EDIT1 = "除数不能为0";
}
}
else
{
if (number2!=0)
{
number2 = 1/number2;
m_EDIT1.Format("%lg",number2);

}
else
{
m_EDIT1 = "除数不能为0";
}
}
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton21()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 1;
Calc1();
}

void CMyDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 2;
Calc1();
}

void CMyDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 3;
Calc1();
}

void CMyDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 4;
Calc1();
}

void CMyDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 5;
Calc1();
}

void CMyDlg::OnBnClickedButton6()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 6;
Calc1();
}

void CMyDlg::OnBnClickedButton7()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 7;
Calc1();
}

void CMyDlg::OnBnClickedButton8()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 8;
Calc1();
}

void CMyDlg::OnBnClickedButton9()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 9;
Calc1();
}

void CMyDlg::OnBnClickedButton10()
{
// TODO: 在此添加控件通知处理程序代码
m_numb = 0;
Calc1();
}

void CMyDlg::OnBnClickedButton12()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '+';
}

void CMyDlg::OnBnClickedButton13()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '-';
}

void CMyDlg::OnBnClickedButton14()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '*';
}

void CMyDlg::OnBnClickedButton15()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '/';
}

void CMyDlg::OnBnClickedButton19()
{
// TODO: 在此添加控件通知处理程序代码
number1 = 0;
number2 = 0;
nums =-1;
num = false;
point = false;
equals = false;
funs = false;
m_sign = '=';
m_EDIT1.Format("%lg",number1);
SetDlgItemText(IDC_EDIT1,m_EDIT1);
}

void CMyDlg::OnBnClickedButton11()
{
// TODO: 在此添加控件通知处理程序代码
Calc2();
m_sign = '=';
equals = true;
}

void CMyDlg::OnBnClickedButton16()
{
// TODO: 在此添加控件通知处理程序代码

if (equals)
{
if (point == true)
{
m_EDIT1.Format("%lg",number1);
}
else
{
m_EDIT1.Format("%lg",number1);
m_EDIT1 += ".";
}
}
else
{
if (point == true)
{
m_EDIT1.Format("%lg",number2);
}
else
{
m_EDIT1.Format("%lg",number2);
m_EDIT1 += ".";
}

}
point = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}
void CMyDlg::Calc1()//点击数字键
{
switch(m_numb)
{
case 0:
m_edit = 0;
break;
case 1:
m_edit = 1;
break;
case 2:
m_edit = 2;
break;
case 3:
m_edit = 3;
break;
case 4:
m_edit = 4;
break;
case 5:
m_edit = 5;
break;
case 6:
m_edit = 6;
break;
case 7:
m_edit = 7;
break;
case 8:
m_edit = 8;
break;
case 9:
m_edit = 9;
break;
}
if (equals)
{
equals = false;
num = false;
}
if (point)
{
number2 = number2+m_edit*pow((double)10,(double)(nums--));
if (m_edit == 0)
{
if (nums == -2)
{
m_EDIT1.Format("%lg",number2);
m_EDIT1 += ".0";
}
else
{
m_EDIT1.Format("%lg",number2);
m_EDIT1 += "0";
}
}
else
m_EDIT1.Format("%lg",number2);

}
else
{
number2 = number2 * 10 + m_edit;
m_EDIT1.Format("%lg",number2);
}
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}
void CMyDlg::Calc2()//点击运算符
{
if (!equals)
{
if (num)//按下运算符之后,接着是否按下了数字键
{
switch (m_sign)
{
case '+':
number1 = number1+number2;
break;
case '-':
number1 = number1-number2;
break;
case '*':
number1 = number1*number2;
break;
case '/':
if (number2 != 0)
{
number1 = number1/number2;
}
break;
}
}
else
{
number1 = number2;
num = true;
}
}
else
{
equals = false;
}
if (m_sign == '/'&& number2 == 0)
m_EDIT1 = "除数不能为零";
else
m_EDIT1.Format("%lg",number1);
number2 = 0;
point = false;
nums = -1;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);

}

void CMyDlg::OnBnClickedButton20()//退格键
{
// TODO: 在此添加控件通知处理程序代码
if (!(equals||funs))
{
m_EDIT1.Format("%lg",number2);
int n = m_EDIT1.GetLength()-1;
CString c1 = m_EDIT1.Left(n);
if (n)
SetDlgItemText(IDC_EDIT1,c1);
else
SetDlgItemText(IDC_EDIT1,"0");
number2 = atof(c1);
}
UpdateData(FALSE);

}

void CMyDlg::OnBnClickedButton22()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = sin(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = sin(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);

}

void CMyDlg::OnBnClickedButton25()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = exp(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = exp(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton24()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = log(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = log(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton23()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = cos(number1);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = cos(number2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnBnClickedButton26()
{
// TODO: 在此添加控件通知处理程序代码
if (equals)
{
number1 = pow(number1,2);
m_EDIT1.Format("%lg",number1);

}
else
{
number2 = pow(number2,2);
m_EDIT1.Format("%lg",number2);
/*IDC_EDIT1.SetWindowText(m_EDIT1);*/
}
funs = true;
SetDlgItemText(IDC_EDIT1,m_EDIT1);
UpdateData(FALSE);
}

void CMyDlg::OnClose()
{
if ( MessageBox(_T("是否退出程序?"),_T("提示"),MB_YESNO|MB_ICONQUESTION) == IDYES )
{
CDialog::OnClose();
}
}
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam == VK_ESCAPE)
{
return true;
}
if(pMsg->wParam == VK_RETURN)
{
return true;
}
}
return CDialog::PreTranslateMessage(pMsg);

}

界面你总会吧,就是仿照windows的计算机那样拉按钮就可以了,然后在类里定义俩个UINT变量,用于记录俩个输入的值,一个char变量,用于保存加减乘除字符,比如按下+号按钮,char变量='+',最后的运算在=号按钮里进行,至于显示到编辑框你总会吧

用c语言做一个简单的计算器。要求能做四则运算就够了,越简单越好。刚学...
答:用c语言做一个简单的计算器。要求能做四则运算就够了,越简单越好。刚学了半年的C语言 20  我来答 4个回答 #热议# 网文质量是不是下降了? liyapingliyap 2011-06-30 知道答主 回答量:1 采纳率:0% 帮助的人:0 我也去答题访问个人页 关注 展开全部 #include <stdio.h> #include <...

用C语言怎么设计一个简单计算器?
答:"input B:\n");scanf("%d",&b);puts("input operation:\n");getchar();p=getchar();if(p=='+') add(a,b,c);else if(p=='-') minus(a,b,c);else if(p=='*') multiplication(a,b,c);else if(p=='/') div(a,b,c);else puts("没有注册这个运算符号\n");} ...

c语言简易计算器,要求输入两个整数,选择一种运算,输出结果,界面如下...
答:\n\n");ask(numA,numB);} } void main(){ printf("*21级1班,小组成员,姓名:姓名,姓名*\n\n\n");printf("***模拟计算器开始***\n\n");int numA,numB;printf("请输入两个运算数字(用,号隔开):");scanf("%d,%d",&numA,&numB);ask(numA,numB);} ...

如何用C程序编写一个计算器
答:因为每次进行计算都要重新运行,很麻烦,我们可以加入循环语句。5 include "stdafx.h"int main(int argc, char* argv[]){ float x;float y;char r;printf("请输入如 1+2 的格式\n");scanf("%f%c%f",&x,&r,&y);for(;;){ if(r=='+') printf("x+y=%f\n",x+y);else if(r=...

如何用c语言写计算器程序
答://实现计算机功能的程序 a program which can work the functions as a computer.include <stdio.h>//头文件 include <conio.h> void menu();//声明部分 void add();void sub();void mul();void div();void remain();void add_n_to_m();void factor();main(){ int i;while(1){ s...

用C语言做一个计算器,能实现加减乘除混合运算?
答:是的,可以使用C语言编写一个计算器程序,能够实现加、减、乘、除等混合运算。下面是一个简单的示例程序:```c include <stdio.h> int main() { char operator;double num1, num2, result;printf("Enter an operator (+, -, *, /): ");scanf("%c", &operator);printf("Enter two ...

用C语言设计一个多功能计算器
答:一.题目意义和设计思想 1、题目意义 多功能计算器的设计目的是为了简化计算及对所学C语言知识的有效应用。在多功能计算器设计的这个实际的例子中,我们运用C语言知识来解决这个生活中的实际问题。从而能更有效地检验自己的C语言学习的水平,加强对知识的掌握,提高解决实际问题的能力。 2、设计思想 ...

求按要求用C语言作的一个计算器
答:有做好的请发我邮箱koeiii@sina.com好用的话在加分要求为设计一个多功能计算器实现功能:1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算... 有做好的请发我邮箱koeiii@sina.com 好用的话在加分要求为设计一个多功能计算器实现功能:1)具备整型数据、浮点型数据的...

200分求一个C/C++带简单图形界面的计算器源程序~
答:仿Windows的自带计算器 说明:C语言课程设计作品 功能:仿Windows的自带计算器 环境:DOS 大小:800多行 特色:图形界面,支持鼠标,算法稍有复杂 我传上来了,文件比较小,呵呵。如果是为了给自己刷分,就当我多嘴了啊~附件:仿Windows的自带计算器.zip ...

c语言编写“多功能计算器”的代码
答:b){ return a/b;} int rem(int a ,int b){ return a%b;} int addnumber(int c,int d){ int sum=0;for(int i=c;i<=d;i++){ sum+=i;} return sum;} int factor(int n){ int f=1;for(int i=1;i<=n;i++){ f*=i;} return f;} void displaymenu(){ printf("...