프로젝트 준비하기
C#으로 계산기 프로그램을 만들려면 먼저 폼(Form) 디자이너를 활용해 사용자 인터페이스를 구성해야 합니다. 폼 위에 숫자 0~9 버튼과 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 같은 연산자 버튼을 배치하고, 계산 결과를 표시할 텍스트박스(tbResult)를 추가합니다.
핵심 변수 선언
계산에 사용할 두 개의 변수를 미리 선언합니다. x는 첫 번째 피연산자를, y는 사용자가 선택한 연산자를 저장하는 역할을 합니다.
static float x, y;연산자 버튼 클릭 이벤트 처리
각 연산자 버튼이 클릭되면 현재 텍스트박스에 입력된 값을 x에 저장한 뒤 화면을 비우고, 해당 연산 기호를 화면에 표시합니다. 아래는 덧셈, 뺄셈, 곱셈 버튼의 이벤트 처리 코드입니다.
protected void add_Click(object sender, EventArgs e) {
x = Convert.ToInt32(tbResult.Text);
tbResult.Text = "";
y = '+';
tbResult.Text += y;
}
protected void sub_Click(object sender, EventArgs e) {
x = Convert.ToInt32(tbResult.Text);
tbResult.Text = "";
y = '-';
tbResult.Text += y;
}
protected void mul_Click(object sender, EventArgs e) {
x = Convert.ToInt32(tbResult.Text);
tbResult.Text = "";
y = '*';
tbResult.Text += y;
}세 버튼 모두 동일한 흐름으로 동작합니다. 즉, ① 현재 입력값을 x에 저장 → ② 텍스트박스 초기화 → ③ 선택된 연산 기호를 화면에 출력하는 순서입니다.
등호(=) 버튼으로 최종 결과 계산하기
등호 버튼에서는 두 번째 입력값을 읽어온 후, 앞서 저장해 둔 연산자(y)의 종류에 따라 조건문으로 분기 처리하여 결과를 계산하고 화면에 출력합니다.
protected void eql_Click(object sender, EventArgs e) {
z = Convert.ToInt32(tbResult.Text);
tbResult.Text = "";
if (y == '/') {
p = x / z;
tbResult.Text += p;
x = p;
} else if (y == '+') {
p = x + z;
tbResult.Text += p;
x = p;
} else if (y == '-') {
p = x - z;
tbResult.Text += p;
x = p;
} else {
p = x * z;
tbResult.Text += p;
x = p;
}
}연산이 끝난 뒤 결과값을 다시 x에 대입하면, 별도의 초기화 없이 이어지는 계산(연속 연산)도 자연스럽게 처리할 수 있습니다.
마무리 및 확장 아이디어
위 코드를 그대로 실행하면 사칙연산이 가능한 기본 계산기가 완성됩니다. 여기에 소수점 입력 처리, 백스페이스(⌫) 버튼, 전체 초기화(C) 버튼, 0으로 나눌 때의 예외 처리 등을 추가하면 실무 수준의 완성도 높은 계산기 프로그램으로 발전시킬 수 있습니다.