C++实现一个简单的计算器
Posted Jing Sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++实现一个简单的计算器相关的知识,希望对你有一定的参考价值。
如下所示,这是一个简单的计算器:
#include<iostream>
#include<cstring>
using namespace std;
template <class T>
class stack
private:
int top;//栈顶
int maxtop;
T *st;//数组
public:
stack(int maxstacksize=10)
maxtop=maxstacksize-1;
st=new T[maxstacksize];
top=-1;
~stack()
delete [] st;
//判断栈是否已满
bool isfull()
return top==maxtop;
//判断栈是否为空
bool isempty()
return top==-1;
//向栈顶添加元素
bool add(const T &x)
if(isfull())
cout<<"no memory"<<endl;
return false;
top++;
st[top]=x;
return true;
T del()//取出并删除元素
if(isempty())
cerr<<"no element"<<endl;
T x;
x=st[top];
top--;
return x;
//返回栈顶元素值
T returntop()
return st[top];
//清空栈
void clear()
top=-1;
//输出栈
void output()
if(isempty())
cout<<"栈是空的"<<endl;
else
for(int i=0;i<=top;i++)
cout<<st[i]<<'\\t';
cout<<endl;
;
int main()
char math[20];
char fuhao[10]=0,0,0,0,0,0,0,0,0,0;
char shuzi[10]='-','-','-','-','-','-','-','-','-','-';
int number[10];
cout<<"输入算数式,请以#结尾"<<endl;
cin>>math;
int j=0;
int p=0;
for(int i=0;i<20&&math[i]!='#';i++)
if(math[i]>=48&&math[i]<=57)
shuzi[j]=math[i];
j++;
else
fuhao[p]=math[i];
p++;
for(int i=0;i<20&&math[i]!='#';i++)
if(math[i]=='('&&i!=0)
if(math[i-1]>=48&&math[i-1]<=57)
cout<<"error"<<endl;
goto ending;
for(int i=0;i<10&&shuzi[i]!='-';i++)
number[i]=(int)shuzi[i]-48;
for(int i=0;i<10&&fuhao[i]!=0;i++)
if(fuhao[i]=='(')
int f=0;
for(int q=i;q<10&&fuhao[q]!=0;q++)
if (fuhao[q]==')')
f++;
if(f==0)
cout<<"表达式错误"<<endl;
goto ending;
return 0;
以上是关于C++实现一个简单的计算器的主要内容,如果未能解决你的问题,请参考以下文章