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

📄 计算器dlg.cpp

📁 这个也是一个计算器用VISUAL C++设计
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        m_edit_io.Format("%lf",m);
    	UpdateData(0);
        
   }
		if(b==16)
	{
		double m=otherstoten(m_edit_io,b);
		b=10;
        m_edit_io.Format("%lf",m);
    	UpdateData(0);
        
   }
   b=10;
}

void CMyDlg::OnRADIOOct() //八进制
{
	// TODO: Add your control notification handler code here
	CWnd *pWnd=this->GetDlgItem(IDC_BTN_sin);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_cos);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_tan);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_cot);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_A);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_B);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_C);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_D);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_Ebig);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_F);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_8);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_9);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_7);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_6);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_5);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_4);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_3);
    pWnd->EnableWindow(1);
	pWnd=this->GetDlgItem(IDC_BTN_2);
    pWnd->EnableWindow(1);
	UpdateData(1);
	if(b==10)
	{
		int i=0;
	    char str[100];
	    int len=m_edit_io.GetLength()-1;
		if(len<0) {b=8;return;}
    	for(;i<=len;i++)
		{
		    str[i]=m_edit_io[i];
		}
	
	    double temp=atof(str);
        b=8;
		m_edit_io=tentoothers(temp,b);
    	UpdateData(0);
        
   }
	if(b==16)
	{
		double m=otherstoten(m_edit_io,b);
        b=8;
		m_edit_io=tentoothers(m,b);
    	UpdateData(0);
        
   }
		if(b==2)
	{
		double m=otherstoten(m_edit_io,b);
        b=8;
		m_edit_io=tentoothers(m,b);
    	UpdateData(0);
        
   }
   b=8;
}

void CMyDlg::OnRADIOBin() //二进制
{
	// TODO: Add your control notification handler code here
	CWnd *pWnd=this->GetDlgItem(IDC_BTN_sin);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_cos);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_tan);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_cot);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_A);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_B);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_C);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_D);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_Ebig);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_F);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_8);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_9);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_7);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_6);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_5);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_4);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_3);
    pWnd->EnableWindow(0);
	pWnd=this->GetDlgItem(IDC_BTN_2);
    pWnd->EnableWindow(0);
	UpdateData(1);
	if(b==10)
	{
		int i=0;
	    char str[100];
	    int len=m_edit_io.GetLength()-1;
		if(len<0) {b=2;return;}
    	for(;i<=len;i++)
		{
		    str[i]=m_edit_io[i];
		}
	
	    double temp=atof(str);
        b=2;
		m_edit_io=tentoothers(temp,b);
    	UpdateData(0);
        
   }
	if(b==8)
	{
		double m=otherstoten(m_edit_io,b);
        b=2;
		m_edit_io=tentoothers(m,b);
    	UpdateData(0);
        
   }
		if(b==16)
	{
		double m=otherstoten(m_edit_io,b);
        b=2;
		m_edit_io=tentoothers(m,b);
    	UpdateData(0);
        
   }
   b=2;
}

void CMyDlg::OnBTNln() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int i=0;
	char str[100];
	int len=m_edit_io.GetLength()-1;
	if(len<0) return;
	for(;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	
	double temp=atof(str);
	if(temp<0)
	{
		AfxMessageBox ("语法不合,负数不能求对数!");UpdateData(0);return;
	}
	double m=log(temp);
	m_edit_io.Format("%lf",m);
	UpdateData(0);
}

void CMyDlg::OnBTNlog() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int i=0;
	char str[100];
	int len=m_edit_io.GetLength()-1;
	if(len<0) return;
	for(;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	
	double temp=atof(str);
	if(temp<0)
	{
		AfxMessageBox ("语法不合,负数不能求对数!");UpdateData(0);return;
	}
    double m=log10(temp);
    m_edit_io.Format("%lf",m);
	UpdateData(0);
}

void CMyDlg::OnBTNnn() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int i=0;
	char str[100];
	int len=m_edit_io.GetLength()-1;
	if(len<0) return;
	for(;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	
	double temp=atof(str);
	double j=temp,m=1;
	for(;j>0;j--)
	{
        m*=j;
	}
	m_edit_io.Format("%lf",m);
	UpdateData(0);
}

void CMyDlg::OnBTNdaoshu() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	  int i=0;
	char str[100];
	int len=m_edit_io.GetLength()-1;
	if(len<0) return;
	for(;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	
	double temp=atof(str);
	if(temp==0)
	{
		AfxMessageBox ("语法不合,0不能作为分母!");UpdateData(0);return;
	}
	double m=1/temp;
	m_edit_io.Format("%lf",m);
	UpdateData(0);
}

void CMyDlg::OnBTNMod() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_edit_io+="Mod";
	mod=1;
	UpdateData(0);
}

void CMyDlg::OnBTNAnd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_edit_io+="And";
	and=1;
	UpdateData(0);
}

void CMyDlg::OnBTNOr() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_edit_io+="Or";
	or=1;
	UpdateData(0);
}

void CMyDlg::OnBTNXor() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_edit_io+="Xor";
	xor=1;
	UpdateData(0);
}

