欢迎来到天天文库
浏览记录
ID:57058314
大小:91.50 KB
页数:15页
时间:2020-07-30
《mfc计算器软件设计及开发报告课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Mfc计算器设计报告小组成员:尚嘉诚16013326翟浩16013322李明书16013308一、课题背景在VC环境下,利用微软的基础类库MFC,不仅可以开发出功能强大的Windows应用程序,还可以通过MFC的学习使大家了解和掌握面向对象程序设计的基本思想和方法,把握住计算机程序设计方法的发展和方向,为今后进一步提高计算机程序设计能力打下坚实的基础。1.1项目背景为了更好地了解MFC的原理,同时充分运用已掌握的算法,通过实践更好地掌握并运用关于MFC的知识,我们提出了开发矩阵多功能计算器这个项目。同时,计算器是我们如今学习工作中所必不可少的工具。而Windows自带的计算
2、器尽管功能齐全,却只能进行一次运算。然而实际上我们常常面对的是一大串很复杂的算式,使用计算器时不得不先进行拆分,还要记录下中间结果,才能得到结果,很不方便。集多功能计算于一体的计算器十分稀少,因此,该项目的开发具有一定的应用前景1.2作品课题的选择考虑的学习MFC的时间有限,对MFC原理的了解认识还有待提高,设计完成一项大的、复杂的课题作品不大现实,而且意义也不大。因此,选择计算器。完成计算器这个作品能能力上最大的要求是对算法的掌握,特别是数学知识的要求,从而,完成这项作品相对简单。这样对于更好的理解MFC原理有很大的帮助。1.3项目计划考虑的学习MFC的时间有限,对MFC
3、原理的了解认识还有待提高,设计完成一项大的、复杂的课题作品不大现实,而且意义也不大。因此,选择计算器。完成计算器这个作品能能力上最大的要求是对算法的掌握,特别是数学知识的要求,从而,完成这项作品相对简单。这样对于更好的理解MFC原理有很大的帮助。二、设计过程2.1Windows消息处理机制的理解首先编写程序需要对Windows程序的消息处理机制(MessageHandle)有个比较清晰的了解,Windows的程序都是通过消息来传送数据,有不需要用户参与的系统消息,比如异常处理等。还有用户消息,比如鼠标的单击,双击,键盘的键入等。2.2界面的设计仿照Windows附件里面的计
4、算器,在资源视图中画好界面,如图:主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。2.3建立的变量,控件的命名,对应的消息处理函数对应表因为空间原因,这里只有一半的参数2.3建立的变量,控件的命名,对应的消息处理函数对应表变量定义:doublepoz;//保存小数点的位置,初始化为1,表示poz-1个小数点。doublem_Dis;//Edit控件上需要显示的数字BOOLpoint_flag;//小数点表示位,判定是否是小数,是小数为1,不是小数为0。doub
5、lenumfirst;//保存计算过程中的前一个数字,doublenumsecond;//保存计算过程中的第二个数字charop;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’变量初始化:poz=1;m_Dis=0.0;numfirst=0;numsecond=0;op=0;三、具体函数3.1设计思路首先考虑对所有按键分为两类,数字类和符号类,0,1,2,3,4,5,6,7,8,9为数字类,+,-,*,/,=为符号类。数字在计算的过程中最多需要保存两个,所以定义了两个double型变量numfirst和numsecond来进行存储。符号
6、需要一个charop来存储。然后考虑在计算的过程中,numfirst和numsecond的存储状态有三种,一种是numfirst==0&&numsecond==0也就是程序刚开始运行还没有开始录入数字的状态。二种是numfirst!=0&&numsecond==0也就是第一个数字已经录入,符号也已经录入时候把m_Dis的值直接赋值给numfirst,第三种是numfirst!=0&&numsecond!=0,表示可以通过op来把两数合并为一个数。考虑到该计算器支持连续的计算,比如3.33+1.33*88/96=?。所以必须在点符号Button也要计算出之前的结果,通过判断o
7、p,来计算,把两个数字合并为一个数字,方便下一次运算,功能近似于点=,所以把=也划分到符号类。因为数字全部使用的是double,键入的数字必须通过一定的处理达到累加的效果,加上小数和整数的处理差异性大,所以分别用point_flag来判断,分别出来小数和整数3.2成员函数及其释义因为对OnNum0()到OnNum9()的处理函数差异仅在一个数字上,可以通过调用一个共同的函数OnCal(doublenum)来简化源代码长度,增加模块性。因为函数较多的原因这里就举此一例详情还请参考word文档四、总结:本次MFC计算器
此文档下载收益归作者所有