运用stack 类实现简单计算器 包含stack.h,stack.cpp和main.cpp三个文件
时间: 2024-05-05 09:19:05 浏览: 95
利用stack实现简单的计算器
好的,这是一个关于运用stack类实现简单计算器的问题。我将尝试回答它。
首先,您需要在stack.h文件中定义一个名为Stack的类,并在其中实现push、pop和isEmpty等方法。然后,在stack.cpp文件中实现这些方法。最后,在main.cpp文件中使用Stack类来实现简单计算器。
以下是一个基本的实现示例:
stack.h:
```
#ifndef STACK_H
#define STACK_H
class Stack {
public:
Stack();
bool isEmpty();
void push(int value);
int pop();
private:
int top;
int values[100];
};
#endif
```
stack.cpp:
```
#include "stack.h"
Stack::Stack() {
top = -1;
}
bool Stack::isEmpty() {
return top == -1;
}
void Stack::push(int value) {
top++;
values[top] = value;
}
int Stack::pop() {
int value = values[top];
top--;
return value;
}
```
main.cpp:
```
#include <iostream>
#include "stack.h"
using namespace std;
int main() {
Stack myStack;
char input;
int num, num1, num2;
while (true) {
cout << "Enter an operator (+, -, *, /) or q to quit: ";
cin >> input;
if (input == 'q') {
break;
}
cout << "Enter a number: ";
cin >> num;
switch(input) {
case '+':
myStack.push(num);
break;
case '-':
myStack.push(-num);
break;
case '*':
num1 = myStack.pop();
num2 = num * num1;
myStack.push(num2);
break;
case '/':
num1 = myStack.pop();
num2 = num1 / num;
myStack.push(num2);
break;
default:
cout << "Invalid operator" << endl;
break;
}
}
cout << "Result: " << myStack.pop() << endl;
return 0;
}
```
这里的代码实现了简单的加、减、乘、除运算,但没有添加容错处理。您可以根据您的需求进行适当的更改。
阅读全文