visual c++

h0nda

What is folding?
estou a fazer um pequeno programa no qual se calcula áreas e perímetros, mas estou com um problema

PROBLEMA:
quando eu selecciono área e perímetro, o programa só me dá o perímetro. quando selecciono os 3, só me dá a ultima opção.

INTERFACE:
imagem1ud6.png


CODIGO:
Código:
void CResolucaoDlg::OnButton2() 
{
	CString CS1, CS2;
	CString CSresult;
	double n1, n2, result;
	float hip;
	char str[20];

	if (m_tri.GetCheck()==BST_CHECKED){
		if (m_area.GetCheck()==BST_CHECKED){
			m_comp.GetWindowText (CS1);
			m_larg.GetWindowText (CS2);
			n1 = atof (CS1);
			n2 = atof (CS2);
			result = n1 * n2;
			_gcvt (result, 10, str);
			CSresult = str;
			m_result.SetWindowText (CSresult);
                }
		
if (m_perim.GetCheck()==BST_CHECKED){
			m_comp.GetWindowText (CS1);
			m_larg.GetWindowText (CS2);
			n1 = atof (CS1);
			n2 = atof (CS2);
			result = 2*n1 + 2*n2;
			_gcvt (result, 10, str);
			CSresult = str;
			m_result.SetWindowText (CSresult);
		}
		
if (m_hip.GetCheck()==BST_CHECKED){
			m_comp.GetWindowText (CS1);
			m_larg.GetWindowText (CS2);
			n1 = atof (CS1);
			n2 = atof (CS2);
			result = sqrt((n1*n1)+(n2*n2));
			_gcvt (result, 10, str);
			CSresult = str;
			m_result.SetWindowText (CSresult);
		}
	}
	if (m_rect.GetCheck()==BST_CHECKED){
		if (m_area.GetCheck()==BST_CHECKED){
			m_comp.GetWindowText (CS1);
			m_larg.GetWindowText (CS2);
			n1 = atof (CS1);
			n2 = atof (CS2);
			result = n1 * n2 / 2;
			_gcvt (result, 10, str);
			CSresult = str;
			m_result.SetWindowText (CSresult);


		}
		if (m_perim.GetCheck()==BST_CHECKED){
			m_comp.GetWindowText (CS1);
			m_larg.GetWindowText (CS2);
			n1 = atof (CS1);
			n2 = atof (CS2);
			hip = sqrt((n1*n1)+(n2*n2));
			result = n1 + n2 + hip;
			_gcvt (result, 10, str);
			CSresult = str;
			m_result.SetWindowText (CSresult);
		}
		if (m_hip.GetCheck()==BST_CHECKED){
			m_comp.GetWindowText (CS1);
			m_larg.GetWindowText (CS2);
			n1 = atof (CS1);
			n2 = atof (CS2);
			result = sqrt((n1*n1)+(n2*n2));
			_gcvt (result, 10, str);
			CSresult = str;
			m_result.SetWindowText (CSresult);
		}
	}

}

gostava de ter uma ajudita.

Obrigado ; )
 
Última edição:
podias ter inserido o código com a formatação # ou ["code"]...[\"code"], assim mantinhas a identação para se visualizar correctamente o código


é impressão minha ou tas a usar a mesma string para o resultado!?
 
Oi
Penso que o teu problema é enviares logo para m_result o resultado do cálculo. O que te acontece é que o programa vai colocando os valores uns em cima dos outros, pelo que apenas vês o ultimo calculado. Para veres o q te estou a dizer experimenta, em vez de colocares logo no m_result o valor do cálculo, fazê-lo aparecer, por exemplo, numa janela de mensagem. Só para veres q ele fez o cálculo, topas?
Boa sorte e vai dizendo alguma coisa.
 
Back
Topo