⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 计算器dlg.cpp

📁 这是一个仿照实体计算器功能设计
💻 CPP
📖 第 1 页 / 共 2 页
字号:
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 + -