⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.cpp

📁 一个简单的加减乘除四则运算的计算器功能
💻 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 + -