Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 만드는 메뉴 기반 간단한 계산기 프로그램


개요

이 튜토리얼에서는 간단한 계산기를 구현하는 메뉴 기반(menu-driven) C++ 프로그램을 만드는 방법을 단계별로 살펴보겠습니다.

이 프로그램은 사용자가 원하는 연산을 직접 선택할 수 있도록 메뉴를 제공하며, 다음과 같은 여섯 가지 수학 연산을 지원합니다.

  • 덧셈(Sum)
  • 뺄셈(Difference)
  • 곱셈(Product)
  • 나눗셈(Division)
  • 최대공약수(HCF · GCD)
  • 최소공배수(LCM)

여기서 HCF(Highest Common Factor)는 일반적으로 말하는 최대공약수(GCD)를 의미하고, LCM(Least Common Multiple)은 최소공배수를 뜻합니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;
//메뉴를 화면에 출력하는 함수
void menu(){
    cout << "Press 1 to calculate Sum of Numbers\n";
    cout << "Press 2 to calculate Difference of Numbers\n";
    cout << "Press 3 to calculate Product of numbers\n";
    cout << "Press 4 to calculate Division of numbers\n";
    cout << "Press 5 to calculate HCF of numbers\n";
    cout << "Press 6 to calculate LCM of numbers\n";
    cout << "Press 7 to exit\n";
}
//사용자의 선택에 따라 연산을 수행하고 결과를 출력하는 함수
void result(int choice, int a, int b){
    switch (choice) {
        case 1: {
            cout << "Sum is " << (a + b) << "\n";
            break;
        }
        case 2: {
            cout << "Difference is " << (a - b) << "\n";
            break;
        }
        case 3: {
            cout << "Product is " << (a * b) << "\n";
            break;
        }
        case 4: {
            cout << "Division is " << (a / b) << "\n";
            break;
        }
        case 5: {
            cout << "GCD is " << __gcd(a, b) << "\n";
            break;
        }
        case 6: {
            cout << "LCM is "<< ((a * b) / __gcd(a, b))<< "\n";
            break;
        }
        case 7: {
            cout << "Thank you\n";
            break;
        }
        default:
        printf("Wrong Input\n");
    }
}
int main(){
    int a = 5, b = 7;
    int choice, res;
    menu();
    cout << "Enter your choice:\n";
    choice = 1;
    cout << "Choice is " << choice << endl;
    result(choice, a, b);
    return 0;
}

실행 결과

Press 1 to calculate Sum of Numbers
Press 2 to calculate Difference of Numbers
Press 3 to calculate Product of numbers
Press 4 to calculate Division of numbers
Press 5 to calculate HCF of numbers
Press 6 to calculate LCM of numbers
Press 7 to exit
Enter your choice:
Choice is 1
Sum is 12

코드 설명

menu() 함수 : 사용자에게 선택 가능한 연산 목록을 콘솔에 출력하는 역할을 합니다. 각 번호(1~7)가 어떤 연산에 해당하는지 한눈에 알 수 있도록 안내해 줍니다.

result() 함수 : 사용자의 선택(choice)과 두 개의 정수(a, b)를 매개변수로 받아, switch 문으로 해당 연산을 수행한 뒤 결과를 출력합니다. 잘못된 번호를 입력하면 default 문에서 "Wrong Input" 메시지를 출력합니다.

__gcd(a, b) : <bits/stdc++.h> 헤더에서 제공하는 내장 함수로, 유클리드 호제법을 기반으로 두 수의 최대공약수를 빠르게 구해 줍니다.

LCM 계산 공식 : 최소공배수는 두 수의 곱을 최대공약수로 나눈 값, 즉 (a × b) ÷ gcd(a, b)로 구할 수 있습니다.

main() 함수 : 두 정수 a = 5, b = 7을 초기화한 뒤 menu()를 호출해 메뉴를 출력하고, 선택값(예제에서는 1로 고정)을 result()에 전달하여 결과를 화면에 보여줍니다.

실전 활용 팁

실제 프로그램에서는 cin >> choice;를 사용해 사용자 입력을 직접 받아야 하며, while 루프와 함께 사용하면 종료(7번)를 선택할 때까지 반복해서 연산을 수행할 수 있습니다. 또한 나눗셈 연산 시 0으로 나누는 경우를 별도로 처리하면 더욱 안정적인 계산기 프로그램을 만들 수 있습니다.