mfc实现简单计算器

mfc实现简单计算器

ID:22683512

大小:70.08 KB

页数:13页

时间:2018-10-30

mfc实现简单计算器_第1页
mfc实现简单计算器_第2页
mfc实现简单计算器_第3页
mfc实现简单计算器_第4页
mfc实现简单计算器_第5页
资源描述:

《mfc实现简单计算器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《高级语言程序设计》课程作业报告MFC实现简易计算器姓名柳超学号2012077501专业计算机科学与技术指导老师蒋年德2013年01月12日12《高级语言程序设计》课程作业报告设计题目设计一个基于对话框的简单计算器,实现整数、小数的加减乘除四则运算以及开方、阶乘、取对数等操作。一、运行环境硬件:HaierA60Notebook,CeleronM1.86GHz512MB250GB软件:Windowsxpprofessional5.1,visualC++6.0二、算法设计的思想打开计算器程序,输入数据,开始时编辑框成员

2、变量m_num初始化为零。按下数字按钮后,根据bool型变量b_zf判断m_num的正负号,对其进行相关处理,然后在判断是否有小数点,处理后输出结果。同时根据judge的大小,判断是单目运算还是双目运算,进入不同的处理程序,最终输出结果。若按下双目运算符,则把m_num存入num2,按下输入第二个操作数并算出结果。若按下的是单目运算符,则直接对其处理得出结果。若按下清零,则m_num等于0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。算出后把结果保存至num2。若需用算出的结果继续

3、运算则回到输入完第一个操作数后,若不需要则判断试否需要开始新一轮的运算,不需要则结束。12《高级语言程序设计》课程作业报告一、流程图NYNNYM_num=0,键入一个数是否为正数?m_num=10*m_num+im_num=10*m_num-i是否为小数?用UpdateData(FALSE)刷新显示还原m_num根据小数点后位数将键入的数除以n次10累加到m_numYN继续键入数字?单目运算双目运算进入对应单目运算程序员Num2=m_num输入数据,给m_num计算结果并显示继续输入运算开始结束Y12《高级语言程序设计

4、》课程作业报告一、算法分析设计在visualC++6.0中新建一个MFCAPPWizard[exe]工程文件,文件名为CALU,应用程序类型选为基本对话,完成后,在Dialog中画出计算器的基本控件,包括0~10个数字按钮,符号转换按钮“+/-”,小数点符号“.”,加、减、乘、除四个双目运算符按钮,开方“sqrt”,阶乘“n!”,取对数“ln”等三个单目运算符按钮,计算并显示运算结果的等于号“=”按钮,以及用于退回的“backspace”按钮,清除“clear”按钮和退出“exit”按钮,一个编辑框,用于显示运算值。最

5、后给每个控件定义ID号和标题。定义七个变量:boolb_point;//判断是否有小数点,true无小数点false有小数点;boolb_zf;//判断是正数还是负数,true正false负inti;intjudge;//判断运算类型,单目运算或双目运算,在不同的双目运算符中给judge赋不同的值,然后在等号中用switch语句来匹配judge值来判断需要执行何种双目运算。intn_point;//判断小数点后的位数doublenum1;//中间变量doublenum2;//用于双目运算中存储其中一个运算值最后为编辑框

6、定义一个double型的成员变量m_num,用于在显示框中显示。依次双击每个按钮,为所有按钮添加单击按钮事件。操作数的输入:开始时m_num=0,每按下一个数字键按钮,就把它累加到m_num里并刷新显示。BOOL型变量b_point来判断是否有小数点和一个整型数n_point来表示小数点后的数据的位数。当b_point=TRUE时,表示有小数点,否则则表示无小数点。按下小数点按钮后执行b_point=TRUE。当按下一个数字键时,首先根据b_point判断是否按下小数点,若有则把小数点后数的位数加1,n_point则为

7、此次键入的数所处的位数,将键入的数除以n_point个10然后累加到编辑框所关联的变量m_num上,若没有则把m_num乘以10,然后累加到编辑框所关联的变量m_num上。具体操作代码:按钮1:1~9代相同,在此只列举按钮1的操作过程。voidCCALUDlg::OnButton1(){if(judge==0)num2=0;12《高级语言程序设计》课程作业报告if(b_zf==TRUE)m_num=m_num*10+1;//单击数字键1后把数据传送到输出框中elsem_num=m_num*10-1;if(b_point

8、==TRUE)//当前是否有小数点,如果有{num1=1;n_point=n_point++;for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。