编写计算器程序,用c++程序语言.请编写程序实现任意数学表达式求值计算器功能说明:(^)是乘方运算符,(#)是开方运算符,键入(S)清屏,键入(Q)退出.负数运算以及错误警告.如输入数学表达式:
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 20:52:10
![编写计算器程序,用c++程序语言.请编写程序实现任意数学表达式求值计算器功能说明:(^)是乘方运算符,(#)是开方运算符,键入(S)清屏,键入(Q)退出.负数运算以及错误警告.如输入数学表达式:](/uploads/image/z/10891963-19-3.jpg?t=%E7%BC%96%E5%86%99%E8%AE%A1%E7%AE%97%E5%99%A8%E7%A8%8B%E5%BA%8F%2C%E7%94%A8c%2B%2B%E7%A8%8B%E5%BA%8F%E8%AF%AD%E8%A8%80.%E8%AF%B7%E7%BC%96%E5%86%99%E7%A8%8B%E5%BA%8F%E5%AE%9E%E7%8E%B0%E4%BB%BB%E6%84%8F%E6%95%B0%E5%AD%A6%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC%E8%AE%A1%E7%AE%97%E5%99%A8%E5%8A%9F%E8%83%BD%E8%AF%B4%E6%98%8E%EF%BC%9A%28%5E%29%E6%98%AF%E4%B9%98%E6%96%B9%E8%BF%90%E7%AE%97%E7%AC%A6%2C%EF%BC%88%23%EF%BC%89%E6%98%AF%E5%BC%80%E6%96%B9%E8%BF%90%E7%AE%97%E7%AC%A6%2C%E9%94%AE%E5%85%A5%28S%29%E6%B8%85%E5%B1%8F%2C%E9%94%AE%E5%85%A5%28Q%29%E9%80%80%E5%87%BA.%E8%B4%9F%E6%95%B0%E8%BF%90%E7%AE%97%E4%BB%A5%E5%8F%8A%E9%94%99%E8%AF%AF%E8%AD%A6%E5%91%8A.%E5%A6%82%E8%BE%93%E5%85%A5%E6%95%B0%E5%AD%A6%E8%A1%A8%E8%BE%BE%E5%BC%8F%3A)
编写计算器程序,用c++程序语言.请编写程序实现任意数学表达式求值计算器功能说明:(^)是乘方运算符,(#)是开方运算符,键入(S)清屏,键入(Q)退出.负数运算以及错误警告.如输入数学表达式:
编写计算器程序,用c++程序语言.
请编写程序实现任意数学表达式求值计算器功能
说明:
(^)是乘方运算符,(#)是开方运算符,键入(S)清屏,键入(Q)退出.
负数运算以及错误警告.
如输入数学表达式:例 6+(6+8/2*(8-5)^3)*2 =234
6*10-4%3+10.6^3 =1151.727
00011001&&10010001 =00010001
(6*3)&&0||4=1
即:从键盘输入一段 表达式,通过程序计算,可得表达式的结果
要求得完成:加+、减-、乘*、除/、余%、n次方(^乘方)、开n次方(#开方)、与&&、或||、非!、括号() 等几种运算的混合运算.
编写计算器程序,用c++程序语言.请编写程序实现任意数学表达式求值计算器功能说明:(^)是乘方运算符,(#)是开方运算符,键入(S)清屏,键入(Q)退出.负数运算以及错误警告.如输入数学表达式:
所有你列的运算都实现了,代码如下
#ifndef _CALCULARTOR_H
#define _CALCULARTOR_H
#include
#include
#include
#include
#include
using namespace std;
struct OPRT{
int size;
int top;
char *elements;
OPRT(int sizeOprt){
size=sizeOprt;
elements=new char[sizeOprt];
top=-1;
}
~OPRT(){
delete [] elements;
}
bool empty(){
if(top==-1)
return true;
else
return false;
}
bool full(){
if(top >= size-1)
return true;
else
return false;
}
bool push(char x){
if(full())
return false;
top++;
elements[top]=x;
return true;
}
bool pop(char &x){
if(empty())
return false;
x=elements[top];
top--;
return true;
}
char gettop(){
char x;
x=elements[top];
return x;
}
};
struct OPRD{
int size;
int top;
double *elements;
OPRD(int size1){
size=size1;
elements=new double[size1];
top=-1;
}
~OPRD(){
delete [] elements;
}
bool empty(){
if(top==-1)
return true;
else
return false;
}
bool full(){
if(top >= size-1)
return true;
else
return false;
}
bool push(double x){
if(full())
return false;
top++;
elements[top]=x;
return true;
}
bool pop(double &x){
if(empty())
return false;
x=elements[top];
top--;
return true;
}
double gettop(){
double x;
x=elements[top];
return x;
}
};
int precede(char cStackTop,char cNew);
double operate(double a,char theta,double b);
#endif
//:This is the main function of calculator
#include "calculator.h"
bool bError = false;
int main(void)
{
const intiSizeOfStk = 20;
OPRDoprd(iSizeOfStk);
OPRToprt(iSizeOfStk);
stringsInExp;
stringsOprd;//to get num from sInExp
doubledOprd;
cout