亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言數據結構之簡易計算器

2020-05-23 13:39:06
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言簡易計算器的具體代碼,供大家參考,具體內容如下

主要解決了處理負數、小數等的基礎運算操作,無圖形界面

#include <iostream>#include <stack>using namespace std;class Calculator{private: int Priority(char fuhao); double CalSuffix(string PostfixExp);public: double Calculate(string InfixExp);  string InfixToSuffix(string InfixExp);};double Calculator::CalSuffix(string PostfixExp){ double tmpresult,ch1,ch2; double tmpnum,tmpxiaoshu=1; int i=0,tmpdashu; int isfu=0; /// stack<double> stk2; while(PostfixExp[i]!='/0'){  isfu=0; ///  if(PostfixExp[i]>=48&&PostfixExp[i]<=57){   if(PostfixExp[i-1]=='-'){  /////    isfu=1;   }   tmpxiaoshu=1;   tmpdashu=10;   tmpnum = PostfixExp[i]-48;   while(PostfixExp[++i]>=48&&PostfixExp[i]<=57){    tmpnum = tmpnum*tmpdashu+ (PostfixExp[i]-48);   }   i=i-1;   if(PostfixExp[++i]=='.'){    while(PostfixExp[++i]>=48&&PostfixExp[i]<=57){     tmpxiaoshu=tmpxiaoshu*0.1;     tmpnum = tmpnum + (PostfixExp[i]-48)*tmpxiaoshu;    }    i=i-1;   }   else{    i=i-1;   }   if(isfu){ ////    tmpnum=tmpnum*(-1);   }   stk2.push(tmpnum);  }  else if(PostfixExp[i]=='&'||PostfixExp[i]==' '){  }  else {   if(PostfixExp[++i]>=48&&PostfixExp[i]<=57){    i=i-1;   }   else {    i=i-1;    ch2 = stk2.top();    stk2.pop();    ch1 = stk2.top();    stk2.pop();    switch(PostfixExp[i]){     case '+': tmpnum = ch1 + ch2; break;     case '-': tmpnum = ch1 - ch2; break;     case '*': tmpnum = ch1 * ch2; break;     case '/': tmpnum = ch1 / ch2;      if(ch2==0) cout<<"除數為零";break;    }    stk2.push(tmpnum);   }  }  i++; } if(stk2.empty()!=1){  tmpresult = stk2.top();  stk2.pop(); } return tmpresult;}double Calculator::Calculate(string InfixExp){ double result; result = CalSuffix(InfixToSuffix(InfixExp)); return result;}int Calculator::Priority(char fuhao){ switch(fuhao){  case '+':  case '-': return 2;  case '*':  case '/': return 3;  case '(':  case ')': return 1;  default:   return 0; }}string Calculator::InfixToSuffix(string InfixExp){ stack<char> stk; string PostfixExp = "     "; int i=0,j=0; char tmpfuhao; int flag = 0; //判斷多位數的頭數是否為零 while(InfixExp[i]!='/0'){  if(InfixExp[i]>=48&&InfixExp[i]<=57){   flag = 0;   PostfixExp[j++]='&';   PostfixExp[j++]=InfixExp[i];   if(InfixExp[i]=='0'){    flag = 1;   }   while(InfixExp[++i]>=48&&InfixExp[i]<=57){    if(flag==0)     PostfixExp[j++]=InfixExp[i];    else     cout<<"輸入錯誤數字";   }   i=i-1;   if(InfixExp[++i]=='.'){    PostfixExp[j++]='.';    while(InfixExp[++i]>=48&&InfixExp[i]<=57){     PostfixExp[j++]=InfixExp[i];    }    i=i-1;   }   else{    i=i-1;   }  }  else if(InfixExp[i]=='('){   stk.push(InfixExp[i]);  }  else if(InfixExp[i]==')'){   if(stk.empty()){    cout<<"表達式錯誤!";   }   else{    tmpfuhao = stk.top();    while(tmpfuhao!='('){     if(stk.empty()){      cout<<"表達式錯誤!";     }     else{      PostfixExp[j++] = '&';      PostfixExp[j++] = tmpfuhao;      stk.pop();      tmpfuhao = stk.top();     }    }    stk.pop();   }  }  else if(InfixExp[i]=='+'||InfixExp[i]=='-'||InfixExp[i]=='*'||InfixExp[i]=='/'){   if(i==0||((InfixExp[--i]<48||InfixExp[i]>57)&&InfixExp[i]!=')')){    i++;    PostfixExp[j++]='&';    PostfixExp[j++]='-';    while(InfixExp[++i]>=48&&InfixExp[i]<=57){     PostfixExp[j++]=InfixExp[i];    }    i=i-1;    if(InfixExp[++i]=='.'){     PostfixExp[j++]='.';     while(InfixExp[++i]>=48&&InfixExp[i]<=57){      PostfixExp[j++]=InfixExp[i];     }     i=i-1;    }    else{     i=i-1;    }   }   else{    i++;   if(stk.empty()){    stk.push(InfixExp[i]);   }   else{    tmpfuhao = stk.top();    if(Priority(tmpfuhao)<Priority(InfixExp[i])){     stk.push(InfixExp[i]);    }    else{     while(Priority(tmpfuhao)>=Priority(InfixExp[i])){      PostfixExp[j++] = '&';      PostfixExp[j++] = tmpfuhao;      stk.pop();      if(stk.empty()!=1){       tmpfuhao = stk.top();      }      else break;     }     stk.push(InfixExp[i]);    }   }   }  }  else{   cout<<"符號錯誤!";   break;  }  i++; } while(!stk.empty()){  tmpfuhao = stk.top();  PostfixExp[j++] = '&';  PostfixExp[j++] = tmpfuhao;  stk.pop(); } PostfixExp[j++] = '/0'; return PostfixExp;}int main(int argc, const char * argv[]) { string a; Calculator a1; cin>>a; cout<<a1.Calculate(a)<<endl; cout<<a1.InfixToSuffix(a); return 0;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国语自产精品视频在线看一大j8| 欧美激情综合亚洲一二区| 一区二区三区美女xx视频| 91国内免费在线视频| 超薄丝袜一区二区| 国产精品一区二区久久久久| 国产精品久久久久7777婷婷| 狠狠久久亚洲欧美专区| 成人国产亚洲精品a区天堂华泰| 久久久人成影片一区二区三区观看| 国产精品旅馆在线| 亚洲男人av电影| 欧美亚洲在线播放| 久久久免费高清电视剧观看| 亚洲精品理论电影| 国产成人综合av| 欧美日韩国产在线播放| 欧美国产激情18| 欧美韩日一区二区| 久久久亚洲国产天美传媒修理工| 国产综合视频在线观看| 国产一区二区三区四区福利| 黑人极品videos精品欧美裸| 国产精品手机播放| 成人妇女淫片aaaa视频| 92看片淫黄大片欧美看国产片| 亚洲精品免费网站| 55夜色66夜色国产精品视频| 亚洲人成在线播放| 欧美日韩一区二区免费视频| 久久久久九九九九| 91久久精品美女| 国产精品成人av性教育| 国产欧美日韩高清| 日韩电影网在线| 不用播放器成人网| 国产精品自产拍在线观看| 欧美日韩在线影院| 国产一区二区三区四区福利| 国产亚洲视频中文字幕视频| 国产精品吹潮在线观看| 色噜噜久久综合伊人一本| 97热精品视频官网| 亚洲欧美国产精品va在线观看| 欧美午夜女人视频在线| 日韩精品免费在线| 91性高湖久久久久久久久_久久99| 久久精彩免费视频| 中文字幕精品视频| 亚洲影院在线看| 成人黄色免费网站在线观看| 国产精品久久色| 91黑丝高跟在线| 正在播放亚洲1区| 日韩欧美国产骚| 国模叶桐国产精品一区| 久久97精品久久久久久久不卡| 欧美性开放视频| 午夜精品久久久久久久白皮肤| 国产精品户外野外| 久久久久九九九九| 国模吧一区二区三区| 色小说视频一区| 精品国产精品三级精品av网址| 国产精品久久久久久超碰| 另类专区欧美制服同性| 91日韩在线视频| 91高清在线免费观看| 一本一本久久a久久精品综合小说| 精品久久久久久久久国产字幕| 国产欧亚日韩视频| 久久久久久噜噜噜久久久精品| 久久在线精品视频| 色老头一区二区三区在线观看| 亚洲国产日韩欧美综合久久| 亚洲精品按摩视频| 91精品久久久久久久久久久久久久| 日韩性生活视频| 九九热99久久久国产盗摄| 国产精品扒开腿做爽爽爽的视频| 欧美日韩国产第一页| 91性高湖久久久久久久久_久久99| 97国产真实伦对白精彩视频8| 国产精品手机播放| 亚洲欧美日韩精品久久奇米色影视| 亚洲国产另类 国产精品国产免费| 91网站免费观看| 久久久免费高清电视剧观看| 国产在线视频2019最新视频| 国产精品女人久久久久久| 91天堂在线观看| 亚洲综合精品一区二区| 亚洲精品美女久久久久| 亚洲欧美日韩高清| 国产精品91视频| 欧美裸体视频网站| 国产亚洲欧洲高清| 97国产精品视频| 国产精品三级美女白浆呻吟| 日韩亚洲综合在线| 日韩一区二区精品视频| 国产精品高清在线| 中文字幕日韩电影| 日韩资源在线观看| 日本高清+成人网在线观看| 日韩最新中文字幕电影免费看| 久久精品91久久香蕉加勒比| 亚洲精品视频网上网址在线观看| 国产精品视频资源| 欧美成人全部免费| 成人伊人精品色xxxx视频| 久久天天躁夜夜躁狠狠躁2022| 成人欧美一区二区三区黑人| 国产精品视频自拍| 亚洲美腿欧美激情另类| 欧美性精品220| 国产精品国产三级国产aⅴ浪潮| 精品人伦一区二区三区蜜桃免费| 5278欧美一区二区三区| 日韩精品视频在线观看免费| 在线看片第一页欧美| 成人欧美一区二区三区黑人孕妇| 日日噜噜噜夜夜爽亚洲精品| 97超碰国产精品女人人人爽| 欧美成人网在线| 性夜试看影院91社区| 国产脚交av在线一区二区| 操日韩av在线电影| 精品国产一区二区三区久久| 国产精品jizz在线观看麻豆| 久久久精品网站| 久久人人爽亚洲精品天堂| 国产亚洲欧洲在线| 国产精品午夜国产小视频| 欧美一级大片在线观看| 97免费中文视频在线观看| 高清一区二区三区日本久| 日韩av在线影视| 亚洲xxxx妇黄裸体| 成人妇女淫片aaaa视频| 亚洲精品欧美一区二区三区| 911国产网站尤物在线观看| 日韩经典中文字幕| 欧美在线视频一区| 中文字幕亚洲无线码在线一区| 亚洲最新中文字幕| 久久99精品久久久久久青青91| 欧美日韩免费看| 欧美日韩999| 91豆花精品一区| 91久久久久久久| 日韩欧美国产黄色| 色在人av网站天堂精品| 亚洲人成网7777777国产| 欧美大码xxxx| 性欧美长视频免费观看不卡| 国产精品第一视频| 国产成人精品综合| 国产精品久久网| 98视频在线噜噜噜国产| 亚洲一区二区三区xxx视频| 中文字幕精品一区二区精品| 欧美午夜精品久久久久久久| 日本中文字幕成人|