📄 计算器dlg.cpp
字号:
void CMyDlg::On_sqrt()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=yang*yang;
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_C()
{
// TODO: Add your control notification handler code here
a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=0;
a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=0;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=0;
a[16]=0;a[17]=0;a[18]=0;a[19]=0;a[20]=0;a[21]=0;a[22]=0;a[23]=0;a[24]=0;a[25]=0;a[26]=0;a[27]=0;a[28]=0;a[29]=0;a[30]=0;a[31]=0;a[32]=0;
a[33]=0;a[34]=0;a[35]=0;a[36]=0;a[37]=0;a[38]=0;a[39]=0;a[40]=0;a[41]=0;a[42]=0;a[43]=0;a[44]=0;a[45]=0;a[46]=0;a[47]=0;a[48]=0;a[49]=0;
rem=0;
p=0.0;
iQian=0;
iType=0;
m_edit="0";
UpdateData(FALSE);
m_edit="";
}
void CMyDlg::On_Exit()
{
// TODO: Add your control notification handler code here
SendMessage(WM_CLOSE);
}
void CMyDlg::On_ZF()
{
// TODO: Add your control notification handler code here
m_edit="-"+m_edit;
UpdateData(FALSE);
}
void CMyDlg::On_1X()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=1/yang;
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_BaiFen()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=yang/100;
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_BackSpace()
{
// TODO: Add your control notification handler code here
char yang1[50];
int a;
strcpy(yang1,m_edit);
a=strlen(m_edit);
m_edit="";
--a;
for(int i=0;i<a;i++){m_edit=m_edit+yang1[i];}
UpdateData(FALSE);
}
void CMyDlg::On_Dian()
{
// TODO: Add your control notification handler code here
m_edit=m_edit+".";
UpdateData(FALSE);
}
void CMyDlg::On_sin()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=(yang*3.1415926)/180;
yang=sin(yang);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_cos()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=(yang*3.1415926)/180;
yang=cos(yang);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_tan()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=(yang*3.1415926)/180;
yang=tan(yang);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_arcsin()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
if(yang<=1&&yang>=-1) yang=asin(yang);
else MessageBox("error,请输入一个属于[-1,1]的数");
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_arccos()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
if(yang<=1&&yang>=-1) yang=acos(yang);
else MessageBox("error,请输入一个属于[-1,1]的数");
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_arctan()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=atan(yang);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_exp()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=exp(yang);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_log()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
if(yang>0) yang=log(yang);
else MessageBox("error,请输入一个属于(0,+∞)的数");
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_lg()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
if(yang>0) yang=log10(yang);
else MessageBox("error,请输入一个属于(0,+∞)的数");
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_save()
{
// TODO: Add your control notification handler code here
rem++;
double yang;
yang=atof(m_edit);
a[rem-1]=yang;
p=(double)rem;
UpdateData(FALSE); //显示所输入的数据
m_edit="";
}
void CMyDlg::On_average()
{
// TODO: Add your control notification handler code here
double sum,yang;
int i=0;
for(i=0,sum=0;i<p;i++)
sum=sum+a[i];
if(p>0) yang=sum/p;
else MessageBox("error,请先输入数据");
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_sum()
{
double sum;
int i=0;
for(i=0,sum=0;i<p;i++)
sum=sum+a[i];
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",sum);
m_edit = cRet;
UpdateData(FALSE);
// TODO: Add your control notification handler code here
}
void CMyDlg::On_sumx2()
{
double sum;
int i=0;
for(i=0,sum=0;i<p;i++)
sum=sum+a[i]*a[i];
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",sum);
m_edit = cRet;
UpdateData(FALSE);
// TODO: Add your control notification handler code here
}
void CMyDlg::On_s()
{
double sum1,q,m,s,n;
q=p;
int i=0;
for(i=0,sum1=0;i<p;i++)
sum1=sum1+a[i]*a[i];
double sum2;
for(i=0,sum2=0;i<p;i++)
sum2=sum2+a[i];
m=sum1-(sum2*sum2)/q;
if(q<=1)
{MessageBox("error,所输入数据个数必须大于1");
return;
}
else
{n=m/(q-1);s=sqrt(n);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",s);
m_edit = cRet;
UpdateData(FALSE);
}
// TODO: Add your control notification handler code here
}
void CMyDlg::On_jiecheng()
{
float fac(int);
double yang;
double yau;
int n;
yau=atof(m_edit);
n=(int)yau;
yang=fac(n);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
// TODO: Add your control notification handler code here
}
float fac(int n)
{
if(n==0||n==1)
return 1;
return n*fac(n-1);
}
void CMyDlg::On_del()
{
rem--;
p--;
// TODO: Add your control notification handler code here
}
void CMyDlg::On_n()
{
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%d",rem);
m_edit = cRet;
UpdateData(FALSE);
m_edit="";
// TODO: Add your control notification handler code here
}
void CMyDlg::OnButton24()
{
// TODO: Add your control notification handler code here
double yang;
yang=atof(m_edit);
yang=sqrt(yang);
char cRet[50];
memset(cRet,0,50);
sprintf(cRet,"%1f",yang);
m_edit = cRet;
UpdateData(FALSE);
}
void CMyDlg::On_start()
{
// TODO: Add your control notification handler code here
rem=0;
a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=0;
a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=0;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=0;
a[16]=0;a[17]=0;a[18]=0;a[19]=0;a[20]=0;a[21]=0;a[22]=0;a[23]=0;a[24]=0;a[25]=0;a[26]=0;a[27]=0;a[28]=0;a[29]=0;
rem=0;
p=0.0;
m_edit="";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -