西安科技大学
2015级研究生 VC++程序设计实验报告题目:基于VC++MFC的计算器设计
专业:软件工程
学号:201508392
姓名:陈恩杰
日期:2016年1月6号
一、题目:利用VC++实现计算器的设计
我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器,所以着手开发了这个计算器程序,以便用于自己的学习工作。计算功能有以下几个方面:加法,减法,乘法,除法,求幂,求模,求平方根,求Sin,求Cos。
二、编程要点(或基本思路、算法分析与说明):
1.用MFC AppW izard创建一个工程名为“计算器”的框应用程序。
2.在对话框上添加编辑框、命令按钮等控件,并设置相关属性,命令按钮上的数字或符号是对应按钮的标题属性。
3.用MFCClassWizard给命令按钮添加消息映射在按钮上单击右键,弹出的快捷菜单中选择“建立类向导”,添加BN_CLICKED消息。
4.用MFc ClassWizard给命令按钮添加消息响应函数代码。
三、实现过程:
(1)设计步骤
打开VC++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名计算器及其所在位置,点击确定,如图3.1所示。
图3.1新建MFC AppWizard[exe]工程
将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图3.2所示。
图3.2基本对话框
这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图3.3所示。
图3.3新建的对话框
(2)界面设计
界面设计主要是创建控件,在图 3.3所示的Resoure View选项卡中打开Dialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。
1.在图3.3中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图3.4所示,在该对话框中输入ID属性。
图3.4 Edit属性对话框
2.在图
3.2中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图3.5所示,在该对话框中输入控件的ID值和标题属性。
图3.5Push Button属性
按照上面的操作过程编辑其他按钮和编辑框等对象的属性。
完成后界面如图3.6所示。
图3.6 设计界面(3)主要代码
void CMyDlg::RunOperation(eum_signl en_signl) { double sum;
double nAdd1;
double nAdd2;
nAdd1=atof(cs_Num[0]);
nAdd2=atof(cs_Num[1]);
switch(en_signl)
{
case en_add: //加法
sum=nAdd1+nAdd2;
break;
case en_sub: //减法
sum=nAdd1-nAdd2;
break;
case en_mul://乘法
sum=nAdd1*nAdd2;
break;
case en_div://除法
sum=nAdd1/nAdd2;
break;
}
cs_Num[0].Format("%g",sum);
SetDlgItemText(IDC_EDIT1,cs_Num[0]);
if (!b_Hasport && -1==cs_Num[0].Find('.'))
{ CString temp;
GetDlgItemText(IDC_EDIT1,temp);
temp+=".";
SetDlgItemText(IDC_EDIT1,temp);
}
m_i = 1;
b_Hasport=FALSE;
b_Start=FALSE;
cs_Num[m_i]="0";
}
void CMyDlg::OnNumAdd()
{
if (!b_Start)
{ return;
}
if (en_LastSignl==en_none)
{ en_LastSignl=en_add;
}
RunOperation(en_LastSignl);
en_LastSignl=en_add;
}
四、运行结果展示:
经测试标准型计算器,进行简单的四则运算,结果均正确,如图4.1所示。
图4.1 四则运算测试结果图
五、总结与心得体会(不少于300字):
通过一个学期的理论知识学习,加上课程设计的完成,实现了理论知识的掌握和应用。在课程设计的实践中,学到很多有用的知识,也积累了不少宝贵的经验。课程设计是以一个计算器的实现为基础,掌握一个基于对话框的应用程序的编程方法以及对话框常用控件的高级编程。在课程设计中我了解到到对话框应用程序的编程模式、改变按钮的客户区形状、在按钮客户区内作图及对话框的扩展等知识。在此期间,遇上了不少的技术难题,但是经过不断地探索,难题还是一个个被解决了。
经过设计的各个环节,从中学到了很多,锻炼了自己系统的设计的能力,从系统的需求到系统的功能,到系统的测试,到系统的发布,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中得到很好的锻炼,为用VC++编辑软件奠定基础。