Need help, trying to perform arithmetic operations using words, so far i've got to the stage where if the user enters a number in words with the operation type eg(one + six) result is a word eg (seven). But when the user enters eg(thirty_one + one) it should equal thirty_two, but i'm getting thirty_one, so it looks like its ignoring _one.
What do i do????
Also is there any way of putting the number to word conversion into the Calculator.h instead of main.cpp????

Here is my code so far
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;
        }
      
 
        }
    }