数据结构实验之计算器

数据结构实验之计算器

ID:30867774

大小:134.87 KB

页数:9页

时间:2019-01-03

数据结构实验之计算器_第1页
数据结构实验之计算器_第2页
数据结构实验之计算器_第3页
数据结构实验之计算器_第4页
数据结构实验之计算器_第5页
资源描述:

《数据结构实验之计算器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验五:计算器[实验题目]模拟一个简单的计算器,可以进行等运算,要求输入的表达式必须是后缀表达式。[概要分析]从键盘上输入一个后缀表达式,通过数据栈的方法,输入数据,遇数入栈,遇到符号从栈中弹出2个数据运算并将结果再压入栈屮,最后栈屮唯一的数据即为所求结果。建立SeqStack.h,Stack.h,Calculator.h,SeqStack.cpp,Calculator.cpp,CalculatorMain.cpp,Stack.cpp,七个文件。[详细设计]1•类图结构classClassModelT:classSeqStackfMax:int

2、fTop:intS:T*♦Clear():voidIsErrptyO:bool{query}+IsFullf):bool{query}+Pop():bool+Push(T):bool♦SeqStack(int)♦^SeqStackO♦Top(T&):bool{query}«friend»♦operator«(ostream&.SeqStack&):ostream&-operator»(istream&,SeqStack&):istream&fMax:intfTop:intCalculator+Calculator(int)+DoOp

3、erator(char):void+GetOperand(double&,double&):bool+PushOperand(doublG):void+Run():voidVT:classStack130501203513电子二班马璐瑶+Clear():void+IsErrptyO:bool{query}+IsFullf):bool{query}+Pop():bool+Push(T):bool+Top(T&):bool{query)2.核心代码(1)屮缀表达式转后缀表达式思路:从左向右扫描直到遇到“#”,遇数输出,遇符号入栈,确保入栈的符号的优

4、先级大于栈内符号优先级;遇“)”连续退符号肓至“(”;最后输出栈内所有剩余操作符。(2)后缀衣达式计算思路思路:遇数入栈,遇符号从栈中退出两个数据进行运算,并将结呆压入栈中,最后栈中唯一的数据即为结果,切记要将最终结果输出seq.Top(x);cout«x;具体代码(Run方法):voidCalculator::Run(){charch;doublex;while(cin»ch,ch!='#'){switch(ch){case"1:case1-1:case1*':case/:DoOperator(ch);break;default:cin.pu

5、tback(ch);cin»x;PushOperand(x);}}seq.Top(x);cout«"结果是:H«x«endl;}[程序代码]1・Calculator.h#ifndefCAL_H#defineCAL_H#include"SeqStack.h"classCalculatorpublic:Calculator(intsize);voidRun();voidPushOperand(doublex);voidDoOperatorfcharch);boolGetOperand(double&xl,double&x2);protected:p

6、rivate:SeqStackseq;};2.Stack.h#ifndefStack_h_#defineStack_h_templateclassStack{public:virtualboollsFull()const=0;virtualboolIsEmptyOconst=O;virtualboolPush仃x)=0;virtualboolPop()=0;virtualboolTop(T&x)const=O;virtualvoidClear()=0;protected:private:};#end讦3.SeqS

7、tack.h#if>defined(EAA1D9FD77F4E644clB98847CD75FBCB1AINCLUDED)#defineEA_AlD9FD77_F4E6_44cl_B988_47CD75FBCBlA_INCLUDED_#include"Stack.h"ttincludetemplateclassSeqStack:publicStack{private:intfMax;intfTop;T*s;public:SeqStackfintmax);virtual~SeqStack();virt

8、ualboolPush仃x);virtualboolPop();virtualboolTop(T&x)const;virtualvoidClear()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。