用MFC制作简易计算器.docx

上传人:b****8 文档编号:10515753 上传时间:2023-02-17 格式:DOCX 页数:13 大小:101.48KB
下载 相关 举报
用MFC制作简易计算器.docx_第1页
第1页 / 共13页
用MFC制作简易计算器.docx_第2页
第2页 / 共13页
用MFC制作简易计算器.docx_第3页
第3页 / 共13页
用MFC制作简易计算器.docx_第4页
第4页 / 共13页
用MFC制作简易计算器.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

用MFC制作简易计算器.docx

《用MFC制作简易计算器.docx》由会员分享,可在线阅读,更多相关《用MFC制作简易计算器.docx(13页珍藏版)》请在冰豆网上搜索。

用MFC制作简易计算器.docx

用MFC制作简易计算器

用VC++制作简单计算器

简述:

该课程设计将实现一个简单计算器。

其类似于Windows附件中自带的计算器。

这个计算器可以实现简单的四则运算功能,而且具有简洁大方的图文外观。

系统具有良好的界面和必要的交互信息。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度,从而节约了时间,对人们的生活有一定的帮助。

在课程设计中,程序设计设计语言采用VisualC++,在程序设计中,采用了面向对象解决问题的方法。

课题背景

计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除简单运算的工具。

要实现计算功能,可以用VC++的知识编写程序来解决此问题。

该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。

该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。

功能说明

系统具有良好的界面;必要的交互信息;简约美观的效果。

使用人员能快捷简单地进行操作。

可单机按钮进行操作即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

(1)包含的功能有:

加、减、乘、除;

(2)计算器上数字分为显示区,可以显示用户所点击的按键,最后显示结果;按键区,可以让用户选择所需的数字以及小数点;功能区,该区域提供用户所需的运算按钮;

(3)计算功能基本上是用系统内部函数;

(4)“AC”按钮可以清除所有已输入的数据从头计算;

(5)“DEL”按钮可以删除所输入的最后以为数字;

编辑资源

按钮名称

按钮ID

用途

0

IDC_BUTTON0

按键0

1

IDC_BUTTON1

按键1

2

IDC_BUTTON2

按键2

3

IDC_BUTTON3

按键3

4

IDC_BUTTON4

按键4

5

IDC_BUTTON5

按键5

6

IDC_BUTTON6

按键6

7

IDC_BUTTON7

按键7

8

IDC_BUTTON8

按键8

9

IDC_BUTTON9

按键9

.

IDC_point

小数点

=

IDC_result

求值

+

IDC_add

加号

-

IDC_jian

减号

*

IDC_cheng

乘号

/

IDC_chu

除号

AC

IDC_ac

清屏

DEL

IDC_del

删除

 

创建步骤

新建一个MFC基于对话框的工程

VC++对话框界面

 

右击按钮,修改按钮的属性

建立类向导

最后点击EditCode就可以添加代码

对其它按钮的操作与之类似,对编辑框的“建立类向导”有点区别,这里不附详细步骤

代码展示

“1”按钮对应的代码

voidCMyDlg:

:

OnButton1()

{

UpdateData

(1);

if(pass1==1)

m_str="1";

elsem_str+="1";

pass1=0;

UpdateData(0);

}

“2”按钮对应的代码

voidCMyDlg:

:

OnButton2()

{

UpdateData

(1);

if(pass1==1)

m_str="2";

elsem_str+="2";

pass1=0;

UpdateData(0);

}

“3”按钮对应的代码

voidCMyDlg:

:

OnButton3()

{

UpdateData

(1);

if(pass1==1)

m_str="3";

elsem_str+="3";

pass1=0;

UpdateData(0);

}

“4”按钮对应的代码

voidCMyDlg:

:

OnButton3()

{

UpdateData

(1);

if(pass1==1)

m_str="4";

elsem_str+="4";

pass1=0;

UpdateData(0);

}

 

“5、6、7、8、9、0”按钮对应的代码与“1、2、3、4”按钮对应的代码相近

