



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC+计算器设计设计一个简单的计算器,能够实现浮点型数的加、减、乘、除、开方、倒数运算。运行界面如图所示。步骤如下:1、创建一个对话框应用程序MyCalculator;2、在“Project Workspace”窗口,选择“Resource View”标签,双击Dialog下的“IDD_MYCALCULATOR_DIALOG”,从“IDD_MYCALCULATOR_DIALOG”对话框删除“OK” 和“ Cancel”及“TODO文本” ,将对话框标题设置为“计算器”。3、编辑对话框资源。向对话框添加按钮(Button)控件,并设置属性见表。 计算器对话框对象属性对象控件ID Caption 对象控件ID Caption ButtonIDC_BUTTON00ButtonIDC_BUTTON_MUTIPLY*ButtonIDC_BUTTON11ButtonIDC_BUTTON_DIV/ButtonIDC_BUTTON_CLEARCButtonIDC_BUTTON99ButtonIDC_BUTTON_SQRTsqrtButtonIDC_BUTTON_POINT.ButtonIDC_BUTTON_RECI1/xButtonIDC_BUTTON_SIGN+/-ButtonIDC_BUTTON_EQUAL=ButtonIDC_BUTTON_ADD+Edit BoxIDC_DISPLAY(只读)EditButtonIDC_BUTTON_MINUS-ButtonIDC_BUTTON_JIECHENGn!ButtonIDC_BUTTON_FABSfabsButtonIDC_BUTTON_TANcosButtonIDC_BUTTON_SINsinButtonIDC_BUTTON_TANtanButtonIDC_BUTTON_LNLnButtonIDC_BUTTON_PIPi4、为对话框类添加成员变量1. double m_first;/存储一次运算的第一个操作数及一次运算的结果2. double m_second;/存储一次运算的第二个操作数3. CString m_operator;/存储运算符4. double m_coff;/存储小数点的系数权值5. CString m_display;/编辑框IDC_DISPLAY的关联变量,显示计算结果5、在对话框类的构造函数中,初始化成员变量CMyCalculatorDlg:CMyCalculatorDlg(CWnd* pParent /*=NULL*/): Dialog(CMyCalculatorDlg:IDD, pParent)m_display = _T(0.0);m_first = 0.0;m_second= 0.0;m_operator=_T(+);m_coff = 1.0;6、为对话框添加2个成员函数:void UpdateDisplay(double lVal)用于在编辑框中显示数据void CMyCalculator:Calculate()-用于计算void CMyCalculatorDlg:UpdateDisplay(double lVal) /在编辑框中显示数据m_display.Format(_T(%f),lVal); int i=m_display.GetLength();while(m_display.GetAt(i-1)=0) /格式化输出,将输出结果后的零截去 m_display.Delete(i-1,1); i-; UpdateData(false);/更新编辑框变量m_display void CMyCalculator:Calculate() /将前一次数据与当前数据进行运算,作为下次的第一操作数,并在编辑框显示。switch(m_operator.GetAt(0) case +: m_first+=m_second;break; case -: m_first-=m_second;break; case *: m_first*=m_second;break;case /: if(fabs(m_second)=0.000001) m_display=除数不能为0; UpdateData(false); return; m_first/=m_second;break;m_second=0.0;m_coff=1.0;m_operator=_T(+);UpdateDisplay(m_first);/更新编辑框显示内容7、为Button按钮的BN_CLICKED事件添加响应函数,并编写代码(1) 数字”N”的消息响应函数(N=0,1,9)void CMyCalculatorDlg:OnButtonN() if( m_coff = 1.0) m_second = m_second*10 + N;/作为整数输入数字时else m_second = m_second + N*m_coff; /作为小数输入数字 m_coff *= 0.1;UpdateDisplay(m_second);/更新编辑框的数字显示void CMyCalculatorDlg:OnButtonPi() m_first=3.14159265;UpdateDisplay(m_first);(2) 运算符按钮的消息响应函数: “+”按钮的消息处理函数void CMyCalculatorDlg:OnButtonAdd() /加、减、乘类似 Calculate(); m_operator=+; /减为“-”、乘为“*” void CMyCalculatorDlg:OnButtonMinus() /加、减、乘类似 Calculate(); m_operator=-; /减为“-”、乘为“*” void CMyCalculatorDlg:OnButtonMutiply() /加、减、乘类似 Calculate(); m_operator=*; /减为“-”、乘为“*” “/”按钮的消息处理函数void CMyCalculatorDlg:OnButtonDiv() Calculate(); m_operator.Format(%s,/);(3) ”1/x“按钮的消息响应函数void CMyCalculatorDlg:OnButtonReciprocal() /1/x按钮的消息处理函数if(fabs(m_second)0.000001 & fabs(m_first)0.000001) m_display = 除数不能为零; UpdateData(false); return; if( fabs(m_second)0.000001) m_first=1.0/m_first; UpdateDisplay(m_first); else m_second=1.0/m_second; UpdateDisplay(m_second);(4) “Sqrt”按钮的消息处理函数void CMyCalculatorDlg:OnButtonSqrt() if( m_second=0) m_first=sqrt(m_first); UpdateDisplay(m_first); else m_second=sqrt(m_second); UpdateDisplay(m_second);(5) “.”按钮的消息处理函数void CMyCalculatorDlg:OnButtonPoint() m_coff= 0.1 ;(6) “+/-”按钮的消息处理函数void CMyCalculatorDlg:OnButtonSign() m_second = -m_second;UpdateDisplay(m_second);(7) “=”按钮的消息处理函数void CMyCalculatorDlg:OnButtonEqual() Calculate(); (8) “C”按钮的消息处理函数void CMyCalculatorDlg:OnButtonClear() m_first=0.0;m_second=0.0;m_operator = +;m_coff = 1.0;UpdateDisplay(0.0);(9)“n!”按钮的消息处理函数void CMyCalculatorDlg:OnButtonJiecheng() if( m_second=0) int i; for(i=m_first-1;i!=0;i-) m_first=m_first*i; UpdateDisplay(m_first); else int i; for(i=m_second-1;i!=0;i-) m_second=m_second*i; UpdateDisplay(m_second);(10)“fabs”按钮的消息处理函数void CMyCalculatorDlg:OnButtonFabs() if( m_second=0) m_first=fabs(m_first); UpdateDisplay(m_first); else m_second=fabs(m_second); UpdateDisplay(m_second);(11) “sin”按钮的消息处理函数void CMyCalculatorDlg:OnButtonSin() if( m_second=0) m_first=sin(m_first); UpdateDisplay(m_first); else m_second=sin(m_second); UpdateDisplay(m_second); “cos”按钮的消息处理函数void CMyCalculatorDlg:OnButtonCos() if( m_second=0) m_first=cos(m_first); UpdateDisplay(m_first); else m_second=cos(m_second); UpdateDisplay(m_second);“tan”按钮的消息处理函数void CMyCalculatorDlg:OnButtonTan() if( m_second=0) m_first=tan(m_first); UpdateDisplay(m_first); else m_second=tan(m_second); UpdateDispl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年急诊科学科现场抢救操作流程实务考察模拟卷答案及解析
- 2025陕西省出境旅游合同
- 2025年儿科常见疾病诊疗技术模拟考试卷答案及解析
- 2024年西安存济医学中心招聘真题
- 2024年昆明市妇幼保健院人员招聘真题
- 2025年神经内科神经系统疾病临床诊断答案及解析
- 2025年全科医学基础理论与操作技能考核答案及解析
- 2025年营养与食品卫生安全检测技术考核答案及解析
- 2025年城市家居设计店面租赁合同
- 2025年妇科宫外孕的紧急处理模拟考试答案及解析
- 《烟草专卖法》知识学习考试题库200题(含答案)
- 员工派遣单模板
- 工作交接单(标准模版)
- dq加盟合同模板
- 规范信访基础业务培训
- 体育-初中水平四(七年级)篮球大单元教学计划表及运球急停急起教学设计、教案
- 固定源废气监测技术规范
- 石膏固定病人的护理措施
- 2024光热电站化盐操作标准
- 3.2 参与民主生活 课件-2024-2025学年统编版道德与法治九年级上册
- 参观河南省博物院
评论
0/150
提交评论