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

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

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

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

本文實例為大家分享了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
欧美午夜精品久久久久久浪潮| 色七七影院综合| 色琪琪综合男人的天堂aⅴ视频| 亚洲人成网站在线播| 成人av资源在线播放| 亚洲成人性视频| 国产精品免费久久久久影院| 成人黄色大片在线免费观看| 一区二区三区精品99久久| 午夜精品视频在线| 久久91精品国产91久久跳| 亚洲一区二区三区久久| 日韩高清a**址| 欧美成aaa人片在线观看蜜臀| 日韩激情视频在线| 日本韩国欧美精品大片卡二| 精品性高朝久久久久久久| 国产精品美女在线观看| 在线午夜精品自拍| 久久av资源网站| 欧洲日韩成人av| 国产日韩欧美成人| 98视频在线噜噜噜国产| 国产精品亚洲第一区| 亚洲另类xxxx| 午夜剧场成人观在线视频免费观看| 91精品中国老女人| 久久亚洲精品小早川怜子66| 亚洲欧美激情在线视频| 乱亲女秽乱长久久久| 97国产精品免费视频| 亚洲aaaaaa| 欧美亚洲激情在线| 日韩欧美一区二区在线| 日韩免费观看在线观看| 日本高清视频精品| 第一福利永久视频精品| 日韩av色综合| 国内成人精品一区| 久热精品视频在线观看一区| 色综合久久天天综线观看| 亚洲国产日韩欧美在线图片| 8x海外华人永久免费日韩内陆视频| 亚洲天堂免费在线| 国产精品视频免费在线观看| 亚洲成人av中文字幕| 日韩av男人的天堂| 久久久久久久香蕉网| 久久成人国产精品| 91精品在线影院| 狠狠色香婷婷久久亚洲精品| 欧美一区二区三区免费观看| 久久九九精品99国产精品| 91久久在线观看| 欧美激情中文字幕在线| 色哟哟网站入口亚洲精品| 色偷偷91综合久久噜噜| 亚洲男人天堂2019| 国产日韩中文字幕在线| 国产精品欧美一区二区三区奶水| 中文字幕亚洲欧美日韩2019| 91国产精品91| 国产精品久久av| 国产精品久久久久久久久久东京| 自拍偷拍亚洲欧美| 久久久综合av| 日韩av第一页| 国产精品av在线| 久久久中精品2020中文| 日韩国产精品亚洲а∨天堂免| 97碰在线观看| 亚洲香蕉在线观看| 精品国产乱码久久久久酒店| 亚洲视频自拍偷拍| 久久久日本电影| 国产精品igao视频| 欧美视频不卡中文| 久久久久久久影院| 国产精品女主播视频| 欧美巨大黑人极品精男| 日韩美女免费线视频| 91精品国产综合久久香蕉922| 久久久久久中文| 蜜臀久久99精品久久久久久宅男| 97人洗澡人人免费公开视频碰碰碰| 成人福利在线视频| 国产脚交av在线一区二区| 日韩av在线资源| 国产综合在线观看视频| 91chinesevideo永久地址| 欧美超级免费视 在线| 成人www视频在线观看| 97人人爽人人喊人人模波多| 欧美在线观看www| 久久久久久亚洲精品| 欧美激情第三页| 日韩激情第一页| 777777777亚洲妇女| 国产欧美日韩精品在线观看| 性欧美xxxx| 92福利视频午夜1000合集在线观看| 国产区精品视频| 色综合色综合久久综合频道88| 亚洲天堂av在线免费观看| 91精品国产91久久久久久不卡| 国产欧美一区二区三区在线| 亚洲一区精品电影| 日韩欧美在线国产| 欧美日韩精品在线视频| 57pao成人国产永久免费| 在线观看日韩视频| 久久电影一区二区| 黄网动漫久久久| 国产精品96久久久久久又黄又硬| 亚洲视频一区二区| 成人在线一区二区| 亚洲第一色中文字幕| 亚洲字幕在线观看| 91精品久久久久久久久久久久久| 国内精品久久久久久久| 国产亚洲视频中文字幕视频| 日韩精品在线视频美女| 精品福利在线视频| 亚洲人成亚洲人成在线观看| 欧美电影免费观看电视剧大全| 欧洲美女7788成人免费视频| 操日韩av在线电影| 两个人的视频www国产精品| 国产精品第七影院| 欧美中文字幕视频在线观看| 色婷婷av一区二区三区在线观看| 久久手机免费视频| 欧美激情亚洲自拍| 精品久久香蕉国产线看观看亚洲| 欧美日韩一区二区在线| 日韩在线观看免费全集电视剧网站| 91免费电影网站| 欧美怡红院视频一区二区三区| 精品免费在线视频| 91久久国产精品| 欧美日韩国产区| 亚洲美女精品久久| 亚洲欧美日韩高清| 亚洲石原莉奈一区二区在线观看| 正在播放欧美视频| 97国产精品久久| 久久久av亚洲男天堂| 8050国产精品久久久久久| 日韩在线观看视频免费| 国产精品无码专区在线观看| 欧美成人中文字幕| 欧美一级电影免费在线观看| 亚洲一区二区三| 亚洲免费电影一区| 欧美不卡视频一区发布| 国产成人亚洲综合| 亚洲欧美日韩一区二区三区在线| 日韩av在线一区二区| 久久香蕉频线观| 日韩精品视频在线观看网址| 国产精品久久二区| 欧美午夜丰满在线18影院| 色yeye香蕉凹凸一区二区av| 日韩精品视频免费|