计算器c源代码Word文档下载推荐.docx
- 文档编号:18493159
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:17
- 大小:16.49KB
计算器c源代码Word文档下载推荐.docx
《计算器c源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算器c源代码Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
{
switch(uMsg)
{
HANDLE_MSG(hWnd,WM_INITDIALOG,Main_OnInitDialog);
HANDLE_MSG(hWnd,WM_COMMAND,Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE,Main_OnClose);
}
returnFALSE;
}
BOOLMain_OnInitDialog(HWNDhwnd,HWNDhwndFocus,LPARAMlParam)
{
returnTRUE;
voidTrimNumber(chara[])//判断并删除小数点后无用的零
for(unsignedi=0;
i<
strlen(a);
i++)
if(a[i]=='
.'
)
{
for(unsignedj=strlen(a)-1;
j>
=i;
j--)
{
if(a[j]=='
0'
{
a[j]='
\0'
;
}
elseif(a[j]=='
elsebreak;
}
}
doubleOperate(charOperator,doublen1,doublen2)//判断符号,进行相应的运算
if(Operator=='
if(Operator=='
+'
n2+=n1;
-'
n2=n1-n2;
*'
n2*=n1;
/'
n2=n1/n2;
^'
n2=pow(n1,n2);
returnn2;
////////////////////////
voidIntBinary(chara[],intn)
if(n>
1)IntBinary(a,n/2);
sprintf(a,"
%s%i"
a,n%2);
voiddecimal(chara[],doublem)
if(m>
0.000001)
m=m*2;
%s%d"
a,(long)m);
decimal(a,m-(long)m);
voidBinary(chara[],doubleNum)
charDecP[256]="
"
doublex,y;
double*iptr=&
y;
x=modf(Num,iptr);
decimal(DecP,x);
IntBinary(a,(int)y);
strcat(a,"
."
);
strcat(a,DecP);
////////////////////////////////////
voidMain_OnCommand(HWNDhwnd,intid,HWNDhwndCtl,UINTcodeNotify)
staticDELTIMES=0;
staticcharstr[256];
staticcharOperator='
staticdoubleRNum[3];
switch(id)
caseIDC_BUTTONN1:
//数字1
if(A_Op)
SetDlgItemText(hwnd,IDC_EDIT,NULL);
GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));
strcat(str,"
1"
SetDlgItemText(hwnd,IDC_EDIT,str);
RNum[1]=atof(str);
A_Op=FALSE;
break;
caseIDC_BUTTONN2:
//数字2
2"
caseIDC_BUTTONN3:
//数字3
3"
caseIDC_BUTTONN4:
//数字4
4"
caseIDC_BUTTONN5:
//数字5
5"
caseIDC_BUTTONN6:
//数字6
6"
caseIDC_BUTTONN7:
//数字7
7"
caseIDC_BUTTONN8:
//数字8
8"
caseIDC_BUTTONN9:
//数字9
9"
caseIDC_BUTTONN0:
//数字0
0"
case
if(DELTIMES==0)
DELTIMES++;
caseIDC_BUTTONADD:
//加法运算
RNum[0]=RNum[1];
RNum[1]=RNum[2];
RNum[2]=Operate(Operator,RNum[1],RNum[0]);
sprintf(str,"
%f"
RNum[2]);
TrimNumber(str);
SetDlgItemText(hwnd,IDC_EDIT,str);
Operator='
DELTIMES=0;
A_Op=TRUE;
caseIDC_BUTTONSUB:
//减法运算
A_Op=TRUE;
caseIDC_BUTTONMUL:
//乘法运算
caseIDC_BUTTONDIV:
//除法运算
case
{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));
break;
caseIDC_BUTTONPI:
//圆周率PI,弧度
GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));
if(atof(str)!
=0)
RNum[2]=atof(str)*PI;
sprintf(str,"
TrimNumber(str);
SetDlgItemText(hwnd,IDC_EDIT,str);
else
PI);
A_Op=TRUE;
caseIDC_BUTTONSQRT:
//开根号
RNum[2]=sqrt(atof(str));
sprintf(str,"
TrimNumber(str);
SetDlgItemText(hwnd,IDC_EDIT,str);
caseIDC_BUTTONSIN:
//三角函数sin函数
{
RNum[2]=sin(atof(str));
RNum[2]=cos(atof(str));
RNum[2]=tan(atof(str));
caseIDC_BUTTONSQ:
//平方
RNum[2]=atof(str)*atof(str);
RNum[2]=atof(str)*atof(str)*atof(str);
RNum[2]=exp(atof(str));
caseIDC_BUTTON10
RNum[2]=pow(10,atof(str));
caseIDC_BUTTONLN:
//lnx
RNum[2]=log(atof(str));
caseIDC_BUTTONLOG10:
//log10
RNum[2]=log10(atof(str));
caseIDC_BUTTONBINARY:
//十进制转换为二进制
chara[256]="
RNum[2]=atof(str);
Binary(a,RNum[2]);
strcpy(str,a);
Operator='
RNum[0]=RNum[1]=RNum[2]=0;
memset(str,0,sizeof(str));
SetDlgItemText(hwnd,IDC_EDIT,NULL);
inti=strlen(str);
str[i-1]='
break;
case
SetDlgItemText(hwn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算器 源代码