欢迎来到天天文库
浏览记录
ID:14201732
大小:148.50 KB
页数:9页
时间:2018-07-26
《程序设计方法学简易计算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验1简易计算器:第一步:程序基本架构:#include#include#includeusingnamespacestd;#defineMAXLENGTH1024boolfail=false;//数据结构://操作数栈structstack_c{chardata[MAXLENGTH];inttop;}od;//操作符栈structstack_d{doubledata[MAXLENGTH];inttop;}op;intmain(){ifstreaminfile;ofstreamoutfile;stringexpr
2、;infile.open("infile.txt");outfile.open("calc.log");if(infile.fail()){outfile<<"无法读取表达式!"<>expr;calc(expr);outfile<3、表达式不合法”<4、c(Stringexpr){op.top=od.top=0;intnow=0;doubletmp=0,weg;boolpoint=false;fail=false;while(now5、reak;case'+':op3((expr[now]);//遇到’+’时,进行op3操作break;case'*':op4((expr[now]);//遇到’*’时,进行op4操作break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':op5((expr[now]);//遇到数字时,进行op5操作break;case')':op6((expr[now]);//遇到’)’时,进行op6操作break;case'.':point=true;//遇到’.’6、时开启小数模式weg=0.1;break;}now++;if(fail){break;}}voidop1((expr[now]){}voidop2((expr[now]){}voidop3((expr[now]){}voidop4((expr[now]){}voidop5((expr[now]){}voidop6((expr[now]){}}第四步:对check_bars(),check_all_letters(),op1(),op2(),op3(),op4(),op5(),op6()函数精细boolcheck_all_letters(stringe){for(in7、ti=0;i=48)&&(e[i]<=57))continue;if(e[i]=='.')continue;//运算符if(e[i]=='+')continue;if(e[i]=='-')continue;if(e[i]=='*')continue;if(e[i]=='/')continue;//界限符if(e[i]==';')continue;if(e[i]=='(')continue;if(e[i]==')')continue;returnfalse;}returntrue;}boolcheck_
3、表达式不合法”<4、c(Stringexpr){op.top=od.top=0;intnow=0;doubletmp=0,weg;boolpoint=false;fail=false;while(now5、reak;case'+':op3((expr[now]);//遇到’+’时,进行op3操作break;case'*':op4((expr[now]);//遇到’*’时,进行op4操作break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':op5((expr[now]);//遇到数字时,进行op5操作break;case')':op6((expr[now]);//遇到’)’时,进行op6操作break;case'.':point=true;//遇到’.’6、时开启小数模式weg=0.1;break;}now++;if(fail){break;}}voidop1((expr[now]){}voidop2((expr[now]){}voidop3((expr[now]){}voidop4((expr[now]){}voidop5((expr[now]){}voidop6((expr[now]){}}第四步:对check_bars(),check_all_letters(),op1(),op2(),op3(),op4(),op5(),op6()函数精细boolcheck_all_letters(stringe){for(in7、ti=0;i=48)&&(e[i]<=57))continue;if(e[i]=='.')continue;//运算符if(e[i]=='+')continue;if(e[i]=='-')continue;if(e[i]=='*')continue;if(e[i]=='/')continue;//界限符if(e[i]==';')continue;if(e[i]=='(')continue;if(e[i]==')')continue;returnfalse;}returntrue;}boolcheck_
4、c(Stringexpr){op.top=od.top=0;intnow=0;doubletmp=0,weg;boolpoint=false;fail=false;while(now5、reak;case'+':op3((expr[now]);//遇到’+’时,进行op3操作break;case'*':op4((expr[now]);//遇到’*’时,进行op4操作break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':op5((expr[now]);//遇到数字时,进行op5操作break;case')':op6((expr[now]);//遇到’)’时,进行op6操作break;case'.':point=true;//遇到’.’6、时开启小数模式weg=0.1;break;}now++;if(fail){break;}}voidop1((expr[now]){}voidop2((expr[now]){}voidop3((expr[now]){}voidop4((expr[now]){}voidop5((expr[now]){}voidop6((expr[now]){}}第四步:对check_bars(),check_all_letters(),op1(),op2(),op3(),op4(),op5(),op6()函数精细boolcheck_all_letters(stringe){for(in7、ti=0;i=48)&&(e[i]<=57))continue;if(e[i]=='.')continue;//运算符if(e[i]=='+')continue;if(e[i]=='-')continue;if(e[i]=='*')continue;if(e[i]=='/')continue;//界限符if(e[i]==';')continue;if(e[i]=='(')continue;if(e[i]==')')continue;returnfalse;}returntrue;}boolcheck_
5、reak;case'+':op3((expr[now]);//遇到’+’时,进行op3操作break;case'*':op4((expr[now]);//遇到’*’时,进行op4操作break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':op5((expr[now]);//遇到数字时,进行op5操作break;case')':op6((expr[now]);//遇到’)’时,进行op6操作break;case'.':point=true;//遇到’.’
6、时开启小数模式weg=0.1;break;}now++;if(fail){break;}}voidop1((expr[now]){}voidop2((expr[now]){}voidop3((expr[now]){}voidop4((expr[now]){}voidop5((expr[now]){}voidop6((expr[now]){}}第四步:对check_bars(),check_all_letters(),op1(),op2(),op3(),op4(),op5(),op6()函数精细boolcheck_all_letters(stringe){for(in
7、ti=0;i=48)&&(e[i]<=57))continue;if(e[i]=='.')continue;//运算符if(e[i]=='+')continue;if(e[i]=='-')continue;if(e[i]=='*')continue;if(e[i]=='/')continue;//界限符if(e[i]==';')continue;if(e[i]=='(')continue;if(e[i]==')')continue;returnfalse;}returntrue;}boolcheck_
此文档下载收益归作者所有