Description:
Write a calculator base on c++.The calculator suppose to display addition, subtraction, multiplication,exponentiation and roman numerials.
#include #include using namespace std; void Romannumerial(int num) { if(num > 999) { cout << "Too large to be transferd to roma number.\n" < 99) { int n = num / 100; if(n == 9) { cout < 5) { cout << "D"; for(int i = 0; i < 10 - n; ++i) cout << "C"; } else if(n == 5) { cout << "D"; } else { for(int i = 0; i < n; ++i) cout < 9) { int n = num / 10; if(n == 9) { cout < 5) { cout << "L"; for(int i = 0; i < 10 - n; ++i) cout << "X"; } else if(n == 5) { cout << "L"; } else { for(int i = 0; i < n; ++i) cout < 0) { int n = num; if(n == 9) { cout < 5) { cout << "V"; for(int i = 0; i < 10 - n; ++i) cout << "I"; } else if(n == 5) { cout << "V"; } else { for(int i = 0; i < n; ++i) cout << "I"; } } } int main(int argc, char* argv[]) { int cmd; bool exit = false; while(!exit) { cout <> cmd; int num1, num2; int r = 0; switch(cmd) { case 1: cout <> num1 >> num2; if(num1 > 65536 || num2 > 65536) cout << "Warning: value may be to0 large, stack may overflow.\n"; cout << num1 + num2 << endl; break; case 2: cout <> num1 >> num2; if(num1 > 65536 || num2 > 65536) cout << "Warning: value may be to0 large, stack may overflow.\n"; cout << num1 - num2 << endl; break; case 3: cout <> num1 >> num2; if(num1 > 65536 || num2 > 65536) cout << "Warning: value may be to0 large, stack may overflow.\n"; r = 0; for(int i = 0; i < num2; ++i) { r += num1; } cout << r << endl; break; case 4: cout <> num1 >> num2; if(num1 > 65536 || num2 > 65536) cout << "Warning: value may be to0 large, stack may overflow.\n"; r = 1; for(int i = 0; i < num2; ++i) { r *= num1; } cout << r << endl; break; case 5: cout <> num1; Romannumerial(num1); break; default: exit = true; } } cout << endl; return 0; }