Menu Driven Program in C++

Menu Driven Program in C++ (3 Ways With Output).

BeginnerApplication ProgramsExample 1 of 3
menu-driven-program.cpp
1#include <iostream>
2using namespace std;
3
4void displayMenu() {
5 cout << "\n=== MENU ===" << endl;
6 cout << "1. Add" << endl;
7 cout << "2. Subtract" << endl;
8 cout << "3. Multiply" << endl;
9 cout << "4. Divide" << endl;
10 cout << "5. Exit" << endl;
11 cout << "Enter your choice: ";
12}
13
14int main() {
15 int choice;
16 double num1, num2, result;
17
18 do {
19 displayMenu();
20 cin >> choice;
21
22 if (choice >= 1 && choice <= 4) {
23 cout << "Enter two numbers: ";
24 cin >> num1 >> num2;
25 }
26
27 switch(choice) {
28 case 1:
29 result = num1 + num2;
30 cout << "Result: " << result << endl;
31 break;
32 case 2:
33 result = num1 - num2;
34 cout << "Result: " << result << endl;
35 break;
36 case 3:
37 result = num1 * num2;
38 cout << "Result: " << result << endl;
39 break;
40 case 4:
41 if (num2 != 0) {
42 result = num1 / num2;
43 cout << "Result: " << result << endl;
44 } else {
45 cout << "Error: Division by zero!" << endl;
46 }
47 break;
48 case 5:
49 cout << "Exiting..." << endl;
50 break;
51 default:
52 cout << "Invalid choice!" << endl;
53 }
54 } while(choice != 5);
55
56 return 0;
57}

Output

=== MENU ===
1. Add
2. Subtract
3. Multiply
4. Divide
5. Exit
Enter your choice: 1
Enter two numbers: 10 20
Result: 30

=== MENU ===
1. Add
2. Subtract
3. Multiply
4. Divide
5. Exit
Enter your choice: 5
Exiting...

What's going on

The program creates an interactive menu system that allows users to:

View a menu of available operations
Select an option by entering a number
Perform the selected operation (Add, Subtract, Multiply, Divide)
Continue until the user chooses to exit

The program runs in a loop, displaying the menu repeatedly until the user selects the exit option.

Header File Used

This header provides:

cout for displaying output
cin for taking input from the user
1#include <iostream>

Understanding Menu-Driven Programs

Key Components

:

Menu display function
User input for choice
Switch-case for option handling
Loop to keep program running
Exit condition

Benefits

:

User-friendly interface
Clear organization of operations
Easy to extend with new options
Professional program structure

Function: displayMenu()

void displayMenu() {

}

1cout << "\n=== MENU ===" << endl;
2cout << "1. Add" << endl;
3cout << "2. Subtract" << endl;
4cout << "3. Multiply" << endl;
5cout << "4. Divide" << endl;
6cout << "5. Exit" << endl;
7cout << "Enter your choice: ";

How it works

:

Displays all available options
Numbers (1-5) represent different operations
Clear formatting for readability
Called before each user input

Declaring Variables

The program declares:

int choice;

double num1, num2, result;

choice stores the user's menu selection (1-5)
num1, num2 store the two numbers for operations
result stores the calculation result
double is used to handle decimal numbers

Main Loop: do-while

do {

displayMenu();

cin >> choice;

} while(choice != 5);

1// ... operations ...

How it works

:

do-while ensures menu displays at least once
Loop continues while choice is not 5 (Exit)
Menu is displayed before each iteration
User can perform multiple operations

Why do-while?

:

Guarantees menu is shown at least once
Better user experience than while loop
Natural flow for menu-driven programs

Input Validation

if (choice >= 1 && choice <= 4) {

cin >> num1 >> num2;

}

1cout << "Enter two numbers: ";

How it works

:

Only asks for numbers if operation needs them
Options 1-4 require two numbers
Option 5 (Exit) doesn't need numbers
Prevents unnecessary input prompts

Switch-Case for Operations

switch(choice) {

case 1:

result = num1 + num2;

break;

case 2:

result = num1 - num2;

cout << "Result: " << result << endl;

break;

case 3:

result = num1 * num2;

cout << "Result: " << result << endl;

break;

case 4:

if (num2 != 0) {

result = num1 / num2;

cout << "Result: " << result << endl;

} else {

cout << "Error: Division by zero!" << endl;

}

break;

case 5:

cout << "Exiting..." << endl;

break;

default:

cout << "Invalid choice!" << endl;

}

1cout << "Result: " << result << endl;

How it works

:

Each case handles one menu option
Case 1-4: perform arithmetic operations
Case 4: includes division by zero check
Case 5: exit message
default: handles invalid input

Division by Zero Check

:

Important safety feature
Prevents program crash
Provides user-friendly error message

Other Methods (Mentioned but not shown in code)

Method 2: Using Functions

void add() { /* addition logic */ }

void subtract() { /* subtraction logic */ }

switch(choice) {

case 1: add(); break;

case 2: subtract(); break;

// ...

}

Each operation in separate function
More modular and organized
Easier to maintain and test
1// ... other functions ...

Method 3: Using Classes

class Calculator {

void add() { /* ... */ }

void subtract() { /* ... */ }

};

Object-oriented approach
Encapsulates operations
Better for complex programs
1// ...

When to Use Menu-Driven Programs