Реализуйте арифметические операции c в базе классов HPStack на калькуляторе HP 35 - PullRequest
0 голосов
/ 25 апреля 2020

В основном я пытаюсь ответить на вопрос, основанный на выполнении вычислений, которые могут реализовать арифметические c операции, чтобы калькулятор мог вычислять базовые c выражения, такие как:

5 4 + 3 2 - / // should be 9
3 4 5 6 + + + // should be 18
1.23 4.5 67 / * // should be 0.0826119 

It Другими словами, напишите программу для эмуляции вычислений, выполненных на калькуляторе HP-35. Как я могу сделать в C ++. У меня возникли проблемы с этим вопросом, но я до сих пор его начал. Вот код, который у меня есть, который я начал до сих пор:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

class HPStack {

public:
    double pop() {
        return 0;
    }

    void push(double d) {

    }

    char peek() {
        return 0;
    }
};

int main(int argc, char* argv[])
{
    HPStack stack;
    string line;
    while (getline(cin, line)) {
        stringstream expression(line);
        string token;
        while (expression >> token) {
            if (isdigit(token[0])) {
                stack.push(atof(token.data()));
            }
            else if (token=="+") { // similar for other arithmetic ops
                double x = stack.pop();
                double y = stack.pop();
                stack.push(y+x);
            }
        }
        cout << stack.peek();
    }
    return 0;
}
...