用VC60编写计算器程序.docx

上传人:b****6 文档编号:16732860 上传时间:2023-07-16 格式:DOCX 页数:20 大小:272.82KB
下载 相关 举报
用VC60编写计算器程序.docx_第1页
第1页 / 共20页
用VC60编写计算器程序.docx_第2页
第2页 / 共20页
用VC60编写计算器程序.docx_第3页
第3页 / 共20页
用VC60编写计算器程序.docx_第4页
第4页 / 共20页
用VC60编写计算器程序.docx_第5页
第5页 / 共20页
用VC60编写计算器程序.docx_第6页
第6页 / 共20页
用VC60编写计算器程序.docx_第7页
第7页 / 共20页
用VC60编写计算器程序.docx_第8页
第8页 / 共20页
用VC60编写计算器程序.docx_第9页
第9页 / 共20页
用VC60编写计算器程序.docx_第10页
第10页 / 共20页
用VC60编写计算器程序.docx_第11页
第11页 / 共20页
用VC60编写计算器程序.docx_第12页
第12页 / 共20页
用VC60编写计算器程序.docx_第13页
第13页 / 共20页
用VC60编写计算器程序.docx_第14页
第14页 / 共20页
用VC60编写计算器程序.docx_第15页
第15页 / 共20页
用VC60编写计算器程序.docx_第16页
第16页 / 共20页
用VC60编写计算器程序.docx_第17页
第17页 / 共20页
用VC60编写计算器程序.docx_第18页
第18页 / 共20页
用VC60编写计算器程序.docx_第19页
第19页 / 共20页
用VC60编写计算器程序.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用VC60编写计算器程序.docx

《用VC60编写计算器程序.docx》由会员分享,可在线阅读,更多相关《用VC60编写计算器程序.docx(20页珍藏版)》请在冰点文库上搜索。

用VC60编写计算器程序.docx

用VC60编写计算器程序

用C++编写计算器程序

一、计算器介绍

1.计算器主界面

1.1、计算器打开运行后界面如下所示:

1.2主界面的说明

主界面主要由三部分组成:

Ø文本框:

用于数据的输入(可由下面的按钮或键盘输入),以及计算结果的输出;

Ø基本计算区:

主要可用于数字的输入以及简单的加减乘除的计算,还有可用于清楚文本框的数据;

Ø数学函数计算区:

主用可实现基本常用的数学函数的计算,包括常用的三角函数和反三角函数以及e指数、开平方和以e和10为底对数的计算。

2.计算器的操作说明及注意事项

2.1、基本操作:

使用计算器进行基本数据计算时通过键盘及基本计算区的按钮输入数据,然后根据计算需要点击“+、-、*、/”按钮,然后点击”=”按钮得出计算结果。

若需使用函数计算时,可先输入数据,然后点击对应使用函数的按钮即可得出结果。

特别的,对于三角函数的计算时,可点击单选框“弧度制”、“角度制”以实现弧度制及角度制数据的三角计算。

2.2、注意事项:

✧使用除法计算时应注意不能使被除数为0,否则会出错:

出现此错误时只需点击确定即可继续之前的计算。

✧在使用三角函数时应先确定所输入的数据是角度制还是弧度制的数据,否则计算器会跳出提醒框,如下所示:

而计算反三角函数时只能计算弧度制数据得到角度制结果:

在使用常用函数进行计算时应特别注意所输入的数应满足函数的定义域,使函数有意义,否则会出错:

✧另注:

当所得数据很小时会以科学计数法的形式输出:

其中e-002即表示×10-2。

二、MFC编程的实现

1.计算器主界面的设计

1.1、建立对话框

1.启动VisualC++6.0集成开发环境

2.创建对话框类型应用程序

在【工程】选项卡中选择【MFCAppWizard】应用程序类型,工程文件名为Calculator。

单击确定后选择【基本对话】建立基本对话框应用程序。

