用c语言编写的计算器源代码.docx

上传人:b****7 文档编号:11103675 上传时间:2023-02-25 格式:DOCX 页数:12 大小:15.36KB
下载 相关 举报
用c语言编写的计算器源代码.docx_第1页
第1页 / 共12页
用c语言编写的计算器源代码.docx_第2页
第2页 / 共12页
用c语言编写的计算器源代码.docx_第3页
第3页 / 共12页
用c语言编写的计算器源代码.docx_第4页
第4页 / 共12页
用c语言编写的计算器源代码.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

用c语言编写的计算器源代码.docx

《用c语言编写的计算器源代码.docx》由会员分享,可在线阅读,更多相关《用c语言编写的计算器源代码.docx(12页珍藏版)》请在冰豆网上搜索。

用c语言编写的计算器源代码.docx

用c语言编写的计算器源代码

作者:

欧宗龙

编写环境:

vc++

语言:

c

#include""

#include<>

#include<>

#include<>

#include""

#include""

#include<>

#include<>

#definePI

BOOLA_Op=FALSE;

BOOLWINAPIMain_Proc(HWNDhWnd,UINTuMsg,WPARAMwParam,LPARAMlParam)

{

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(unsignedj=strlen(a)-1;j>=i;j--)

{

if(a[j]=='0')

{

a[j]='\0';

}

elseif(a[j]=='.')

{

a[j]='\0';

}

elsebreak;

}

}

}

}

doubleOperate(charOperator,doublen1,doublen2);

strcat(a,DecP);

}

;

}

DELTIMES++;

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=FALSE;

}

break;

caseIDC_BUTTONADD:

//加法运算

{

RNum[1]=atof(str);

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;

}

break;

caseIDC_BUTTONSUB:

//减法运算

{

RNum[1]=atof(str);

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);

DELTIMES=0;A_Op=TRUE;

Operator='-';

}

break;

caseIDC_BUTTONMUL:

//乘法运算

{

RNum[1]=atof(str);

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;

}

break;

caseIDC_BUTTONDIV:

//除法运算

{

RNum[1]=atof(str);

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;

}

break;

case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[1]=atof(str);

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;

}

break;

caseIDC_BUTTONPI:

//圆周率PI,弧度

{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

if(atof(str)!

=0)

{

RNum[2]=atof(str)*PI;

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

}

else

{

sprintf(str,"%f",PI);

SetDlgItemText(hwnd,IDC_EDIT,str);

}

A_Op=TRUE;

}

break;

caseIDC_BUTTONSQRT:

//开根号

{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=sqrt(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

caseIDC_BUTTONSIN:

//三角函数sin函数

{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=sin(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

case{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=cos(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

case{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=tan(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

caseIDC_BUTTONSQ:

//平方

{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=atof(str)*atof(str);

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

case{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=atof(str)*atof(str)*atof(str);

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

case{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=exp(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

caseIDC_BUTTON10{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=pow(10,atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

caseIDC_BUTTONLN:

//lnx

{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=log(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

caseIDC_BUTTONLOG10:

//log10

{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=log10(atof(str));

sprintf(str,"%f",RNum[2]);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

caseIDC_BUTTONBINARY:

//十进制转换为二进制

{

chara[256]="";

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[2]=atof(str);

Binary(a,RNum[2]);

strcpy(str,a);

TrimNumber(str);

SetDlgItemText(hwnd,IDC_EDIT,str);

A_Op=TRUE;

}

break;

case{

DELTIMES=0;

Operator='0';

RNum[0]=RNum[1]=RNum[2]=0;

memset(str,0,sizeof(str));

SetDlgItemText(hwnd,IDC_EDIT,NULL);

A_Op=FALSE;

}

break;

case{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

inti=strlen(str);

str[i-1]='\0';

SetDlgItemText(hwnd,IDC_EDIT,str);

}

break;

case{

GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));

RNum[1]=atof(str);

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='0';

DELTIMES=0;

}

break;

default:

break;

}

}

voidMain_OnClose(HWNDhwnd)

{

EndDialog(hwnd,0);

}

本人拙作,如有不足之处请谅解。

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

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

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

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