Конечно, вот пример программы на С++ для калькулятора с возможностью работы в различных системах счисления:
#include <iostream> #include <cmath> #include <string> using namespace std; int main() { int choice; string num1, num2; int base; cout << "Введите первое число: "; cin >> num1; cout << "Введите второе число: "; cin >> num2; cout << "Выберите систему счисления (2, 8, 10, 16): "; cin >> base; cout << "Выберите операцию:\n"; cout << "1. Сложение\n"; cout << "2. Вычитание\n"; cout << "3. Умножение\n"; cout << "4. Деление\n"; cin >> choice; long long int result; switch (base) { case 2: result = stoi(num1, nullptr, 2); switch(choice) { case 1: result += stoi(num2, nullptr, 2); break; case 2: result -= stoi(num2, nullptr, 2); break; case 3: result *= stoi(num2, nullptr, 2); break; case 4: result /= stoi(num2, nullptr, 2); break; default: cout << "Неправильно введена операция\n"; return 1; } cout << "Результат: " << bitset<32>(result) << endl; break; case 8: result = stoi(num1, nullptr, 8); switch(choice) { case 1: result += stoi(num2, nullptr, 8); break; case 2: result -= stoi(num2, nullptr, 8); break; case 3: result *= stoi(num2, nullptr, 8); break; case 4: result /= stoi(num2, nullptr, 8); break; default: cout << "Неправильно введена операция\n"; return 1; } cout << "Результат: " << oct << result << endl; break; case 10: result = stoi(num1); switch(choice) { case 1: result += stoi(num2); break; case 2: result -= stoi(num2); break; case 3: result *= stoi(num2); break; case 4: result /= stoi(num2); break; default: cout << "Неправильно введена операция\n"; return 1; } cout << "Результат: " << result << endl; break; case 16: result = stoi(num1, nullptr, 16); switch(choice) { case 1: result += stoi(num2, nullptr, 16); break; case 2: result -= stoi(num2, nullptr, 16); break; case 3: result *= stoi(num2, nullptr, 16); break; case 4: result /= stoi(num2, nullptr, 16); break; default: cout << "Неправильно введена операция\n"; return 1; } cout << "Результат: " << hex << result << endl; break; default: cout << "Неправильно выбрана система счисления\n"; return 1; } return 0; }
Это основной шаблон программы, который можно доработать и расширить по вашему желанию. Надеюсь, это поможет вам с вашим заданием на C++! Если у вас есть какие-либо вопросы или нужна дополнительная помощь, не стесняйтесь спрашивать.
Конечно, вот пример программы на С++ для калькулятора с возможностью работы в различных системах счисления:
#include <iostream>#include <cmath>
#include <string>
using namespace std;
int main() {
int choice;
string num1, num2;
int base;
cout << "Введите первое число: ";
cin >> num1;
cout << "Введите второе число: ";
cin >> num2;
cout << "Выберите систему счисления (2, 8, 10, 16): ";
cin >> base;
cout << "Выберите операцию:\n";
cout << "1. Сложение\n";
cout << "2. Вычитание\n";
cout << "3. Умножение\n";
cout << "4. Деление\n";
cin >> choice;
long long int result;
switch (base) {
case 2:
result = stoi(num1, nullptr, 2);
switch(choice) {
case 1:
result += stoi(num2, nullptr, 2);
break;
case 2:
result -= stoi(num2, nullptr, 2);
break;
case 3:
result *= stoi(num2, nullptr, 2);
break;
case 4:
result /= stoi(num2, nullptr, 2);
break;
default:
cout << "Неправильно введена операция\n";
return 1;
}
cout << "Результат: " << bitset<32>(result) << endl;
break;
case 8:
result = stoi(num1, nullptr, 8);
switch(choice) {
case 1:
result += stoi(num2, nullptr, 8);
break;
case 2:
result -= stoi(num2, nullptr, 8);
break;
case 3:
result *= stoi(num2, nullptr, 8);
break;
case 4:
result /= stoi(num2, nullptr, 8);
break;
default:
cout << "Неправильно введена операция\n";
return 1;
}
cout << "Результат: " << oct << result << endl;
break;
case 10:
result = stoi(num1);
switch(choice) {
case 1:
result += stoi(num2);
break;
case 2:
result -= stoi(num2);
break;
case 3:
result *= stoi(num2);
break;
case 4:
result /= stoi(num2);
break;
default:
cout << "Неправильно введена операция\n";
return 1;
}
cout << "Результат: " << result << endl;
break;
case 16:
result = stoi(num1, nullptr, 16);
switch(choice) {
case 1:
result += stoi(num2, nullptr, 16);
break;
case 2:
result -= stoi(num2, nullptr, 16);
break;
case 3:
result *= stoi(num2, nullptr, 16);
break;
case 4:
result /= stoi(num2, nullptr, 16);
break;
default:
cout << "Неправильно введена операция\n";
return 1;
}
cout << "Результат: " << hex << result << endl;
break;
default:
cout << "Неправильно выбрана система счисления\n";
return 1;
}
return 0;
}
Это основной шаблон программы, который можно доработать и расширить по вашему желанию. Надеюсь, это поможет вам с вашим заданием на C++! Если у вас есть какие-либо вопросы или нужна дополнительная помощь, не стесняйтесь спрашивать.