1樓:來複還盡散金千
^//*************************************
//數學表示式解析類
//*************************************
//expression_parser.cpp
#include
#include
#include
const double pi=3.141592654;
//將角度轉換成弧度
double degtorad( double deg )
//將中綴表示式轉換為字尾表示式(逆波蘭式)
void trans( char a, char b )
;int top=0;
int len=0;
int i=0;
int j=0;
top = -1;
j = -1;
len = strlen(a);
for ( i=0; i=0 && stock[top]!='(' )
stock[++top] = ' ';
stock[++top] = a[i];
break;
case '*':
case '/':
while( top>=0 && stock[top]!='(' && stock[top]!='+' && stock[top]!='-' )
stock[++top] = ' ';
stock[++top] = a[i];
break;
case 's':
case 'c':
case 't':
while( top>=0 && stock[top]!='(' && stock[top]!='+' && stock[top]!
='-' && stock[top]!='*' && stock[top]!='/' )
stock[++top] = ' ';
stock[++top] = a[i];
break;
case 'v':
case '^':
while( top>=0 && stock[top]!='(' && stock[top]!='+' && stock[top]!
='-' && stock[top]!='*' && stock[top]!='/' && stock[top]!
='s' && stock[top]!='c' && stock[top]!='t' )
stock[++top] = ' ';
stock[++top] = a[i];
break;
case 'l':
while( top>=0 && stock[top]!='(' && stock[top]!='+' && stock[top]!
='-' && stock[top]!='*' && stock[top]!='/' && stock[top]!
='s' && stock[top]!='c' && stock[top]!='t' && stock[top]!
='v' && stock[top]!='^' )
stock[++top] = ' ';
stock[++top] = a[i];
break;
case')':
while( stock[top]!='(' )
top--;
break;
default:
b[++j] = a[i];
if( i == len-1 || a[i+1]<'0' || a[i+1]>'9' )
}break;}}
while ( top>=0 )
b[++j] = '\0';
}//求解字尾表示式(逆波蘭式)的值
double ***pvalue( char exp )
;char str_num_temp[128]=;
top = -1;
len = strlen(exp);
for ( i=0; i='0' && exp[i]<='9' || exp[i] == '.' )
str_num_temp[c] = '\0';
digit[++top] = atof(str_num_temp);
break;}}
return digit[0];
}//解析數學表示式(供外界呼叫的介面)
double expression_parser( char *expression )
;trans( expression, temp );
return ***pvalue( temp );
//呼叫方法
//main.cpp
#include
using namespace std;
double expression_parser( char *expression );
int main()
{double result=0;
char exp="t45-c60+s30+(-6)*3^4+l100+v4-8/2";
//cin>>exp>>endl; //取消改行註釋,等待使用者輸入數學表示式
result = expression_parser( exp );
cout<<"表示式 "<
2樓:望月的憑欄
我用的就是卡西歐科學計算器,60圓,去網上買或者文具店也有(是否是新版不清楚)
3樓:匿名使用者
這個涉及到編譯原理。建議看下《編譯原理》這本書。目測源**大概要700行以上……
用c++編寫加減乘除
4樓:福龍
#include #include using namespace std; void main() ,str1[10]=,str2[10]=; int num1,num2,i=0,j=0,k=0; cout<<"輸入運算(如35+29): "; cin>>test; while(test[i]) signe = test[i++]; //取運算子號 while(test[i]) num1 = atoi(str1); num2 = atoi(str2); if (signe=='+')cout<>n; }while(n); }求採納
5樓:
很簡單的,可以給你寫一個,通過cstring實現
普通計算器上的顯示器是什麼顯示器就是那種型的那種我剛學微控制器
1 普通計算器上的顯示器稱為筆段式液晶顯示器。一般為定製液晶產品。可回以做成任意形狀筆段,比 答如早期的bp機,數字式電錶,數字萬用表,液晶顯示器上有數字筆畫 圖形 漢字 塊。每個筆畫或 塊 稱為段,可以單獨控制。特點是被動發光。液晶翻轉而已,所以需要開背光或有恰當的環境光時才能看見。當然也就可以做...
用C語言編寫類似計算器的程式,用C語言編寫一個類似計算器的程式
note your choice is c ide include stdio.h include stdlib.h include ctype.h int n 0 char record 20 float product float change float muli return summ fl...
c語言 要求編寫簡單計算器的程式
include void main 方法一 include include include include struct complex multiply struct complex x,struct complex y struct complex int main struct complex...