개요
이 튜토리얼에서는 간단한 계산기를 구현하는 메뉴 기반(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으로 나누는 경우를 별도로 처리하면 더욱 안정적인 계산기 프로그램을 만들 수 있습니다.