📄 calculator.cpp
字号:
#include "calculator.hpp"
int token=0; //记录当前按下的键
int add_exp(void)
{
int temp1=mul_exp();
int temp2;
if(token==sadd) //加号
{
temp2=add_exp();
return (temp1+temp2);
}
else if(token==ssub) //减号
{
temp2=add_exp();
return (temp1-temp2);
}
else if(token==senter) //井号
{
return temp1;
}
else if(token==')')
{
return temp1;
}
else //错误
{
return serr;
}
}
int mul_exp()
{
int temp1=kuo_exp();
int temp2;
if(token==smul) //乘号
{
temp2=mul_exp();
return (temp1*temp2);
}
else if(token==sdiv) //除号
{
temp2=mul_exp();
return (temp1/temp2);
}
else if(token==senter) //井号
{
return temp1;
}
else //错误
{
return temp1;
}
}
int kuo_exp()
{
int key=GetKey();
int temp;
if(key==srig)
{
temp=add_exp();
token=GetKey();
return temp;
}
else if(key<=9 && key>=0)
{
cin.putback(key+'0');
temp=num_exp();
return temp;
}
else //错误
{
return serr;
}
}
int num_exp()
{
int key=GetKey();
int temp=0;
while(key<=9 && key>=0)
{
temp=key+temp*10;
key=GetKey();
}
token=key;
return temp;
}
int GetKey(void)
{
char ch;
int temp;
cin>>ch;
if(ch<='9' && ch>='0')
{
temp=ch-'0';
return temp;
}
else if(ch=='+') return sadd;
else if(ch=='-') return ssub;
else if(ch=='*') return smul;
else if(ch=='/') return sdiv;
else if(ch=='(') return srig;
else if(ch==')') return slft;
else if(ch=='#') return senter;
else return serr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -