Visual Basic으로 계산기를 만드는 방법

Visual Basic 6을 열고 새 프로젝트 메뉴에서 "표준 EXE"를 선택합니다. 화면에 빈 양식이 표시됩니다.

프로젝트 목록에서 화면 오른쪽에 있는 "Project1"을 클릭하여 프로젝트와 양식의 이름을 바꿉니다. 속성 상자의 "이름" 줄에 새 이름을 입력하면 프로젝트 목록 아래에 나타나야 합니다. 기본. 새 이름을 승인하려면 "Enter"를 누르십시오. 양식(제안된 양식 이름은 "CalculatorUI"임)에 대해 동일한 작업을 수행하고 "Caption" 속성에도 유사한 이름을 입력해야 양식의 상단 표시줄에 있는 텍스트가 변경됩니다. 컴퓨터의 새 폴더에 프로젝트를 저장합니다.

양식에 단추와 텍스트 상자를 추가합니다. 먼저 계산기에 입력한 숫자와 계산 결과가 표시되는 텍스트 상자를 추가합니다. 화면 왼쪽에 있는 도구 모음에서 TextBox 버튼을 선택한 다음 원하는 TextBox의 크기와 위치를 마우스로 드래그하면 됩니다. TextBox를 배치하고 나면 양식의 다른 위치로 드래그하거나 TextBox의 테두리를 따라 핸들(작은 사각형)을 드래그하여 크기와 위치를 변경할 수 있습니다. TextBox를 선택한 상태에서 속성 창에서 다음 줄을 변경해야 합니다. "(Name)" = tbResult, "정렬" = 1- 오른쪽 맞춤, "데이터 형식" = (선택하려면 "..." 버튼을 클릭) 숫자, "잠김" = True 및 "텍스트" = 0.

도구 모음에서 CommandButton 아이콘을 선택하고 단추를 추가하기 위해 TextBox를 만든 것과 같은 방법으로 첫 번째 단추를 만듭니다. 참고로 "MC", "MR", "MS" 및 "M+" 버튼을 제외하고 표준 보기(프로그램 > 보조프로그램 > 계산기)에서 Windows 계산기를 계산기 레이아웃의 기초로 사용하십시오. 각 버튼에서 다음 속성을 변경합니다("+" 버튼을 예로 사용): "(Name)" = btnPlus, "Caption" = +. 나머지 계산기 버튼에 대해서도 동일한 작업을 수행한 다음 작업을 저장합니다. 이제 양식이 여기에 표시된 예와 유사해야 합니다.

코드를 추가합니다. 버튼과 텍스트 상자의 이름이 여기에 나열된 코드와 동일하지 않은 경우 다음이 필요합니다. 버튼과 텍스트 상자와 일치하도록 이름을 변경하거나 이에 맞게 버튼과 텍스트 상자를 변경하려면 암호. 먼저 계산기 입력을 처리하기 위해 몇 가지 변수를 만들어야 합니다.

Dim sLeft As String, sRight As String, sOperator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean

각 계산은 연산자 왼쪽의 숫자(sLeft, iLeft), 연산자(sOperator), 연산자 오른쪽의 숫자(sRight, iRight), 결과(iResult)의 네 부분으로 구성됩니다. 사용자가 왼쪽 또는 오른쪽 숫자를 입력하는지 추적하려면 부울 변수 bLeft를 만들어야 합니다. bLeft가 true이면 계산의 왼쪽이 입력됩니다. bLeft가 false이면 오른쪽이 입력됩니다.

bLeft 변수를 초기화합니다. 여기에 나열된 대로 입력하거나 버튼이나 텍스트 상자에 포함되지 않은 양식 부분을 두 번 클릭하여 자동으로 생성할 수 있는 Form_Load 서브루틴을 만들어 이를 수행합니다. 함수 내에서 bLeft를 True로 설정해야 합니다. 입력한 첫 번째 숫자가 왼쪽 부분이 되기 때문입니다.

숫자 버튼의 클릭을 처리하는 서브루틴을 만듭니다. 각 버튼에 동일한 코드를 사용하기 때문에 이것을 서브루틴으로 생성하고 서브루틴을 사용하면 동일한 코드를 10번 반복하지 않아도 됩니다. Form_Load 서브루틴의 End Sub 줄 아래에 다음을 입력합니다.

보시다시피, 이 함수는 사용자가 클릭한 번호를 포함하는 문자열 매개변수 sNumber를 사용합니다. bLeft가 true이면 이 숫자가 입력 중인 숫자를 나타내는 문자열인 sLeft에 추가되고 텍스트 상자인 tbResult가 업데이트되어 새 숫자가 표시됩니다. bLeft가 false이면 대신 sRight를 사용하여 동일한 작업이 수행됩니다.

마지막으로 AddNumber 서브루틴을 호출하는 각 번호에 대해 Click 이벤트 함수를 만듭니다. 각 숫자 버튼을 더블 클릭하면 이 작업을 쉽게 수행할 수 있습니다. 그러면 서브루틴 구조가 생성됩니다. 그런 다음 AddNumber에 대한 호출을 추가하여 따옴표로 묶인 번호를 버튼과 연결된 번호로 바꿉니다. 0 버튼의 경우 코드는 다음과 같습니다.

마찬가지로 버튼 하나의 경우 코드는 다음과 같습니다.