“=”按钮对应的代码

voidCMyDlg:

:

Onresult()

{

UpdateData

(1);

inti,z,s,j,x=0,y=1,t,m=1;

charb[10];

doublerate=10.0,itemp=0.0,a[20];

for(i=0;i<20;i++)

a[i]=1000000.0;

for(i=0;i<10;i++)

b[i]='';

z=0;

for(i=0;i

{

if(isdigit(m_str.GetAt(i)))

{

if(rate==10.0)

{itemp=itemp*rate+(m_str.GetAt(i)-'0');

if(i==m_str.GetLength()-1)

a[z]=itemp;

}

else

{

itemp=itemp+rate*(m_str.GetAt(i)-'0');

rate=rate/10;

if(i==m_str.GetLength()-1)

a[z]=itemp;

}

}

elseif(m_str.GetAt(i)=='.')

rate=0.1;

elseif(m_str.GetAt(i)=='+')

{

a[z]=itemp;itemp=0;

z++;

b[z]='+';

z++;

rate=10.0;

}

elseif(m_str.GetAt(i)=='-')

{

a[z]=itemp;itemp=0;

z++;

b[z]='-';

z++;

rate=10.0;

}

elseif(m_str.GetAt(i)=='*')

{

a[z]=itemp;itemp=0;

z++;

b[z]='*';

z++;

rate=10.0;

}

elseif(m_str.GetAt(i)=='/')

{

a[z]=itemp;itemp=0;

z++;

b[z]='/';

z++;

rate=10.0;

}

}

s=z;

for(j=0;j<=s;j++)

{

if(b[j]=='/')

{

a[j+1]=1/a[j+1];

b[j]='*';

}

}

for(j=0;j<=s;j++)

{

if(b[j]=='*')

{

if(j-t==2)

{

a[t-m]=a[t-m]*a[j+1];

m=m+2;

}

else

a[j-1]=a[j-1]*a[j+1];

a[j+1]=1000000.0;

b[j]='';

t=j;

}

}

for(j=0;j<=s;j++)

{

if(a[j]!

=1000000.0)//如果a[i]的值不为0.0

{

a[x]=a[j];//把a[i]的值赋给a[x]

x+=2;//x自加2

}

if(b[j]!

='')//如果b[i]的值不为空格

{

b[y]=b[j];//把b[i]的值赋给b[y]

y=y+2;//y自加2

}

}

for(j=0;j<=y-2;j++)

{

if(b[j]=='+')//如果b[i]等于加号

a[0]=a[0]+a[j+1];

elseif(b[j]=='-')//如果b[i]等于减号

a[0]=a[0]-a[j+1];

}

m_str.Format("%1f",a[0]);

UpdateData(0);

}

“+”按钮对应的代码

voidCMyDlg:

:

Onadd()

{

UpdateData

(1);

m_str+="+";

UpdateData(0);

}

“-”按钮对应的代码

voidCMyDlg:

:

Onjian()

{

UpdateData

(1);

m_str+="-";

UpdateData(0);

}

“*”按钮对应的代码

voidCMyDlg:

:

Oncheng()

{

UpdateData

(1);

m_str+="*";

UpdateData(0);

}

“/”按钮对应的代码

voidCMyDlg:

:

Onchu()

{

UpdateData

(1);

m_str+="/";

UpdateData(0);

}

“AC”按钮对应的代码

voidCMyDlg:

:

Onac()

{

UpdateData

(1);

m_str="0";

pass1=1;

UpdateData(0);

}

“DEL”按钮对应的代码

voidCMyDlg:

:

Ondel()

{

UpdateData

(1);

if(m_str!

="0"&&m_str.GetLength()>1)

m_str=m_str.Left(m_str.GetLength()-1);

else

{

m_str="0";

}

UpdateData(0);

}

“.”按钮对应的代码

voidCMyDlg:

:

Onpoint()

{

UpdateData

(1);

if(pass1==1)

m_str=".";

else

m_str+=".";

pass1=0;

UpdateData(0);

}

效果图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1