C++实现一个简单的计算器
一个用堆和栈实现的简单计算器,可以进行非负数之间的加减乘除运算(可以是个位数也可以是多位数)
这个计算器就是用栈和队列进行一个手算过程的模拟,也不算难
下面是代码
#include<iostream>
#include<cstdio>
#include<stack>
#include<queue>
#include<string>
using namespace std;
int main()
{
queue<double>s1;
queue<char>ss1;
stack<double>s2;
stack<char>ss2;
string a;
double n=0;
cout << "请输入你要计算的式子" << endl;
cin >> a;
//判断字符是数字还是符号,数字入队列s1,符号入队列ss1
for(int i=0;i<a.length();i++)
{
if(a[i]>='0'&&a[i]<='9')
{
n=n*10+a[i]-'0';
if(a[i+1]<'0'||a[i+1]>'9')
{
s1.push(n);
n=0;
}
}
if(a[i]<'0'||a[i]>'9')
ss1.push(a[i]);
}
//开始进行运算模拟,第一步先把所有的括号去掉
//去除括号的过程中,数字放入栈s2中,符号放入栈ss2中
while(!ss1.empty())
{
if(ss2.empty())
{
if(ss1.front()<