네, 비주얼 베이직으로 계산기 프로그램을 작성하는 방법에 대해 안내해드리겠습니다.
먼저, 비주얼 베이직을 실행하고 새 프로젝트를 만듭니다.
폼 디자인 화면에서 버튼과 텍스트박스를 추가하여 계산기 모양을 만듭니다. 예를 들어, 숫자 버튼과 연산자 버튼을 추가하고, 결과를 표시할 텍스트박스를 추가합니다.
버튼 클릭 이벤트를 작성합니다. 예를 들어, "1" 버튼 클릭 시 텍스트박스에 "1"이 추가되도록 작성합니다.
연산자 버튼 클릭 시, 현재까지 입력된 숫자들을 저장하고, 연산자를 저장합니다. 이후, 다음 숫자 입력을 기다리도록 텍스트박스를 초기화합니다.
"=" 버튼 클릭 시, 저장된 숫자와 연산자를 기반으로 계산을 수행하고, 결과를 텍스트박스에 표시합니다.
"C" 버튼 클릭 시, 텍스트박스를 초기화합니다.
다음은 예시 코드입니다.
vb
Copy code
Public Class Form1
Dim num1 As Double
Dim num2 As Double
Dim op As Char
Dim result As Double
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox1.Text = TextBox1.Text & "1"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.Text = TextBox1.Text & "2"
End Sub
'나머지 숫자 버튼 클릭 이벤트 생략
Private Sub ButtonPlus_Click(sender As Object, e As EventArgs) Handles ButtonPlus.Click
num1 = CDbl(TextBox1.Text)
op = "+"
TextBox1.Text = ""
End Sub
Private Sub ButtonMinus_Click(sender As Object, e As EventArgs) Handles ButtonMinus.Click
num1 = CDbl(TextBox1.Text)
op = "-"
TextBox1.Text = ""
End Sub
'나머지 연산자 버튼 클릭 이벤트 생략
Private Sub ButtonEqual_Click(sender As Object, e As EventArgs) Handles ButtonEqual.Click
num2 = CDbl(TextBox1.Text)
If op = "+" Then
result = num1 + num2
ElseIf op = "-" Then
result = num1 - num2
ElseIf op = "*" Then
result = num1 * num2
ElseIf op = "/" Then
result = num1 / num2
End If
TextBox1.Text = result.ToString()
End Sub
Private Sub ButtonClear_Click(sender As Object, e As EventArgs) Handles ButtonClear.Click
TextBox1.Text = ""
End Sub
End Class
이 코드는 기본적인 사칙연산에 대해 동작합니다. 추가적인 기능을 구현하고자 한다면, 해당 기능을 구현하는 코드를 작성하여 추가적인 기능을 구현하는 코드 예시를 아래와 같이 작성할 수 있습니다.
소수점 입력 기능 추가
vb
Copy code
Private Sub ButtonDot_Click(sender As Object, e As EventArgs) Handles ButtonDot.Click
If Not TextBox1.Text.Contains(".") Then
TextBox1.Text = TextBox1.Text & "."
End If
End Sub
음수 입력 기능 추가
vb
Copy code
Private Sub ButtonNeg_Click(sender As Object, e As EventArgs) Handles ButtonNeg.Click
If TextBox1.Text.Length > 0 AndAlso Not TextBox1.Text.Contains("-") Then
TextBox1.Text = "-" & TextBox1.Text
End If
End Sub
백스페이스 기능 추가
vb
Copy code
Private Sub ButtonBack_Click(sender As Object, e As EventArgs) Handles ButtonBack.Click
If TextBox1.Text.Length > 0 Then
TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.Text.Length - 1)
End If
End Sub
숫자 입력 중복 방지
vb
Copy code
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Not TextBox1.Text.Equals("0") Then
TextBox1.Text = TextBox1.Text & "1"
End If
End Sub
연속 계산 가능하도록 수정
vb
Copy code
Private Sub ButtonEqual_Click(sender As Object, e As EventArgs) Handles ButtonEqual.Click
num2 = CDbl(TextBox1.Text)
If op = "+" Then
result = num1 + num2
ElseIf op = "-" Then
result = num1 - num2
ElseIf op = "*" Then
result = num1 * num2
ElseIf op = "/" Then
result = num1 / num2
End If
TextBox1.Text = result.ToString()
num1 = result
op = ""
End Sub
위 코드 예시들은 계산기 프로그램의 일부분에 해당합니다. 더 많은 기능을 구현하려면 추가적인 코드 작성이 필요합니다.