Calculator设计文档.doc
《Calculator设计文档.doc》由会员分享,可在线阅读,更多相关《Calculator设计文档.doc(13页珍藏版)》请在沃文网上搜索。
1、一、整体设计【View层】:负责接收用户输入、将用户的输入序列传给controller层,然后等待controller返回要回显的东西(可以是正在输入的一串数字,也可以是中间结果)。【Controller层】:负责接收view传来的输入(字符序列),并根据序列特征进行解析(是否根据优先级计算某部分中间结果,是否是异常的不该回显的符号等),如果要计算中间结果就交给module层计算并等待其返回,最后将要回显的字符序列回传给view。【Module层】:负责接收来自controller的计算任务,进行各种一次运算(加、减、乘、除、单目运算等),将计算结果迅速返回给controller(如果是不可能
2、的计算任务,比如div 0,得返回特定的错误符号)。用户输入Module(专职计算)Controller(解析序列)View 接收输入的单个符号 回传需要显示的东西 接收计算任务 回传计算结果(必要时是错误符号) 二、接口设计1、Controllerclass CalculatorControlpublic:CalculatorControl(ICalculatorModel *pCalculatorModel);CalculatorControl(void);/接收用户指令string ReceiveCommand(COMMAND stCommand); /设置计算器的模式void SetC
3、alculatorForm(CALCULATOR_FORM emStatus); /获取计算器的模式CALCULATOR_FORM GetCalculatorForm(void); /获取用于View显示的数据string GetStringToDisplay(void);protected:/初始化void InitControl(); /获取数字按键对应的stringstring GetOperatorNumber(OPERATOR_SET emOperator); /获取操作符的优先级int GetOperatorPriority(OPERATOR_SET emOperator); /处
4、理不同的指令void DisposeCommand(COMMAND stCommand); /检测操作符栈中是否存在指定符号bool CheckOperatorInStack(OPERATOR_SET emOperator); CALC_RESULT_STATUS DoBinOperate(string &strErrMsg);CALC_RESULT_STATUS DoUnaryOperate(string &strErrMsg);void PushToOperatorStack(OPERATOR_SET emOperator);void PushToOperandStack(string s
5、trOperand);CALC_RESULT_STATUS ProcBinOperator(OPERATOR_SET emBinOp);CALC_RESULT_STATUS ProcUnrayOperator(OPERATOR_SET emUnrayOp);void ProcLeftBracket(void);CALC_RESULT_STATUS ProcRightBracket(void);private:/操作数栈vector m_vectorOperandStack; /操作符栈vector m_vectorOperatorStack; /记录上次操作:,操作数栈;,操作符栈;,尚未入栈
6、的操作数CONTROL_STATUS m_emControlStatus; /记录最后一次运算的右操作数string m_strLastRightOperand; /记录最后一次运算的操作符OPERATOR_SET m_emLastOperator; /尚未入栈的操作数string m_strInputOperand; /尚未入栈操作数的状态INPUT_STATUS m_emInputStatus; /计算器的模式:,标准模式;,科学模式CALCULATOR_FORM m_emCalculatorStatus; /数字按键与string对照表OperatorNumberMap m_mapOpe
7、ratorNumberMap; /用于View显示的数据string StringToDisplay; /底层运算接口ICalculatorModel *m_pCalculatorModel; ;2、Model接收计算任务并回传计算结果enum CALC_RESULT_STATUSCALC_RESULT_NORMAL = 0,CALC_RESULT_ERROR,CALC_RESULT_UNUSUAL;class ICalculatorModelpublic:virtual CALC_RESULT_STATUS CalculateData(const string &lhs, const str
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Calculator 设计 文档