void CMyDlg::OnBTNLsh() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_edit_io+="Lsh";
	lsh=1;
	UpdateData(0);
}

void CMyDlg::OnBTNNot() 
{
	// TODO: Add your control notification handler code here
}

void CMyDlg::OnBTNInt() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	int i;
	char str[100];
	if(len<0) return;
	for(i=0;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	double temp=atoi(str);
	m_edit_io.Format("%lf",temp);
	UpdateData(0);
}

void CMyDlg::OnBtnDy() 
{
    // TODO: Add your control notification handler code here
    UpdateData(1);
	if(xy==1)
	{
		int len=m_edit_io.GetLength()-1;
		int i,dot;
		CString cher1,cher2;
		for(i=0;i<=len;i++)
		{
			if(m_edit_io[i]=='^')
			{
				dot=i;break;
			}
		}
		for(i=0;i<dot;i++)
		{
			cher1+=m_edit_io[i];
		}
		for(i=dot+1;i<=len;i++)
		{
			cher2+=m_edit_io[i];
		}
		double x,y;
		x=atof(cher1);
		y=atof(cher2);
		double temp=pow(x,y);
		CString str;
    	str.Format("%lf",temp);
	    AddToHistr(m_edit_io+" = "+ str);
		m_edit_io.Format("%lf",temp);
		xy=0;
		UpdateData(0);return;
	}
	if(mod==1)
	{
		int len=m_edit_io.GetLength()-1;
		int i,dot;
		CString cher1,cher2;
		for(i=0;i<=len;i++)
		{
			if(m_edit_io[i]=='M')
			{
				dot=i;break;
			}
		}
		for(i=0;i<dot;i++)
		{
			cher1+=m_edit_io[i];
		}
		for(i=dot+3;i<=len;i++)
		{
			cher2+=m_edit_io[i];
		}
		double x,y;
		x=atof(cher1);
		y=atof(cher2);
		double temp=fmod(x,y);
		CString str;
    	str.Format("%lf",temp);
    	AddToHistr(m_edit_io+" = "+ str);
		m_edit_io.Format("%lf",temp);
		mod=0;
		UpdateData(0);return;
	}
	double temp;
	int len=m_edit_io.GetLength()-1;
	if(len<0) return;
	temp=calculate(m_edit_io);  
	CString str;
	str.Format("%lf",temp);
	AddToHistr(m_edit_io+" = "+ str);
	m_edit_io.Format("%lf",temp);
    UpdateData(0);
	
}


void CMyDlg::OnBUTTONbhao() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0) return;
	int i;
	char str[100];
	for(i=1;i<=len;i++)
	{
		if((m_edit_io[i]<='9'&&m_edit_io[i]>='0')||(m_edit_io[i]<='F'&&m_edit_io[i]>='A')||m_edit_io[i]=='.')
		{
			
			str[i-1]=m_edit_io[i-1];str[len]=m_edit_io[len];
		}
		else 
            
		{AfxMessageBox ("语法不合!");UpdateData(0);return;	}
	    
	}
	    if(m_edit_io[0]=='(')
		{
			AfxMessageBox("语法不合!");UpdateData(0);return;
		}
    	double temp=atof(str);
		temp=-temp;
	    m_edit_io.Format("%lf",temp);
	    UpdateData(0);


}



void CMyDlg::OnRADIODeg() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int len=m_edit_io.GetLength()-1;
	if(len<0) {deg=1;rad=0;return;}
	int i;
	char str[100];
	for(i=0;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	if(deg==0)
	{
		double temp=atof(str);
		double m=temp*(180/3.1415926535897932384626433832795);
		m_edit_io.Format("%lf",m);
	}
	deg=1;rad=0;
	UpdateData(0);
}

void CMyDlg::OnRADIORad() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	int len=m_edit_io.GetLength()-1;
	if(len<0) {deg=0;rad=1;return;}
	int i;
	char str[100];
	for(i=0;i<=len;i++)
	{
		str[i]=m_edit_io[i];
	}
	if(deg==1)
	{
		double temp=atof(str);
		double m=temp/(180/3.1415926535897932384626433832795);
		m_edit_io.Format("%lf",m);
	}
	deg=0;rad=1;
	UpdateData(0);
}

void CMyDlg::OnBTNhistory() 
{
	// TODO: Add your control notification handler code here
	CPoint point;
	GetCursorPos(&point);
	m_menu.TrackPopupMenu(TPM_CENTERALIGN,point.x,point.y,this);		
}

void CMyDlg::AddToHistr(CString strExp)     //历史
{
	if(m_menu.m_hMenu)
	{
		int b=m_menu.GetMenuItemCount();
		BOOL bRet=m_menu.AppendMenu(MF_STRING,IMENU_ITEM_ID+b,strExp);
		if(bRet)m_str_exp.Add(strExp);
	}
}

void CMyDlg::OnMenuSelect(UINT nID)          //历史
{
	UpdateData(1);
	int i=nID-IMENU_ITEM_ID;
	CString str=m_str_exp.GetAt(i);
	m_edit_io=str;
	UpdateData(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -