저는 C#을 사용하여 Visual Studio 2013에서 계산기를 디자인하는 초보 프로그래머입니다. 내가 수정할 수없는 약간의 문제가 발생했습니다. 제곱근 버튼을 클릭하면 텍스트 상자에 제곱근을 표시하고 레이블에서 어떤 일이 일어나는지 보여줍니다.If if Calculator in
예를 들어 9 + sqrt (16)을 계산하려면 9 + 16을 클릭 한 다음 제곱근 버튼을 눌러야합니다. 텍스트 상자 위의 레이블은 "9 + sqrt (16)"이어야하고 텍스트 상자 자체는 "4"로 표시되어야합니다. 이것 모두는 그것 같이 일해야한다. 그러나 제가 4의 제곱근을 취하면 레이블에 "9 + sqrt (4)"라고 말하고 싶습니다. 첫 번째 부분 (9 +)을 문자열로 저장하려고 시도했지만 제곱근 버튼을 두 번 누르면 "9 + sqrt (16) sqrt (4)"가 표시됩니다. 이 문제를 해결하는 다른 방법이 있습니까? 아니면 내가 잘못하고있는 것입니까?
가 여기에 내가 노력 코드의 일부 (결과는 텍스트 박스와 표현은 레이블) : 이벤트 핸들러가 호출 될 때
private void sqrt_Click(object sender, EventArgs e)
{
bool square_root_pressed = false;
string exp = "";
Button b = (Button)sender;
double res = Convert.ToDouble(result.Text);
if ((equal_pressed) || (operation == ""))
{
if (b.Text == "√")
{
result.Text = Convert.ToString(Math.Sqrt(res));
expression.Text = "sqrt(" + Convert.ToString(res) + ") =";
}
else
{
result.Text = Convert.ToString(Math.Sqrt(res));
if (square_root_pressed)
{
expression.Text = exp + " sqrt(" + Convert.ToString(res) + ")";
}
else
{
exp = expression.Text;
expression.Text = expression.Text + " sqrt(" + Convert.ToString(res) + ")";
square_root_pressed = true;
}
}
이것은 귀하의 질문에 대한 해결책과는 거리가 있지만 스택을 구현하고 역 폴란드 표기법 알고리즘을 활용하면 현재 보유하고있는 연산 및 가치를 추적 할 수있는 수단을 제공 할 것입니다. 이 문제를 해결하기 위해, 나는 믿는다. –
그냥 호기심이 9 + sqrt (sqrt (16)) – AgustinCoder
될 Windows 계산기에서 출력을 복제하려는 아니요 조금 더 간단하게 유지하고 그냥 9 + sqrt (4) 표시되도록 가장 최근의 계산. – Josh