




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、课题背景 在VC环境下,利用微软的基础类库MFC,不仅可以开发出功能强大的Windows应用程序,还可以通过MFC的学习使大家了解和掌握面向对象程序设计的基本思想和方法,把握住计算机程序设计方法的发展和方向,为今后进一步提高计算机程序设计能力打下坚实的基础。1.1项目背景 为了更好地了解MFC的原理,同时充分运用已掌握的算法,通过实践更好地掌握并运用关于MFC的知识,我们提出了开发矩阵多功能计算器这个项目。同时,计算器是我们如今学习工作中所必不可少的工具。而Windows 自带的计算器尽管功能齐全,却只能进行一次运算。然而实际上我们常常面对的是一大串很复杂的算式,使用计算器时不得不先进行拆
2、分,还要记录下中间结果,才能得到结果,很不方便。集多功能计算于一体的计算器十分稀少,因此,该项目的开发具有一定的应用前景1.2作品课题的选择 考虑的学习MFC的时间有限,对MFC原理的了解认识还有待提高,设计完成一项大的、复杂的课题作品不大现实,而且意义也不大。因此,选择计算器。完成计算器这个作品能能力上最大的要求是对算法的掌握,特别是数学知识的要求,从而,完成这项作品相对简单。这样对于更好的理解MFC原理有很大的帮助。1.3项目计划 考虑的学习MFC的时间有限,对MFC原理的了解认识还有待提高,设计完成一项大的、复杂的课题作品不大现实,而且意义也不大。因此,选择计算器。完成计算器这个作品能能
3、力上最大的要求是对算法的掌握,特别是数学知识的要求,从而,完成这项作品相对简单。这样对于更好的理解MFC原理有很大的帮助。二、设计过程2.1Windows消息处理机制的理解消息处理机制的理解 首先编写程序需要对Windows程序的消息处程序的消息处理机制理机制(Message Handle)有个比较清晰的了解,Windows的程序都是通过消息来传送数据,有不需要用户参与的系统消息,比如异常处理等。还有用户消息,比如鼠标的单击,双击,键盘的键入等。2.2界面的设计 仿照Windows附件里面的计算器,在资源视图中画好界面,如图: 主要使用到Layout菜单中的Align功能对各个按钮进行对其,使
4、界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 2.3建立的变量,控件的命名,对应建立的变量,控件的命名,对应的消息处理函数对应表的消息处理函数对应表2.3建立的变量,控件的命名,对应建立的变量,控件的命名,对应的消息处理函数对应表的消息处理函数对应表变量定义:变量定义:double poz; /保存小数点的位置,初始化为保存小数点的位置,初始化为1,表示,表示poz-1个小数点。个小数点。doublem_Dis; /Edit控件上需要显示的数字控件上需要显示的数字BOOL point_flag; /小数点表示位,判定是否是小数,是小数为小数
5、点表示位,判定是否是小数,是小数为1,不是,不是小数为小数为0。double numfirst; /保存计算过程中的前一个数字,保存计算过程中的前一个数字,double numsecond;/保存计算过程中的第二个数字保存计算过程中的第二个数字 char op;/记录当前的计算符号,可以为记录当前的计算符号,可以为+,-,*,/,=,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为数字类,+,-,*,/,=为
6、符号类。数字在计算的过程中最多需要保存两个,所以定义了两个double型变量numfirst和numsecond来进行存储。符号需要一个char op来存储。然后考虑在计算的过程中,numfirst和numsecond的存储状态有三种,一种是numfirst=0 & numsecond=0 也就是程序刚开始运行还没有开始录入数字的状态。二种是numfirst!=0 & numsecond=0 也就是第一个数字已经录入,符号也已经录入时候把m_Dis的值直接赋值给numfirst,第三种是numfirst!=0 &numsecond!=0,表示可以通过op来把两数合并为一个数。考虑到该计算器支持
7、连续的计算支持连续的计算,比如3.33+1.33*88/96= ?。所以必须在点符号Button也要计算出之前的结果,通过判断op,来计算,把两个数字合并为一个数字,方便下一次运算,功能近似于点=,所以把=也划分到符号类。因为数字全部使用的是double,键入的数字必须通过一定的处理达到累加的效果,加上小数和整数的处理差异性大,所以分别用point_flag来判断,分别出来小数和整数3.2成员函数及其释义成员函数及其释义因为对OnNum0()到OnNum9()的处理函数差异仅在一个数字上,可以通过调用一个共同的函数OnCal(double num)来简化源代码长度,增加模块性。四、总结:四、总结: 本次本次MFC计算器的制作,学习到了计算器的制作,学习到了MFC基本基本的编程方法,增加了小组开发的团结协作的编程方法,增加了小组开发的团结协作能力。对能力。对OOP编程的理解进一步加深。但编程的理解进一步加深。但是程序仍然没存在一定的问题,比如除数是程序仍然没存在一定的问题,比如除数不能为不能为0的的Exception handle,符号键多次点,符号键多次点击结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025杭州上城区国有资本运营集团有限公司招聘3人模拟试卷带答案详解
- 2025年4月广东广州市天河区珠江新城猎德幼儿园编外教辅人员招聘2人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025福建厦门启航培训服务有限公司招聘1人模拟试卷及答案详解(典优)
- 2025甘肃张掖市民乐县河西学院招聘40人模拟试卷附答案详解(考试直接用)
- 2025年白山市浑江区事业单位公开招聘高层次人才和工作人员(含专项招聘高校毕业生)(57人)模拟试卷有答案详解
- 2025广东深圳九州光电子技术有限公司招聘生产主管等2人考前自测高频考点模拟试题及答案详解一套
- 班组安全培训登记表课件
- 城市节庆品牌塑造研究-洞察与解读
- 2025甘肃武威市事业单位招聘628人考前自测高频考点模拟试题及一套参考答案详解
- 2025北京华商电力产业发展有限公司2025年搞笑毕业生招聘29人(第三批)模拟试卷及答案详解(历年真题)
- 2025建筑二次结构木工劳务合同范本
- GB/T 46105-2025陆地生态系统碳汇核算指南
- 李光平-哈工大-机械工程材料单元1课件
- 工程项目质量管理研究-以XX小区为例
- 第一讲-决胜十四五奋发向前行-2025秋形势与政策版本-第二讲-携手周边国家共创美好未来-2025秋形势与政策版本
- 红楼梦第九回课件
- 智慧指挥中心建设总体方案设计
- 学堂在线 现代生活美学-花香茶之道 章节测试答案
- 2025民航西藏空管中心社会招聘14人(第1期)笔试参考题库附带答案详解(10套)
- 2025年职业病医师资格认证考试
- Unit4《Lesson 3 I am proud of my father》教案-2025-2026学年冀教版(三起)(2024)小学英语四年级上册
评论
0/150
提交评论