MFC计算器程序设计Word格式文档下载.docx
《MFC计算器程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MFC计算器程序设计Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
1.2设计要点·
4设计内容·
4
2.1设计要求·
2.2工具介绍·
5
3、设计步骤·
6
3.1编辑框设计·
8
3.2按钮设计·
11
3.3代码·
13
4、运行结果·
18
5、心得体会·
6、参考文献·
19
用VC++进行MFC计算器程序编写
摘要:
计算器是人们日常生活中常用到的计算工具,随着时代科技的进步,计算器也在不断的更新,现在不只是可以进行一些简单的计算,一些高级的计算器可以解决更为复杂的计算。
学习了VC++,我们可以自己动手编写一些简单计算器的程序。
关键词:
程序设计;
计算器;
MFC
一、引言
本课程设计将设计一个简单计算器程序,可以实现简单整数、小数的加减乘除的运算。
程序带清零按钮
1.1设计目的
本程序设计实践是采用C++语言,在VC平台下设计。
本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
程序设计实践主要是培养学生利用系统综合C++语言进行程序设计的能力。
1.进一步巩固和复习C++程序设计的基础知识。
2.培养学生结构化程序、模块化程序设计的方法和能力。
3.了解软件的编制过程及各环节的具体内容。
4.提高学生程序调试技巧、软件设计能力和代码规范化等素质。
5.提高学生分析问题、解决问题以及实际运用能力。
1.2设计要点
1、基本要求:
设计的系统界面要美观大方,操作合理,有必要的提示。
2、创新要求:
在基本要求达到后,进行创新设计。
3、对系统进行功能模块分析、控制流程分析正确。
4、系统设计要实用,编程简练,可用,功能全面,并有一定的容错能力。
5、说明书、流程图要清楚
6、要求程序设计合理,用户界面良好,如采用菜单工作方式。
二、设计内容
设计一个简单的计算器。
要求能实现整数、小数算数运算。
程序带清零按钮。
2.1设计要求
用C++进行编写MFC程序,工程名为自己的姓名首字母和学号连接而成。
注重编码质量,代码要有适当的注释;
提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)
参考界面如下图1-1:
图2-1计算器界面
2.2、开发工具的介绍
关于VisualC++:
VisualC++6.0由Microsoft开发,它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
Microsoft的主力软件产品。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为平台。
VisualC++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。
这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
三、设计步骤
首先打开VC,选择MFCAppWizard[exe],设定好路径和工程名(这里我设置工程名为为“My”)。
这里要注意的是在创建向导步骤1的时候,我们选择“基本对话框框”。
之后我们可以点击完成便看到以下界面
此时我们把当前页面上原配的控件按Delete全部清除(如下图)
接着我们按照MFC自带的控件选项进行我们本次计算器的控件添加(以下是控件)
我们在原先清空的界面中依次用上图控件画出一个基本的计算器页面(如下图)。
当然作为“所见即所得”的MFC控件设计,干净整齐的界面是基本要求,甚至会影响用户的心情。
上图我们用按钮控件添加一共15个按钮,分别是数字“0~9”以及“+、-、*、/、=
每个控件“属性”都有属于它自己的ID,默认的按钮按键为IDC_BUTTON0,而且Cap当然我们为了“顾名思义”,对控件ID进行修改成我们容易辨认的(也可以不改),添加完控件并修改ID之后。
(如下图)
3.1编辑框的设置
简单的计算器只有一个编辑框,设计步骤具体如下:
编辑框的ID可以默认,然后打开建立向导编辑框
设置编辑框里面数值的类型
因为有小数,所以我们设置编辑框中的数值类型为double,点击OK退出编辑框的设置。
编辑框的界面及属性、ID等设置结束。
3.2设置按钮键
这里我们把数字按钮0设置ID为IDC_BUTTON14_NUM0,其他的依次类推
完成修改ID后,就需给控件添加消息响应了,基本操作可以是直接双击控件,便会有向导提示。
MFC默认下了的响应信息都为On_开头,而且以下显示的是数字5的消息响应.之后所有的依次类推,这步骤一般不
对成员函数名称做任何修改,直接点击OK即可
之后就会跳转到具体的代码实现过程这里我们依次给每一个控件添加消息响应函数
以下是部分代码:
到此为止我们基本上完成了计算器页面的前半部分预备工作,下来是我们的对控件具体实现代码的添加。
这里我把添加的控件消息响应函数列出来
3.3计算器计算程序的代码添加
双击计算按钮,弹出代码输入框
在其中输入单击该按钮触发的计算程序
voidCMyDlg:
:
OnBd()
{
//"
."
dian=true;
n=1;
}
///////////////////////////////////////////////////////////////
OnBce()
CE"
m_input=0;
m_Result=float(m_input);
UpdateData(false);
m_done=false;
dian=false;
opt=false;
n=0;
//////////////////运算符的定义///////////////////////////
OnBadd()
+"
operate();
yun=1;
OnBsub()
-"
yun=2;
OnBmult()
*"
yun=3;
OnBdiv()
/"
yun=4;
OnBrun()
//"
="
num_2=m_Result;
if(yun==1)
{
m_Result=num_1+num_2;
}
elseif(yun==2)
m_Result=num_1-num_2;
elseif(yun==3)
m_Result=num_1*num_2;
elseif(yun==4)
m_Result=num_1/num_2;
m_done=true;
Numin(doubleput)
if(m_done==true||opt==true)//如果一次计算结束或运算符已经选择
if(dian==false)//如果小数点还没有被按下
m_Result=m_input=0.0;
m_input=m_input*10+put;
m_Result=m_input;
UpdateData(false);
opt=false;
m_done=false;
elseif(dian==true)//如果小数点已经被按下//////////
m_Result=m_input=0.0;
inti;
for(i=0;
i<
n;
i++)
put=put/10;
m=put;
m_input=m_input+m;
else
{
elseif(dian==true)//如果小数点已经被按下///////////////
n++;
operate()
num_1=m_Result;
opt=true;
四、运行界面
五、课程设计心得体会
经过两周的努力,课程设计基本完成了。
当我刚刚拿到题目的时候,感觉特别难,一点思路都没有,后来,经过老师的指导和自己进一步的仔细琢磨、认真思考以及刻苦练习,慢慢地有了点眉目。
同时,在课程设计的过程中,我学会不少新的知识,扩展了自己的知识面,并且对以前已经学过的知识进行了巩固练习。
在进行课设的过程中,发现团队合作十分重要,分开部分各个击破,使问题变得容易了很多,不然就这个题目而言,一个人做的话是非常复杂的,而且时间也不够。
大家的通力合作,才完成了整个设计。
最后的一点体会是,面对困难的时候,如果绕不过去,就要努力克服,可以求助于老师,同学,查阅资料,不要轻易放弃和改变已选定的方法。
总之,这次课设投入了很多,也收获了很多,吧所学知识进一步深入,并学到了很多课本以外的工作,感觉这次课设对我有很大帮助。
感谢老师的辛勤指导,使我们抓住解决问题的关键,从而顺利完成课程设计。
感谢同组同学的团结合作,以及其他同学给予的帮助,使我们的课程设计得以圆满完成。
六、参考文献
[1]郑阿奇,丁有和VisualC++教程北京:
机械工业出版社,2006
[2]张宏军,党留群,赵天巨VisualC++6.0编程案例精解北京:
电子工业出版社,2005
[3]李强,贾云霞VisualC++项目开发实践北京:
中国铁道出版社,2003
[4]余苏宁、王明福,VisualC++程序设计北京:
高等教育出版社,2003