gpt4 book ai didi

c++ - HP-35计算器基本功能代码

转载 作者:行者123 更新时间:2023-11-28 07:25:05 25 4
gpt4 key购买 nike

您好,我在实现 HP-35 型计算器的基本功能时遇到了一些麻烦我是初学者,在将代码放在一起时遇到了很多麻烦,基本功能是加法、减法、乘法和除法我需要帮助。

下面是我的主文件:

/* 
* File: main.cpp
* Author: Brenton
*
* Created on 20 September 2013, 12:10 AM
*/

#include <cstdlib>
#include "HPStack.h"
#include <iostream>
#include <sstream>
using namespace std;

/*
*
*/
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()));

//From here I am having trouble, I don't know what the code is.

} else if (token == "+") { // Addition code

} else if (token == "-") { // Subtraction code

} else if (token == "/") { // Division code

} else if (token == "*") { // Multiplication code

double x = stack.pop();
double y = stack.pop();
stack.push(y + x);
}
}
cout << stack.peek();
}
return 0;
}

下面是到目前为止我创建的堆栈的代码:

/* 
* File: HPStack.cpp
* Author: Brenton
*
* Created on 20 September 2013, 12:07 AM
*/

#include "HPStack.h"

HPStack::HPStack() {
}

HPStack::HPStack(const HPStack& orig) {
}

HPStack::~HPStack() {
}

下面是我的头文件代码:

/* 
* File: HPStack.h
* Author: Brenton
*
* Created on 20 September 2013, 12:10 AM
*/

#ifndef HPSTACK_H
#define HPSTACK_H

class HPStack {
public:
HPStack();
void push(double);
double pop();


private:
double stack;
double x, y, z, t;

};

#endif /* HPSTACK_H */

我知道这似乎是一个愚蠢的问题,但我真的不知道我在用数学代码做什么,但我正在尝试。任何帮助将不胜感激

最佳答案

这是一个非常通用的问题,但假设 HP35 是一个 RPN 计算器,那么加法代码将简单地从堆栈中弹出两个值,将它们相加,然后将结果推回堆栈。减法函数类似,只需确保以正确的顺序减去它们即可。

您显然还需要完成堆栈的实现。如果您正在使用 C++ 并且不打算添加额外的功能,那么只需使用 std::stack<double>相反。

看维基百科,好像不是RPN计算器。我认为您一定是在尝试处理运算符优先级?

关于c++ - HP-35计算器基本功能代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com