简单计算器可视化程序编程

上传人:第*** 文档编号:33579470 上传时间:2018-02-15 格式:DOC 页数:27 大小:336KB
返回 下载 相关 举报
简单计算器可视化程序编程_第1页
第1页 / 共27页
简单计算器可视化程序编程_第2页
第2页 / 共27页
简单计算器可视化程序编程_第3页
第3页 / 共27页
简单计算器可视化程序编程_第4页
第4页 / 共27页
简单计算器可视化程序编程_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《简单计算器可视化程序编程》由会员分享,可在线阅读,更多相关《简单计算器可视化程序编程(27页珍藏版)》请在金锄头文库上搜索。

1、简单计算器一、基本功能描述二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行以角度、弧度两种方式实现上述部分函数具备历史计算的记忆功能对不正确的表达式能指出其错误原因二、 流程图NNY键入一个数是否为正数?m_num =10*m_num+im_num =10*m_num-i是否为小数?用 UpdateData(FALSE)刷新显示还原 m_num根据小数点后位数将键入的数除以 n 次 10 累加到m_numYN继续键入数字?Y输入数据子函数编辑框关联变量m_num=0图 1 输入数据子函

2、数流程图图 2 三、 设计步骤打开 Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择 MFC AppWizardexe工程,输入工程名 Calculter及其所在位置,点击确定,如图 3所示。 图 3 新建 MFC AppWizardexe工程将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完成,如图 4 所示。图 4 基本对话框这样,MFC AppWizard 就建立了一个基于对话窗口的程序框架,如图 5 所示。图 5 新建的对话框四、 界面设计1、创建控件在图 5 所示的 Resoure View 选项卡中打开 Dialog 资

3、源组,双击 IDD_CALCULATOR_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图 5 中 Controls 的“ 编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出 Edit 属性对话框,如图 6 所示,在该对话框中输入 ID 属性。 图 6 Edit 属性对话框2)在图 3 中 Controls 的“Button”按钮上单击鼠标左键,在对话框上的合适的位置

4、上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出 Push Button 属性对话框,如图 7 所示,在该对话框中输入控件的 ID 值和标题属性。图 7 Push Button 属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。表 1 各按钮和编辑框等对象的属性对象 ID 标题或说明编辑框 IDC_DC_EDIT_INPUT 结果显示按钮 IDC_BUTTON1 1按钮 IDC_BUTTON2 2按钮 IDC_BUTTON3 3按钮 IDC_BUTTON4 4按钮 IDC_BUTTON5 5按钮 IDC_BUTTON6

5、 6按钮 IDC_BUTTON7 7按钮 IDC_BUTTON8 8按钮 IDC_BUTTON9 9按钮 IDC_BUTTON10 0按钮 IDC_BUTTON11 .按钮 IDC_BUTTON12 空格按钮 IDC_BUTTON23 -按钮 IDC_BUTTON26 *按钮 IDC_BUTTON27 /按钮 IDC_BUTTON38 sqrt按钮 IDC_BUTTON30 %按钮 IDC_BUTTON25 按钮 IDC_BUTTON31 sin按钮 IDC_BUTTON32 cos按钮 IDC_BUTTON33 tan按钮 IDC_BUTTON34 cot按钮 IDC_BUTTON40 si

6、n1按钮 IDC_BUTTON41 cos1按钮 IDC_BUTTON35 log按钮 IDC_BUTTON36 ln按钮 IDC_BUTTON14 a按钮 IDC_BUTTON15 b按钮 IDC_BUTTON16 c按钮 IDC_BUTTON17 d按钮 IDC_BUTTON18 e按钮 IDC_BUTTON19 f按钮 IDC_BUTTON13 退格按钮 IDC_BUTTON37 e按钮 IDC_BUTTON22 清空按钮 IDOK 计算按钮 IDC_RADIO_DEGREE 角度按钮 IDC_RADIO_RADIAN 弧度按钮 IDC_STATIC 计算结果按钮 IDC_BTN_HIS

