c++面向对象程序设计MFC简单计算器试验报告.docx

上传人:h**** 文档编号:25614173 上传时间:2022-07-12 格式:DOCX 页数:6 大小:12.89KB
返回 下载 相关 举报
c++面向对象程序设计MFC简单计算器试验报告.docx_第1页
第1页 / 共6页
c++面向对象程序设计MFC简单计算器试验报告.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《c++面向对象程序设计MFC简单计算器试验报告.docx》由会员分享,可在线阅读,更多相关《c++面向对象程序设计MFC简单计算器试验报告.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、c+面向对象程序设计MFC简单计算器试验报告 计算机与信息工程学院 程序设计基础课程设计报告 题目名称: 60.编写一个能实现简单功能的计算器 学生姓名:刘沛东 学生学号: 专业班级:电子信息工程(1)班 指导教师:高攀 1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 屏幕、图形颜色、形状自定4. 3 总体设计 3.1 总体框架 开始 键入第一个按钮 键入第二个按 结

2、系统框架1 图 3.2 系统功能说明在VC+6.0中绘制计算器界面,各控件的设置ID09对控件设定相应的和其他属性:“1”控件设置2 图 -+对“、ID”控件设定相应的和其他属性:*、“图 2 +” 控件设置和其他属性:对其它控件设定相应的ID其它控件设置3 图使界面更加整洁。Align菜单中的Layout主要使用到功能对各个按钮进行对其,控件用于处理鼠标的ButtonEdit拖出的控件有上面的一个控件用于显示数字,消息。 4 程序详细设计系统主调模块4.1 图5 程序流程图4.2各模块详细设计 变量定义: double poz; /保存小数点的位置,初始化为1,表示poz-1个小数点。 do

3、uble m_Dis; /Edit控件上需要显示的数字 BOOL point_flag; /小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; /保存计算过程中的前一个数字, double numsecond;/保存计算过程中的第二个数字 char op;/记录当前的计算符号,可以为+,-,*,/,=,c,n 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0; 4.4.2 设计思路 a)首先考虑对所有按键分为两类,数字类和符号类,0,1,2,3,4,5,6,7,8,9为数字类,+,-,*,/

4、,=为符号类。数字在计算的过程中最多需要保存两个,所以定义了两个double型变量numfirst和numsecond来进行存储。符号需要一个char op来存储。 b)然后考虑在计算的过程中,numfirst和numsecond的存储状态有三种,一种是numfirst=0 & numsecond=0 也就是程序刚开始运行还没有开始录入数字的状态。二种是numfirst!=0 & numsecond=0 也就是第一个数字已经录入,符号也已经录入时候把m_Dis的值直接赋值给numfirst,第三种是numfirst!=0 &numsecond!=0,表示可以通过op来把两数合并为一个数。 c)

5、考虑到该计算器支持连续的计算,比如3.33+1.33*88/96= ?。所以必须在点符号Button也要计算出之前的结果,通过判断op,来计算,把两个数字合并为一个数字,方便下一次运算,功能近似于点=,所以把=也划分到符号类。 d)因为数字全部使用的是double,键入的数字必须通过一定的处理达到累加的效果,加来判断,分别出来小数和整数。point_flag上小数和整数的处理差异性大,所以分别用 4.2.3 成员函数及其释义 因为对OnNum0()到OnNum9()的处理函数差异仅在一个数字上,可以通过调用一个共同的函数 OnCal(double num)来简化源代码长度,增加模块性。void

6、 CCalcDlg:OnCal(double num) /分三种状态来处理if(numfirst!=0 & numsecond!=0) if(point_flag=TRUE) /判定为小数 poz*=0.1; /小数进位 m_Dis=m_Dis+poz*num;/递增 UpdateData(false); /把结果从内存传递到屏幕 else m_Dis=m_Dis*10+num; UpdateData(false); if(numfirst!=0 & numsecond=0) if(point_flag=TRUE) poz*=0.1; m_Dis=m_Dis+poz*num; UpdateData(false); else/判定为整数 m_Dis=m_Dis*10+num;/递增 UpdateData(false); if(numfirst=0 & numsecond=0) if(point_flag=TRUE) poz*=0.1; m_Dis=m_Dis+poz*num; UpdateData(false);

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

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