calculator设计文档

calculator设计文档

ID:8455641

大小:578.00 KB

页数:13页

时间:2018-03-28

calculator设计文档_第1页
calculator设计文档_第2页
calculator设计文档_第3页
calculator设计文档_第4页
calculator设计文档_第5页
资源描述:

《calculator设计文档》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一、整体设计【View层】:负责接收用户输入、将用户的输入序列传给controller层,然后等待controller返回要回显的东西(可以是正在输入的一串数字,也可以是中间结果)。【Controller层】:负责接收view传来的输入(字符序列),并根据序列特征进行解析(是否根据优先级计算某部分中间结果,是否是异常的不该回显的符号等),如果要计算中间结果就交给module层计算并等待其返回,最后将要回显的字符序列回传给view。【Module层】:负责接收来自controller的计算任务,进行各种一次运算

2、(加、减、乘、除、单目运算等),将计算结果迅速返回给controller(如果是不可能的计算任务,比如div0,得返回特定的错误符号)。用户输入Module(专职计算)Controller(解析序列)View接收输入的单个符号回传需要显示的东西接收计算任务回传计算结果(必要时是错误符号)二、接口设计1、ControllerclassCalculatorControl{public:CalculatorControl(ICalculatorModel*pCalculatorModel);~CalculatorC

3、ontrol(void);//接收用户指令stringReceiveCommand(COMMANDstCommand);//设置计算器的模式voidSetCalculatorForm(CALCULATOR_FORMemStatus);//获取计算器的模式CALCULATOR_FORMGetCalculatorForm(void);//获取用于View显示的数据stringGetStringToDisplay(void);protected://初始化voidInitControl();//获取数字按键对应的s

4、tringstringGetOperatorNumber(OPERATOR_SETemOperator);//获取操作符的优先级intGetOperatorPriority(OPERATOR_SETemOperator);//处理不同的指令voidDisposeCommand(COMMANDstCommand);//检测操作符栈中是否存在指定符号boolCheckOperatorInStack(OPERATOR_SETemOperator);CALC_RESULT_STATUSDoBinOperate(str

5、ing&strErrMsg);CALC_RESULT_STATUSDoUnaryOperate(string&strErrMsg);voidPushToOperatorStack(OPERATOR_SETemOperator);voidPushToOperandStack(stringstrOperand);CALC_RESULT_STATUSProcBinOperator(OPERATOR_SETemBinOp);CALC_RESULT_STATUSProcUnrayOperator(OPERATOR_SE

6、TemUnrayOp);voidProcLeftBracket(void);CALC_RESULT_STATUSProcRightBracket(void);private://操作数栈vectorm_vectorOperandStack;//操作符栈vectorm_vectorOperatorStack;//记录上次操作:,操作数栈;,操作符栈;,尚未入栈的操作数CONTROL_STATUSm_emControlStatus;//记录最后一次运算的右操作数stri

7、ngm_strLastRightOperand;//记录最后一次运算的操作符OPERATOR_SETm_emLastOperator;//尚未入栈的操作数stringm_strInputOperand;//尚未入栈操作数的状态INPUT_STATUSm_emInputStatus;//计算器的模式:,标准模式;,科学模式CALCULATOR_FORMm_emCalculatorStatus;//数字按键与string对照表OperatorNumberMapm_mapOperatorNumberMap;//用于

8、View显示的数据stringStringToDisplay;//底层运算接口ICalculatorModel*m_pCalculatorModel;};2、Model接收计算任务并回传计算结果enumCALC_RESULT_STATUS{CALC_RESULT_NORMAL=0,CALC_RESULT_ERROR,CALC_RESULT_UNUSUAL};classICalculatorModel

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

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

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