7、TREXP 历史表达式按钮 IDCANCEL 退出按钮 IDC_BTN_CONVERT 进制完成后界面如图 8所示。图 8 计算器界面五、计算器源程序代码/ Calculation.cpp: implementation of the CCalculation class./ Made by Gamsn in 10.26.2005/#include stdafx.h#include Calculator.h#include Calculation.h#include math.h#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;

8、#define new DEBUG_NEW#endif#define FUNCNUM 15 /函数个数#define CONSTNUM 11 /常数个数#define E 2.7182818284590452353#define PI 3.1415926535897932384/ Construction/Destruction/CCalculation:CCalculation()/初始化函数和常数m_bDegree=0;m_nOutputFlag=0;opt0=e;opt1=ch;opt2=sqr;opt3=sh;opt4=log;opt5=cos;opt6=sin;opt7=tan;op

9、t8=ln;opt9=abs;opt10=at;opt11=as;opt12=ac;opt13=th;opt14=cot;opt20=;opt21=/;opt22=*;opt23=%;opt24=+;opt25=-;m_strConValue0=3.1415926535897932384; m_strConName0=PI;m_strConValue1=9.80665; m_strConName1=GG;m_strConValue2=(8.988*109); m_strConName2=EF;m_strConValue3=0.02241383; m_strConName3=VM;m_strCo

10、nValue4=(1.380662*10(-23); m_strConName4=BC;m_strConValue5=8.3144; m_strConName5=MG;m_strConValue6=(6.6720*10(-11); m_strConName6=GR;m_strConValue7=(6.022045*1023); m_strConName7=NA;m_strConValue8=(2.99792458*108); m_strConName8=LS;m_strConValue9=(8.854187818*10(-12); m_strConName9=DC;m_strConValue1

11、0=2.7182818284590452353;m_strConName10=E;CCalculation:CCalculation()bool CCalculation:IsDigital(CString str)while(str.GetAt(0)=-) str.Delete(0);for(int i=0;i=0 else if(decimal16)for(int i=str.GetLength();i=0 if(strExp.GetAt(i)=()pos=i;return pos;void CCalculation:DelBracket(CString *strExp)int pos=L

12、ocateLBra(*strExp);int i,len=strExp-GetLength();if(pos=-1) *strExp=ERROR_无效表达式_;return;for(i=pos;iGetAt(i)=) break;CString str;str=strExp-Mid(pos+1,i-pos-1);MultiE(strExp-Delete(pos,i-pos+1);strExp-Insert(pos,str);void CCalculation:MultiE(CString *strExp)if(strExp-IsEmpty() *strExp=ERROR_函数表达式为空 _;i

13、f(IsDigital(*strExp) return;while(1)/*处理所有的一元运算*/for(int i=0;iFind(opti);if(pos!=-1)CString str=strExp-Right(strExp-GetLength()-pos-opti.GetLength();double dx=StoN(str);if(m_strTmp=str) *strExp=ERROR+str+_无法识别的函数_;return;strExp-Delete(pos,strExp-GetLength()-pos);*strExp+=SingleE(opti,dx)+m_strTmp;Mi

14、nusMinus(strExp);if(pos=1)char ch=strExp-GetAt(pos-1);if(ch=48 & chFind();if(pos=-1) break;else Calcu(strExp,pos);while(1)pos=strExp-Find(/);if(pos=-1) break;else Calcu(strExp,pos);while(1)pos=strExp-Find(*);if(pos=-1) break;else Calcu(strExp,pos);while(1)pos=strExp-Find(%);if(pos=-1) break;else Calcu(strExp,pos);pos=0;if(strExp-GetAt(0)=- |strExp-GetAt(0)=+) strExp-Insert(0,0);while(1)int tmpos=strExp-Right(strExp-GetLength()-pos).Find(-);if(tmpos=-1) break;else pos+=tmpos;if(pos=0 & strExp-GetAt(pos+1)=- |

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号