C
C
// Function declarations
void displayMenu();
void performCalculation(char operation);
int main() {
char operation;
while (true) {
displayMenu();
if (operation == 'q') {
std::cout << "Exiting the program. Goodbye!" << std::endl;
break;
}
// Validate operation
if (operation == '+' || operation == '-' || operation == '*' || operation
== '/') {
performCalculation(operation);
} else {
std::cout << "Invalid choice. Please enter a valid operation." <<
std::endl;
}
return 0;
}
void displayMenu() {
std::cout << "\nSimple Calculator Menu" << std::endl;
std::cout << "-----------------------" << std::endl;
std::cout << "1. Addition (+)" << std::endl;
std::cout << "2. Subtraction (-)" << std::endl;
std::cout << "3. Multiplication (*)" << std::endl;
std::cout << "4. Division (/)" << std::endl;
std::cout << "Enter 'q' to quit" << std::endl;
}
// Input validation
std::cout << "Enter two numbers: ";
while (!(std::cin >> num1 >> num2)) {
std::cout << "Invalid input. Please enter numerical values: ";
std::cin.clear(); // Clear error flag
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); //
Discard invalid input
}
switch (operation) {
case '+':
std::cout << "Result: " << num1 + num2 << std::endl;
break;
case '-':
std::cout << "Result: " << num1 - num2 << std::endl;
break;
case '*':
std::cout << "Result: " << num1 * num2 << std::endl;
break;
case '/':
if (num2 != 0) {
std::cout << "Result: " << num1 / num2 << std::endl;
} else {
std::cout << "Error: Division by zero is not allowed." <<
std::endl;
}
break;
default:
std::cout << "Unexpected error." << std::endl;
break;
}
}