网站大量收购闲置独家精品文档,联系QQ:2885784924

计算器 - 副本.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算器 - 副本

实验步骤 一、建立程序框架: 打开VC++6.0,选择文件-新建-filenew菜单命令,并在弹出的新建对话框中单击project标签。 选择MFC appwizard(exe),并在project name编辑框中输入calculator作为工程名称。单击OK按钮,出现step1对话框。 选择dialog based选项,使用程序基本对话框,单击Next按钮,然后按完成-确定即完成! 二、成员变量: 在calculatordlg.h头函数中加入: float m_operand; //存储当前输入的操作数 float m_accum; //存储当前计算处理结果 BOOL m_bCoff; //表示当前输入是否是小数 float m_coff; //小数输入是的系数 Operator m_operator; //型变量用以标识当前运算符 CalcError m_errorState; //型变量用以标识当前运算状态 BOOL m_bOperandAvail; //标识当前输入是否是新输入数字 Void Calculate(); //处理计算 Void UpdateDisplay(); //处理显示 enum Operator { OpNone, OpAdd, OpSubtract, OpMultiply, OpDivide }; enum CalcError { ErrNone, ErrDivideByZero }; 数字处理函数: void CCalculatorDlg::OnOperandInput(UINT nID)//数字输入消息处理 { ASSERT(nID = IDC_0 nID = IDC_9);//检验按钮ID值是否在处理范围中 start=false; if (m_errorState != ErrNone) return; if(m_func!=FuncNone)//如果是函数计算,则进行计算 { m_func=FuncNone;//将当前函数计算状态设为无 Calculate(); } if (!m_bOperandAvail)//是不是输入新的计算数,1-是|0-否 m_operand = 0; if(!m_bCoff) //是不是小数输入,1-是|0-否 { if(mode==2) { if(nID = IDC_1) m_operand=m_operand*mode+(nID-IDC_0); } else m_operand=m_operand*mode+(nID-IDC_0); } else { m_operand=m_operand+(nID-IDC_0)*m_coff; m_coff=(float)(m_coff*0.1); } m_bOperandAvail=TRUE; UpdateDisplay();//更新显示 } 运算符消息处理函数; void CCalculatorDlg::OnAdd() //加法 { Calculate(); m_operator = OpAdd; } void CCalculatorDlg::OnMinus() //减法 { Calculate(); m_operator = OpSubtract; } void CCalculatorDlg::OnDivid() //除法 { Calculate(); m_operator = OpDivide; } void CCalculatorDlg::OnMultiply()//乘法 { Calculate(); m_operator = OpMultiply; } void CCalculatorDlg::OnEqual() //等于 { Calculate(); m_operator = OpNone; } void CCalculatorDlg::OnSign() //相反数 { m_operand*=-1; UpdateDisplay(); } void CCalculatorDlg::OnSqrt() //开方 { m_func=FuncSqrt; Run_Func(); } void CCalculatorDlg::OnReciprocal() //倒数 { m_func=FuncRec; Run_Func(); } void CCalculatorDlg::OnPoint() //点 { m_bCoff=1; UpdateDisplay()

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档