더하기, 빼기, 시간 및 나누기 연산자를 처리합니다. 마지막 단계처럼 이 작업을 수행하여 연산자 버튼에 대한 Click 이벤트에서 호출되는 서브루틴을 만듭니다. 서브루틴은 다음과 같습니다.

bLeft가 true이면 사용자가 계산의 왼쪽 부분을 방금 입력했음을 의미합니다. 이 서브루틴은 다음을 설정합니다. 5단계에서 생성한 sOperator 변수는 입력한 연산자와 동일하며, AddOperator에 문자열로 전달됩니다. sNewOperator. 두 번째 단계는 bLeft를 False로 설정하는 것입니다. 왜냐하면 연산자의 입력은 사용자가 방정식의 왼쪽 입력을 완료했음을 의미하기 때문입니다. 9 * 3 * 2 * 6과 같이 여러 연산자를 함께 묶는 항목을 처리하려면 다음을 수행해야 합니다. 또한 bLeft가 false인지 확인하십시오. 이는 사용자가 예상했던 곳에 연산자를 입력했음을 의미합니다. 같음. 먼저 계산을 수행하고 tbResult를 이미 입력된 결과로 설정하는 등호 버튼에 대한 Click 이벤트를 호출합니다(다음 단계에서 설명). 그런 다음 사용자가 다음 숫자를 입력할 수 있도록 sRight를 지우고 다음 계산의 오른쪽을 입력한다는 것을 프로그램이 알 수 있도록 bLeft를 False로 설정합니다.

마지막으로 7단계에서 숫자 버튼에 대한 Click 이벤트를 만드는 데 사용한 것과 동일한 방법을 사용하여 각 연산자 버튼의 Click 이벤트에 AddOperator 호출을 추가합니다. 더하기 버튼에 대한 코드는 다음과 같습니다.

이 프로그램에서 가장 복잡한 코드인 equals 버튼에 대한 Click 이벤트를 생성합니다. 양식에서 등호 버튼을 두 번 클릭하여 다른 버튼에 대해 수행한 것처럼 서브루틴 구조를 만듭니다. 코드를 입력하면 서브루틴이 다음과 같이 표시됩니다.

코드의 처음 세 줄은 연산자와 함께 계산의 양쪽이 모두 입력되었는지 확인합니다. 좌변과 연산자만 입력하면 좌변의 값이 우변에 복사되므로 흉내낼 수 있다. 9 * =와 같은 항목을 처리하기 위한 표준 계산기 동작으로, 9를 자체적으로 곱하여 81의 결과를 얻습니다. 나머지 코드는 왼쪽, 오른쪽 및 연산자가 입력된 경우에만 실행되며 복사하여 시작합니다. 숫자 문자열을 iLeft 및 iRight Double 유형 변수에 넣어 실제 작업을 수행할 수 있습니다. 계산. Select Case 문을 사용하면 입력한 연산자에 따라 다른 코드를 실행할 수 있고 실제 계산을 수행하여 결과를 iResult에 배치할 수 있습니다. 마지막으로 텍스트 상자를 결과로 업데이트하고 결과를 sLeft에 복사하고 sRight를 재설정하고 bLeft = True로 설정합니다. 이 마지막 줄을 사용하면 계산 결과를 가져와 다른 계산을 수행하는 데 사용할 수 있습니다.

마지막 3개의 조작 버튼: sqrt, % 및 1/x를 처리합니다. 제곱근 버튼의 Click 이벤트의 경우 코드는 다음과 같습니다.

코드의 처음 11줄은 방정식의 양쪽에 값을 입력하지 않은 경우 빈 문자열을 iLeft 또는 iRight에 복사하는 대신 0을 대체하여 생성합니다. 오류. 중간 라인은 왼쪽 또는 오른쪽으로 계산의 현재 부분에 대해 제곱근 기능을 수행합니다. 마지막으로 0이 빈 문자열로 sLeft 및 sRight에 다시 복사되도록 처음에 수행한 검사를 반대로 합니다.

퍼센트 버튼의 경우 코드는 유사하지만 한 가지 예외가 있습니다. 퍼센트 연산은 왼쪽과 오른쪽이 모두 입력된 경우에만 수행할 수 있습니다.

마지막으로 위의 코드와 매우 유사한 1/x 또는 분수 Click 이벤트입니다.

C 및 CE 버튼을 처리하는 코드를 추가합니다. C는 계산기에 대한 모든 입력을 지우는 반면 CE는 현재 입력 중인 숫자만 지웁니다.

계산기 프로그램을 실행하고 원하는 계산을 수행하십시오. 이 계산기는 더 많은 연산, 더 복잡한 계산 또는 약간의 추가 작업으로 공학용 계산기로 쉽게 확장할 수 있습니다.

오류가 발생하면 VB에서 오류가 포함된 것으로 표시한 줄에 초점을 맞춰 코드를 한 줄씩 확인하고 위의 코드와 비교하십시오. 이 기사에 포함된 코드는 오류가 없는 것으로 완전히 테스트되었으므로 충실하게 복사하면 작동하는 프로그램이 됩니다. 이전 버전의 Visual Basic을 사용하는 경우 버전 간에 언어가 변경되는 몇 가지 문제가 발생할 수 있습니다. 예를 들어 이전 버전의 VB에서는 Math를 사용했습니다. 수학 대신 Sqrt(). Sqr() 제곱근 연산을 수행합니다. 특정 버전에 대한 참조를 확인하여 변경이 필요한지 확인하십시오.