1.2、添加控件,设计界面

界面设计如下所示:

2.控件ID及变量

◆控件:

ID:

IDC_NUM1IDC_NUM2IDC_NUM3IDC_NUM4IDC_NUM5

消息函数:

OnNum1OnNum2OnNum3OnNum4OnNum5

◆控件:

ID:

IDC_NUM6IDC_NUM7IDC_NUM8IDC_NUM9IDC_NUM12

消息函数:

OnNum6OnNum7OnNum8OnNum9OnNum12

◆控件:

ID:

IDC_NUM10IDC_ADDIDC_SUBTRACTIDC_MULPTIPLYIDC_DIVISION

消息函数:

OnNum10OnAddOnSubtractOnMulptiplyOnDivision

◆控件:

ID:

IDC_EQUALIDC_BACKSPACEIDC_CLEAR1IDC_Exit

消息函数:

OnEqualOnBackspaceOnClear1OnExit

◆控件:

ID:

IDC_RADIO1IDC_RADIO2IDC_SINIDC_ARCSINIDC_COSIDC_TAN

消息函数:

OnRadio1OnRadio2OnSinOnArcsinOnCosOnTan

◆控件:

ID:

IDC_ARCCOSIDC_ARCTANVIDC_EXPIDC_SQRTIDC_LNIDC_LOG

消息函数:

OnArccosOnArctanOnExpOnSqrtOnLnOnLog

◆编辑框为IDC_EDIT1,定义类型为CEdit的变量m_Edit1.

3.程序代码的实现

3.1、定义变量

1)

向CalculatorDlg.h的CCalculatorDlg类定义中添加public型变量:

2)在CalculatorDlg.cpp中定义四个全局变量;

 

3)控件函数代码的实现

Ø数字输入按钮下函数的实现

以下是数字键

的函数的代码,其余以此类推

voidCCalculatorDlg:

:

OnNum1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CStringt;

GetDlgItem(IDC_NUM1)->GetWindowText(t);//获取按钮的数字

t=Num+t;//字符串连接

m_Edit1.SetWindowText(t);//在编辑框中显示

Num=t;

}

Ø退格键

及清屏键

函数代码的实现

voidCCalculatorDlg:

:

OnBackspace()//退格

{

Num=Num.Left(Num.GetLength()-1);//使Num的长度减1

m_Edit1.SetWindowText(Num);

}

voidCCalculatorDlg:

:

OnClear1()//清楚屏幕

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_Edit1.SetSel(0,-1);

m_Edit1.ReplaceSel("");

Num='';

result=0;

control=0;

UpdateData(FALSE);

}

Ø计算的实现,

按钮下程序代码的实现:

voidCCalculatorDlg:

:

OnAdd()//加法运算

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30];

doubleadd;

m_Edit1.GetWindowText(cs,30);

add=atof((LPCTSTR)cs);

switch(control)//每次计算之前前进行之前的运算

{

case0:

result=add;break;//第一个数应存储

case1:

result=result+add;break;

case2:

result=result-add;break;

case3:

result=result*add;break;

case4:

{

if(add==0)

{

MessageBox("除数不能为0!

请重新输入.");

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;//control赋初值

return;

}

else

{result=result/add;break;}

}

}

control=1;

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

UpdateData(FALSE);

}

voidCCalculatorDlg:

:

OnSubtract()//减法运算

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30];

doublesub;

m_Edit1.GetWindowText(cs,30);

sub=atof((LPCTSTR)cs);

switch(control)//每次计算之前前进行之前的运算

{

case0:

result=sub;break;//第一个数应存储

case1:

result=result+sub;break;

case2:

result=result-sub;break;

case3:

result=result*sub;break;

case4:

{

if(sub==0)

{

MessageBox("除数不能为0!

请重新输入.");

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;//control回到初值

return;

}

else

{result=result/sub;break;}

}

}

control=2;

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

}

voidCCalculatorDlg:

