Code:
#include <string>
#ifndef CALCULATOR_H
#define CALCULATOR_H
class Calculator {
public:
int add(int, int);
int subtract(int, int);
int multiply(int, int);
int divide(int, int);
private:
int n1;
int n2;
};
#endif /* CALCULATOR_H */
#include "Calculator.h"
int Calculator::add(int n1, int n2) {
return (n1 + n2);
}
int Calculator::subtract(int n1, int n2) {
return (n1 - n2);
}
int Calculator::divide(int n1, int n2) {
return (n1 / n2);
}
int Calculator::multiply(int n1, int n2) {
return (n1 * n2);
}
#include <iostream>
#include "Calculator.h"
using namespace std;
string Calualtor();
int main() {
int length;
Calculator calc;
string word1, word2;
int result, OnesR, TensR;
char arithmetic;
string One[10] = {"zero", "one", "two", "three", "four", "five", "six",
"seven", "eight", "nine"};
string Teen[10] = {"","eleven", "twelve", "thirteen", "fourteen","fifteen", "sixteen",
"seventeen", "eighteen", "nineteen"};
string Ten[10] = {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty",
"seventy", "eighty", "ninety"};
string Hund[10] = {"", "one_hundred", "two_hundred", "three_hundred",
"four_hundred", "seven_hundred", "eight_hundred", "nine_hundred"};
while (cin >> word1 >> arithmetic >> word2) {
int n1 = 0, n2 = 0;
if (word1.length() > word2.length()) { //Determine the longest length
length = word1.length();
} else
length = word2.length();
for (int x = 0; x < length; x++) { //input to lower case
word1[x] = std::tolower(word1[x]);
word2[x] = std::tolower(word2[x]);
}
for (int i = 9; i > 0; i--) {
if (word1.find(One[i]) == 0 || word1.find(Ten[i]) == 0 || word1.find(Teen[i]) == 0){
if (word1.find(Ten[i])==0)
{
n1 = i;
n1 = n1 * 10;
if (word1.find(Teen[i])==0)
{
n1 = i;
n1 = n1 + 10;
}
}
else{
n1 = i;
}
word1.erase(0, One[i].length());
break;
}
}
for (int i = 9; i > 0; i--) {
if (word2.find(One[i]) == 0 || word2.find(Ten[i]) == 0 || word2.find(Teen[i]) == 0){
if (word2.find(Ten[i])==0)
{
n2 = i;
n2 = n2 * 10;
if (word2.find(Teen[i])==0)
{
n2 = i;
n2 = n2 + 10;
}
}
else{
n2 = i;
}
word2.erase(0, One[i].length());
break;
}
}
switch (arithmetic) {
case '+':
result = calc.add(n1, n2);
break;
case '-':
result = calc.subtract(n1, n2);
break;
case '*':
result = calc.multiply(n1, n2);
break;
case '/':
result = calc.divide(n1, n2);
break;
default:
cout << 0 << endl;
}
if(result <=19 && result >=11 || result <=119 && result >111)
{
result = result % 10;
cout<< Teen[result]<<endl;
}
else {
for (int i = 1; i <= 2; i++) //Save individual digits to individual variables.
{
switch (i) {
case 1:
OnesR = result % 10;
result = result / 10;
break;
case 2:
TensR = result % 10;
result = result / 10;
break;
}
}
cout << Ten[TensR]+ "_" << One[OnesR] << endl;
}
}
}