c++实验报告Word格式.docx
《c++实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《c++实验报告Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
简易计算器的设计
二、功能
一个简单的计算器,具有加、减、乘、除、取正、取负、倒数,平方、开方等运算、三角函数、对数函数、退格功能和复位清零功能。
三、功能说明
用MFCAppWizard创建一个应用程序框架,添加一个编辑框用于显示,添加若干控件用来做数字的按键以及运算符的按键。
1.有0~9以及小数点共11个键用来输入数字进行运算。
2.其他键用来控制运算类型,有加、减、乘、除、取反、倒数、阶乘、开方、幂运算、正弦函数、对数函数运算。
为编辑框添加一个变量用于显示内容;
为每个控件添加一个BN_CLICKED消息映射,从而控制按键时显示的内容以及进行的运算类型。
ID号
标题
映射函数
说明
IDC_NUMBER10
OnNumber10()
按键”0”
IDC_NUMBER1
1
OnNumber1()
按键“1”
IDC_NUMBER2
2
OnNumber2()
按键“2”
IDC_NUMBER3
3
OnNumber3()
按键“3”
IDC_NUMBER4
4
OnNumber4()
按键“4”
IDC_NUMBER5
5
OnNumber5()
按键“5”
IDC_NUMBER6
6
OnNumber6()
按键“6”
IDC_NUMBER7
7
OnNumber7()
按键“7”
IDC_NUMBER8
8
OnNumber8()
按键“8”
IDC_NUMBER9
9
OnNumber9()
按键“9”
IDC_NUMBER15
+
OnPlus()
加法运算
IDC_NUMBER16
-
OnMinus()
减法运算
IDC_NUMBER14
*
OnMultipe()
乘法运算
IDC_NUMBER13
/
OnDivide()
除法运算
IDC_NUMBER19
倒数
OnDaoshu()
求倒数
IDC_NUMBER11
+/-
OnQufan()
取反键
IDC_NUMBER18
Sqar
OnKaifang()
开方运算
IDC_ln
ln
OnDuishu()
对数运算
IDC_sin
Sin
OnSin()
正弦运算
IDC_cos
cos
Oncos()
余弦运算
IDC_lg
lg
Onlg()
10底对数运算
IDC_NUMBER20
=
OnEqual()
等于
IDC_NUMBER17
退格
OnDelete()
退格键
voidCCalculatorDlg:
:
OnNumber1()//1
{
if(decimal==1)
{
data_dec=data_dec+1/count;
count=10*count;
}
Elsedata_int=10*data_int+1;
value=data_int+data_dec;
m_show=value;
UpdateData(FALSE);
}
该函数是实现了数值1的控件,其他的数值是一样的原理,当控件上按任意控件时,就会在编辑上显示该数值。
OnNumber11()//取反
value=-value;
输入任意数值时,当按“+/-”控件时,就会显示出数字的相反数。
OnNumber12()//x2
decimal=1;
data1=value;
decimal=0;
data_int=0;
data_dec=0;
count=10;
type=6;
}
先输入任意数值,当按“x^2”控件时,显示数值的平方数。
OnNumber13()///
decimal=0;
type=3;
先输入任意两数值,当按“/”控件时,就会进行两数的除法运算。
OnNumber14()//*
type=2;
先输入任意两数值,当按“*”控件时,就会进行两数的乘法运算。
OnNumber15()//+
type=0;
先输入任意两数值,当按“+”控件时,就会进行两数的加法运算。
OnNumber16()//-
type=1;
先输入任意两数值,当按“—”控件时,就会进行两数的减法运算。
OnNumber17()//清零
data2=0;
data1=0;
value=0;
当想重新输入数值时,按“C”控件,就会全部归零,可以重新输入或计算。
OnNumber18()//开方
type=4;
if(data1<
0)
MessageBox("
负数不能开平方根!
"
);
else
value=sqrt(data1);
先输入任意数值,按“sqrt”控件时,当你输入的数值为负数,就不能显示结果,当为正数,就会显示开放后的数值。
OnNumber19()//倒数
type=5;
if(data1==0)
0不能取倒数!
value=1/data1;
先输入任意数值,当按“1/X”控件时,就会对该数进行倒数的运算。
OnNumber20()//等于
data2=value;
switch(type)
case0:
value=data1+data2;
break;
case1:
value=data1-data2;
case2:
value=data1*data2;
case3:
if(data2==0)
0不能为除数!
value=data1/data2;
case4:
case5:
case6:
当计算的时候涉及到多个数进行运算时,就会需要按控件“=”来得出结果。
Oncos()
value=cos(data1*3.1425926/180);
对输入的数值进行余弦运算。
Onsin()
value=sin(data1*3.1415926/180);
对输入的数值进行正弦运算。
Onlg()//十为底对数
负数不能取对数!
value=log10(data1);
对输入的数值进行以十位为底的对数运算。
Onln()//自然数为底的对数
负数不能对数!
value=log(data1);
对输入的数值进行以自然数为底的对数运算。
测试按键显示功能,如图所示输入95624
测试加减乘除运算,结果如图所示是进行乘法95*76,得到结果为,经验证7220结果正确
倒数运算,如图所示为6的倒数,结果为0.166666666,经验证是正确的;
测试开方,图中所示为4的2次方,结果为2
测试对数函数,图中所示为求ln5,结果为1.6094…