:

OnMulptiply()//乘法运算

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30];

doublesub;

m_Edit1.GetWindowText(cs,30);

sub=atof((LPCTSTR)cs);

switch(control)//每次计算之前前进行之前的运算

{

case0:

result=sub;break;//第一个数应存储

case1:

result=result+sub;break;

case2:

result=result-sub;break;

case3:

result=result*sub;break;

case4:

{

if(sub==0)

{

MessageBox("除数不能为0!

请重新输入.");

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;//control回到初值

return;

}

else

{result=result/sub;break;}

}

}

control=3;

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

}

voidCCalculatorDlg:

:

OnDivision()//除法运算

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30];

doublesub;

m_Edit1.GetWindowText(cs,30);

sub=atof((LPCTSTR)cs);

switch(control)//每次计算之前前进行之前的运算

{

case0:

result=sub;break;//第一个数应存储

case1:

result=result+sub;break;

case2:

result=result-sub;break;

case3:

result=result*sub;break;

case4:

{

if(sub==0)

{

MessageBox("除数不能为0!

请重新输入.");

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;//control回到初值

return;

}

else

{result=result/sub;break;}

}

}

control=4;

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

}

Ø等于

的实现

voidCCalculatorDlg:

:

OnEqual()//等于的实现

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30],seq[50];

doubleequal;

switch(control)

{

case1:

{

m_Edit1.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

result=result+equal;

_gcvt(result,50,seq);

m_Edit1.SetWindowText(seq);

Num='';

result=0;

control=0;

break;

}

case2:

{

m_Edit1.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

result=result-equal;

_gcvt(result,50,seq);

m_Edit1.SetWindowText(seq);

Num='';

result=0;

control=0;

break;

}

case3:

{

m_Edit1.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

result=result*equal;

_gcvt(result,50,seq);

m_Edit1.SetWindowText(seq);

Num='';

result=0;

control=0;

break;

}

case4:

{

m_Edit1.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

if(equal==0)

{

MessageBox("除数不能为0!

请重新输入.");

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;//control回到初值

return;

}

else

{

result=result/equal;

_gcvt(result,50,seq);

m_Edit1.SetWindowText(seq);

Num='';

result=0;

control=0;

break;

}

}

}

}

Ø以下是角度制

和弧度制

的实现代码

voidCCalculatorDlg:

:

OnRadio2()//角度制

{

//TODO:

Addyourcontrolnotificationhandlercodehere

math=2;

}

voidCCalculatorDlg:

:

OnRadio1()//弧度制

{

//TODO:

Addyourcontrolnotificationhandlercodehere

math=1;

}

Ø数学函数的实现,以下给出

的程序代码,其余函数依此类推即可得到:

voidCCalculatorDlg:

:

OnSin()//正弦函数计算的实现

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30];

doublesub;

m_Edit1.GetWindowText(cs,30);

sub=atof((LPCTSTR)cs);

switch(control)//先进行判断之前是否有简单运算

{

case0:

break;

case1:

sub=result+sub;break;

case2:

sub=result-sub;break;

case3:

sub=result*sub;break;

case4:

{

if(sub==0)

{

MessageBox("除数不能为0!

请重新输入.");

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;//control回到初值

return;

}

else

{sub=result/sub;break;}

}

}

switch(math)

{

case0:

MessageBox("计算三角函数前请选择单位制!

");return;

case1:

break;

case2:

sub=(sub*pi)/180;break;

}

result=sin(sub);

chared[50];

_gcvt(result,50,ed);

m_Edit1.SetWindowText(ed);

Num='';

control=0;

UpdateData(FALSE);

}

voidCCalculatorDlg:

:

OnArcsin()//arcsin函数计算的实现

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charcs[30];

doublesub;

m_Edit1.GetWindowText(cs,30);

sub=atof((LPCTSTR)cs);

switch(control)//先进行判断之前是否有简单运算

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2