基于MFC的简易计算器课程设计.doc_第1页
基于MFC的简易计算器课程设计.doc_第2页
基于MFC的简易计算器课程设计.doc_第3页
基于MFC的简易计算器课程设计.doc_第4页
基于MFC的简易计算器课程设计.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MFC的简易计算器课程设计一、 摘要: 这次课程设计的主要目的是运用MFC设计一个简易计算器 ,此简易计算器的功能: 用户可以在输入功能框中输入任何合法、非法的运算四则运算表达式,还可以作x的y次方运算、立方运算、开二次方运算、log运算和倒数运算如果是合法表达式,计算器自动计算并显示结果,如果非法显示出错信息。二、 设计团队: Cary(班级:通信052,学号:200500402088) 李子琨(班级:通信052,学号:200500402068)三、 设计分工: 李子琨:主要任务是使用MFC制作主程序界面,添加按钮控件并关联变量,手动添加按钮消息映射 郑 特:编写函数的实现代码四、 简易计算器实现功能: 可以实现:两个数的加、减、乘、除、x的y次方;一个数的立方、开二次方根、倒数、LOG值计算等。五、 设计步骤(函数实现):1、void cal( )函数实现:(1)、cal( )函数说明: 此函数按照定义的变量“OperationState”进行计算,流程如下:(2)、代码实现如下:void CCalculatorDlg:cal( ) /按OperationState进行计算switch(OperationState)case 1:if(number2=0)MessageBox(请注意,除数不能为零!,温馨提示:); elsem_number=(double)number1/number2; NumberState=1;UpdateData(FALSE);number1=m_number; break;case 2: m_number=number1*number2;NumberState=1;UpdateData(FALSE);number1=m_number; break;case 3:m_number=number1+number2;NumberState=1;UpdateData(FALSE);number1=m_number; break;case 4: m_number=number1-number2;NumberState=1;UpdateData(FALSE);number1=m_number; break;case 5:m_number=pow(number1,number2);NumberState=1;UpdateData(FALSE);number1=m_number; break;OperationState=0;1、 数字按钮处理的成员函数实现:代码实现如下:void CCalculatorDlg:OnNumberKey(UINT nID) /监视输入,独立输入变为实际的数据int n=0;switch(nID)case IDC_NUMBER1:n=1;break;case IDC_NUMBER2:n=2;break;case IDC_NUMBER3:n=3;break;case IDC_NUMBER4:n=4;break;case IDC_NUMBER5:n=5;break;case IDC_NUMBER6:n=6;break;case IDC_NUMBER7:n=7;break;case IDC_NUMBER8:n=8;break;case IDC_NUMBER9:n=9;break;case IDC_NUMBER10:n=0;break;if (NumberState=1) if(point_1=1)m_number=m_number+n*pow(0.1,point_1); point_1+; number1=m_number; UpdateData(FALSE);else m_number=m_number*10+n;number1=m_number;UpdateData(FALSE);else if(point=1) m_number=m_number+pow(0.1,point_1); point_1+; number2=m_number; UpdateData(FALSE); else m_number=m_number*10+n; number2=m_number; UpdateData(FALSE); 2、 操作按钮功能的成员函数实现:void CCalculatorDlg:OnOperationKey(UINT nID) /对于非一般四则运算分别匹配运算规则 switch(nID) case IDC_NUMBER11: m_number=-m_number; if(NumberState=1) number1=m_number; else number2=m_number; UpdateData(FALSE);break; case IDC_NUMBER12: m_number=(int)m_number/10; if(NumberState=1) number1=m_number; else number2=m_number; UpdateData(FALSE); break; case IDC_NUMBER13: OperationState=1;m_number=0;UpdateData(FALSE);NumberState=2;break; case IDC_NUMBER14: OperationState=2;m_number=0;UpdateData(FALSE);NumberState=2;break; case IDC_NUMBER15: OperationState=3;m_number=0;UpdateData(FALSE);NumberState=2;break; case IDC_NUMBER16: OperationState=4;m_number=0;UpdateData(FALSE);NumberState=2;break; case IDC_NUMBER17: number1=number2=m_number=0;UpdateData(FALSE);NumberState=1;break; case IDC_NUMBER18: if(number10) MessageBox(请注意,被开方数不能小于零!,温馨提示:); else number1=m_number=sqrt(number1);UpdateData(FALSE);break; case IDC_NUMBER19: number1=m_number=(double)1/number1;UpdateData(FALSE);break; case IDC_NUMBER20: cal(); break; case IDC_NUMBER21: number1=m_number=number1*number1*number1;UpdateData(FALSE);break; case IDC_NUMBER22: OperationState=5;m_number=0;UpdateData(FALSE);NumberState=2;break; case IDC_NUMBER23: if(number10) MessageBox(请注意,计算不能为负!,温馨提示:); else number1=m_number=log10(number1);UpdateData(FALSE); break; case IDC_NUMBER24: /point_1=1; break; 六、 编译、运行运行后程序主界面:七、 心得、体会通过这次软件工程课

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论