欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    MFC课程设计报告模拟计算器.doc

    • 资源ID:21384       资源大小:86.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MFC课程设计报告模拟计算器.doc

    计 算 机MFC课程设计报告模拟计算器摘要摘要容:以课本简单计算器为根底,首先实现了加、减、乘、除、求倒数和平方根的混合运算,并能进展清屏及倒退操作,然后自行完善了书中未能实现的乘、除运算的连续操作,最后自行设计并完成了lg、ln 、sin、cos、.、pi、e 八个按钮控件的消息映射及程序代码的添加和修改。从中学会了制作简单的基于对话框的小工具、掌握了常用控件的使用、明白了消息映射及消息处理、提高了VC+编程水平。关键词:四则运算 小数点 计算器Analog calculatorAbstractContent of abstract: Simple calculator in te*tbooks as the foundation, first realized the addition, subtraction, multiplication, division, and reciprocal and square root of the mi*ed operation, and can clear screen and reverse operation, and then to improve the book failed to realize the multiplication, division operation of continuous operation, and finally to be designed and pleted the eight button control news mapping and program code to add and modify. Learnt how to make simple dialog-based small tools, mastered the use of monly used controls, see news mapping and information processing, improve the level of programming. Key word: arithmeticDecimal point Calculator本计算器是基于VC+的MFC编程,可完成大多数简单操作,其运行后界面如以下图:以课本简单计算器为根底,首先实现了加、减、乘、除、求倒数和平方根的混合运算,并能进展清屏及倒退操作,然后自行完善了书中未能实现的乘、除运算的连续操作,最后自行设计并完成了lg、ln 、sin、cos、.、pi、e 八个按钮控件的消息映射及程序代码的添加和修改。完整的操作步骤:1、创立MFC应用程序框架。使用MFC AppWizard【e*e】向导生成一个基于对话框的应用程序 Calculator。2、编辑对话框。按图添加前21个控件,其中1个为编辑框,20个为按钮,控件ID及Caption设置如下:IDC_EDIT_PUTOUT IDC_NUMBER1 1IDC_NUMBER2 2 IDC_NUMBER3 3IDC_NUMBER4 4IDC_NUMBER5 5IDC_NUMBER6 6 IDC_NUMBER7 7IDC_NUMBER8 8IDC_NUMBER9 9IDC_NUMBER0 0IDC_ADD +IDC_SUBTRACT -IDC_MULTIPLY *IDC_DIVIDE /IDC_RESULT =IDC_MINUS +/-IDC_BACK Back IDC_CLEAR ClearIDC_SQRT Sqrt IDC_RECIPROCAL 1/* IDC_LG lg IDC_LN ln IDC_SIN sin IDC_COS cos IDC_CHENGFANG IDC_POINT . IDC_PI pi IDC_CHAOYUESHU e3、 添加成员变量。为编辑框在CCalculatorDlg对话框类中添加double型成员变量m_result,再为CCalculatorDlg类添加:int m_OperationCount 存放加减乘除等运算符的顺序号、 int m_NumberCount 存放操作数的顺序号、 double m_number15存放操作数 、 double m_Operation15 存放操作符、 bool flag 判断整数和小数、 double p小数退位。4、 添加消息映射及成员函数1、在CalculatorDlg.h头文件中声明消息映射函数。af*_msg void OnNumberKey(UINT nID); /响应数字按钮的单击操作af*_msg void OnOperationKey(UINT nID); /响应操作符按钮的单击操作2、在CalculatorDlg.cpp实现文件消息映射表中参加ON_MAND_RANGE命令消息ON_MAND_RANGE(IDC_NUMBER1,IDC_NUMBER0,OnNumberKey)ON_MAND_RANGE(IDC_ADD,IDC_CHAOYUESHU,OnOperationKey) /有新增功能时命令消息中参数记得修改3、在CalculatorDlg.cpp实现文件中参加消息处理函数。void CCaculatorDlg: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_NUMBER0:n=0;break;if(flag=true)/判断是否为小数p*=0.1;m_numberm_NumberCount=m_numberm_NumberCount+n*p;elsem_numberm_NumberCount=m_numberm_NumberCount*10+n;flag=false;m_result=m_numberm_NumberCount;UpdateData(false); /功能加强,不仅可输入整数,还可输入小数,使运算围大大扩增void CCaculatorDlg:OnOperationKey (UINT nID)int i;switch(nID)case IDC_ADD:m_Operationm_OperationCount=1;break;case IDC_SUBTRACT:m_Operationm_OperationCount=2;break;case IDC_MULTIPLY:m_Operationm_OperationCount=3;break;case IDC_DIVIDE:m_Operationm_OperationCount=4;break;case IDC_RESULT:cal();break;case IDC_MINUS:m_numberm_NumberCount=-m_numberm_NumberCount;break;case IDC_BACK:if(flag=false)m_numberm_NumberCount=(int)m_numberm_NumberCount/10;m_result=m_numberm_NumberCount;elsem_numberm_NumberCount=m_numberm_NumberCount/p;m_numberm_NumberCount=(int)m_numberm_NumberCount/10;m_numberm_NumberCount=m_numberm_NumberCount*10*p;m_result=m_numberm_NumberCount;/增加小数之后Back操作有所改变UpdateData(false);break;case IDC_CLEAR:for(i=1;i<11;i+)m_numberi=0;m_Operationi=999;m_NumberCount=1;m_OperationCount=1;flag=false;p=1; /增加小数之后Clear操作有所改变m_result=0;UpdateData(false);break;case IDC_SQRT:m_numberm_NumberCount=sqrt(m_numberm_NumberCount);break;case IDC_RECIPROCAL:m_numberm_NumberCount=(double)1/m_numberm_NumberCount;break;case IDC_LG:m_numberm_NumberCount=log10(m_numberm_NumberCount);break;case IDC_LN:m_numberm_NumberCount=log(m_numberm_NumberCount);break;case IDC_SIN:m_numberm_NumberCount=sin(m_numberm_NumberCount);break;case IDC_COS:m_numberm_NumberCount=cos(m_numberm_NumberCount);break;case IDC_CHENGFANG:m_Operationm_OperationCount=5;break;case IDC_POINT:flag=true;break;case IDC_PI:m_result=m_numberm_NumberCount=acos(-1);UpdateData(false);break;case IDC_CHAOYUESHU:m_result=m_numberm_NumberCount=e*p(1);UpdateData(false);break;/新增功能,使运算更完善if(m_Operationm_OperationCount<6)m_NumberCount+;m_OperationCount+;flag=false;p=1;/照应小数点和乘方的功能4、在CalculatorDlg对话框中添加void型成员函数cal(),并在CalculatorDlg.cpp实现文件前加上包含语句 *include <math.h>。void CCaculatorDlg:cal()m_result=m_number1;for(int i=1;i<15;i+)switch(m_Operationi)case 1:m_result=m_result+m_numberi+1;break;case 2:m_result=m_result-m_numberi+1;break;case 3:m_result=m_result*m_numberi+1;break;case 4:m_result=(double)m_result/m_numberi+1;break;case 5:m_result=pow(m_result,m_numberi+1);break; /新增的处理乘方运算UpdateData(false);5、成员变量初始化CCaculatorDlg:CCaculatorDlg(CWnd* pParent /*=NULL*/): CDialog(CCaculatorDlg:IDD, pParent)m_hIcon = Af*GetApp()->LoadIcon(IDR_MAINFRAME);m_NumberCount=1;m_OperationCount=1;flag=false;p=1; /为自己新添的成员变量初始化for(int i=0;i<15;i+)m_numberi=0;m_Operationi=999;结论: 看起来虽然简单,不过自己做起来还是挺难的。首先一定要细心,例如在CCalculator.cpp消息映射表中的命令消息ON_MAND_RANGE(IDC_ADD,IDC_CHAOYUESHU,OnOperationKey)前2个参数的ID号不可出错。其中最难的新增功能实现是小数点,为实现小数点功能,增加了2个成员变量flag和p,然后在初始化时不要忘记新增变量的初始化,以及OnNumberKey(UINT nID)函数和Back按钮实现中有整数及小数之分等。圆周率pi和超越数e的值,采用库存函数 acosdouble和e*pdouble实现而非自己定义,与三角函数和自然对数相对应,保证运算准确性。做完此次MFC大作业,我从中学会了制作简单的基于对话框的小工具、掌握了常用控件的使用、明白了消息映射及消息处理、提高了VC+编程水平。参考文献:Visual C+程序设计与应用教程 马石安等 编附录:输入小数1.23 显示如以下图:计算 lg5= 结果显示如图:点击圆周率 pi 编辑框显示如图:点击超越数 e 编辑框显示如图:

    注意事项

    本文(MFC课程设计报告模拟计算器.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开