#include<bits/stdc++.h>
#include<windows.h>
#include <iostream>
#include <string>
#include <conio.h> // Note: This is only effective in Windows
#include <cstdlib>
#include <ctime>
#include <iomanip> // For formatting time output
using namespace std;
void Calculator() {
float s1 = 0, s2 = 0;
char o = 0;
while (true) {
cout << "Enter an expression (number + operator + number). Supports decimal numbers" << endl;
if (!(cin >> s1 >> o >> s2)) {
// If input format is incorrect, clear error state and ignore remaining input
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Incorrect input format, please re-enter" << endl; Sleep(200); system("cls");
continue;
}
if (o == '+') {
cout << "=" << s1 + s2 << endl;
break;
} else if (o == '-') {
cout << "=" << s1 - s2 << endl;
break;
} else if (o == '*') {
cout << "=" << s1 * s2 << endl;
break;
} else if (o == '/') {
if (s2 != 0) {
cout << "=" << s1 / s2 << endl;
break;
} else {
cout << "Divisor cannot be zero, please re-enter" << endl;
continue;
}
} else {
cout << "Invalid operator, please re-enter" << endl;
continue;
}
}
Sleep(2000); // Move this outside the loop to pause only after displaying the result
system("cls"); // Clear screen
}
void control_panel();
int main() {
control_panel();
}
void control_panel() {
while (true) {
cout << " ___________________________" << endl;
cout << "| HUAWEI |" << endl;
cout << "|___________________________|" << endl;
cout << "| [1] Calculator |" << endl;
cout << "|___________________________|" << endl;
while (!_kbhit()) {
}
char input = _getch();
input = tolower(input);
switch (input) {
case '1':
system("cls");
Calculator();
break;
}
system("cls");
}
}