首页 VC MFC计算器课程设计

VC MFC计算器课程设计

举报
开通vip

VC MFC计算器课程设计Windows程序设计作业报告 设计题目:MFC计算器 系别:信息与自动化工程 专业:电子与通信工程  姓名:高小雨          学号:2013704011      一、设计目的及要求 1.1设计目的 能够熟练掌握MFC中的各个控件,消息的处理与添加,能够独立完成一些简单的算法,并且能够具体实现一些功能,真正可以利用功能比较强大的MFC编译出较好的程序代码。本设计完成的是一个具有比较齐全运算功能的计算器。 1.2设计要求 利用Microsoft Visual C++的MFC制作一个多功能计算器,要求...

VC  MFC计算器课程设计
Windows程序设计作业 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 设计题目:MFC计算器 系别:信息与自动化 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 专业:电子与通信工程  姓名:高小雨          学号:2013704011      一、设计目的及要求 1.1设计目的 能够熟练掌握MFC中的各个控件,消息的处理与添加,能够独立完成一些简单的算法,并且能够具体实现一些功能,真正可以利用功能比较强大的MFC编译出较好的程序代码。本设计完成的是一个具有比较齐全运算功能的计算器。 1.2设计要求 利用Microsoft Visual C++的MFC制作一个多功能计算器,要求: (1)能够实现最基本的加、减、乘、除四则基本运算; (2)添加了计算类型,分别是弧度制、度数制; (3)界面有正负、清空、等于方便用户计算使用; (4)重点是此计算器具有倒数、多次方、开方、三角函数、反三角函数、指数、阶乘等高级运算。 1.3软件、硬件环境 本程序采用Microsoft Visual C++6.0的英文版本进行编译。VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作性,加上支持 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 C/C++ 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。 二、课程设计步骤 2.1 Windows消息处理机制的理解 首先编写程序需要对Windows程序的消息处理机制有个比较清晰的了解。Windows的程序都是通过消息来传送数据,有不需要用户参与的系统消息,比如异常处理等。 2.2界面的设计 仿照Windows附件里面的计算器,在Dialog视图中画好界面,主要使用的菜单中的相关控件,并合理布置各个按钮的位置,使界面更加整洁。在各个控件的属性里依次定义好名称,之后屏幕显示的就是如图一样的可视计算器界面: 三、课程设计内容 3.1 概要设计 依次将各个功能按钮设置相关的ID和控件类,一下为各类按键的一个举例,以下为数字0的属性设置,及其ID和标题名称,其余数字键属性设置与其相似。 下图是清零键C的属性,及其ID和标题名称 下图为四则运算加、减、乘、除中“+”的ID和标题名称 下图是弧度按键的属性设置 下图为计算器中三角函数和反三角函数的属性设置 下图是做的一个简单的运算,结果如图中的显示,为double型。 3.1.1 程序总体框架描述 3.1.2程序常用类声明 按键0~9的ID设置 IDC_BUT0  IDC_BUT1  IDC_BUT2      IDC_BUT3      IDC_BUT4    IDC_BUT5  IDC_BUT6    IDC_BUT7          IDC_BUT8        IDC_BUT9 计算类型的ID设置 弧度:IDC_HUDU 角度:IDC_JIAODU 次方的ID设置 10^x:IDC_BUTTON_10X          x^y:IDC_XDEY  2^x:IDC_2DEX                x^2:IDC_BUTTON_SQRT 三角函数的ID设置 sin:IDC_SIN        cos:IDC_COS          tan:IDC_TAN    tanh:IDC_TANH      arctan:IDC_ARCTAN    arcos:IDC_ARCCOS      cosh:IDC_COSH      arcsin:IDC_ARCSIN    sinh:IDC_SINH 四则运算的ID设置 +:IDC_BUTTON_ADD        -: IDC_BUTTON_MINUS  *: IDC_BUTTON_MUTIPLY    /: IDC_BUTTON_DIV 清空、等于、正负号、exp、ln、Log、1/x的ID设置 C: IDC_BUTTON_CLEAR      =:IDC_BUTTON_EQUAL +/—: IDC_BUTTON_SIGN  exp: IDC_BUTTON_EXP      ln: IDC_LN              log: IDC_LOG            1/x: IDC_BUTTON_RECI 下图是基于基本对话框中的所有函数: 3.2 主要代码 计算器主要功能的实现,0—9 数字键的代码如下: //用于数字按钮的调用 1. void CCounterDlg::onButtonN(int n) 2. { 3.   if( m_coff == 1.0) 4.   m_second = m_second*10 + n;//作为整数输入数字时 5. else  6. { 7.     m_second = m_second + n*m_coff; //作为小数输入数字 8. 9. } 10.     UpdateDisplay(m_second);//更新编辑框的数字显示 11. } 12. //添加各个按钮的消息响应函数 13. void CCounterDlg::OnBut0() 14. { 15.     // TODO: Add your control notification handler code here 16.     onButtonN(0); 17. } 18. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 19. void CCounterDlg::OnBut9() 20. { 21.     // TODO: Add your control notification handler code here 22.     onButtonN(9); 23. } 24. //用于显示数据 25. void CCounterDlg::UpdateDisplay(double n) 26. { 27. m_display.Format(_T("%f"),n); //将double型转换成字符型 28. int i=m_display.GetLength(); 29. while(m_display.GetAt(i-1)=='0') //格式化输出,将输出结果后的零截去 30. {  m_display.Delete(i-1,1); i--; } 31. UpdateData(false);//更新编辑框变量m_display 32. } 33. //用于计算结果 34. void CCounterDlg::Calculate(void) 35. { 36. //将前一次数据与当前数据进行运算,作为下一次的第一操作数,并在编辑框显示 37.     switch(m_operator.GetAt(0)) 38. { 39. case '+': 40.     m_first+=m_second; 41.     break; 42. case '-': 43.     m_first-=m_second; 44.     break; 45. case '*': 46.     m_first*=m_second; 47.     break; 48. case '/': 49. if(fabs(m_second)<=0.000001) //求m_second的绝对值 如果为零时 50. { 51. m_display="除数设置有误"; 52. UpdateData(false); 53. return; 54. } 55. else 56. m_first/=m_second;break; 57. } 58. m_second=0.0; 59. m_coff=1.0; 60. m_operator=_T("+"); 61. UpdateDisplay(m_first);//更新编辑框显示内容 62. } 63. 64. void CCounterDlg::OnButtonAdd() 65. { 66.     // TODO: Add your control notification handler code here 67.     Calculate(); 68.     m_operator="+";  //-*与之相同 69. } 70. void CCounterDlg::OnButtonDiv() 71. { 72.     // TODO: Add your control notification handler code here 73.     Calculate(); 74.     m_operator.Format(_T("%s"),"/"); 75. } 76. //添加三角函数一个函数 77. void CCounterDlg::TrigFunction() 78. { 79.     switch(m_duType) 80.     { 81.     case 0: 82.         m_second=m_second;//弧度 83.         break; 84.     case 1: 85.         m_second=m_second*m_PI/180;//角度 86.         break; 87.         88.     } 89. } 90. void CCounterDlg::OnBnClickedHudu() 91. { 92.     // TODO: Add your control notification handler code here 93.     m_duType=0; //系统默认m_duType=0,计算器默认为弧度计算 94. } 95. 96. void CCounterDlg::OnBnClickedJiaodu() 97. { 98.     // TODO: Add your control notification handler code here 99.     m_duType=1; //主要是作为以后函数算法的判断标准 100. } 101. void CCounterDlg::OnSin() 102. { 103.     // TODO: Add your control notification handler code here 104.     TrigFunction(); 105.     m_second=sin(m_second); 106.     UpdateDisplay(m_second); 107. }  //其余的三角函数与之类似 108. //计算阶乘的代码 109. //添加函数 int jiecheng(int n)利用递归返回阶乘值 110. int CCounterDlg::jiecheng(int n) 111. {    112. if(n==0||n==1) 113. return 1; 114. else 115. if(n>1) 116. return n*jiecheng(n-1);//递归函数求阶乘f(n)=n*f(n-1) 117. } 118. //在n!的按钮消息处理里,如果输入的不是整数则不能进行阶乘运算
本文档为【VC MFC计算器课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:42KB
软件:Word
页数:0
分类:互联网
上传时间:2019-09-05
浏览量:11