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

上传人:re****.1 文档编号:512255125 上传时间:2023-03-19 格式:DOCX 页数:13 大小:58.75KB
返回 下载 相关 举报
用c语言编写的计算器源代码_第1页
第1页 / 共13页
用c语言编写的计算器源代码_第2页
第2页 / 共13页
用c语言编写的计算器源代码_第3页
第3页 / 共13页
用c语言编写的计算器源代码_第4页
第4页 / 共13页
用c语言编写的计算器源代码_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《用c语言编写的计算器源代码》由会员分享,可在线阅读,更多相关《用c语言编写的计算器源代码(13页珍藏版)》请在金锄头文库上搜索。

1、作品:科学计算器 作者:欧宗龙编写环境:VC+6.0 语言:c#include stdafx.h#include vstdio.h#include vwindows.h#include #include resource.h#include MainDlg.h#include #include #define PI 3.141593BOOL A_Op=FALSE;BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM IParam) switch(uMsg)HANDLE_MSG(hWnd, WM_INITDIALOG

2、Main_OnInitDialog);HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);return FALSE;BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM IParam) return TRUE;void TrimNumber(char a)判断并删除小数点后无用的零for(unsigned i=0;i=i;j-) if(aj=0) aj=0;else if(aj=.) aj=0;else break;

3、double Operate(char Operator,double n1,double n2) /判断符号,进行相应的运算if(Operator=0)if(Operator=+)n2+=n1;if(Operator=-)n2=n1-n2;if(Operator=*)n2*=n1;if(Operator=/)n2=n1/n2;if(Operator=A) n2=pow(n1,n2);return n2;/void IntBinary(char a,int n)if(n1)IntBinary(a,n/2);sprintf(a,%s%i,a,n%2);void decimal(char a,do

4、uble m)if(m0.000001)m=m*2;sprintf(a,%s%d,a,(long)m);decimal(a,m-(long)m);void Binary(char a,double Num)char DecP256=;double x,y;double *iptr=&y;x=modf(Num,iptr);decimal(DecP,x);IntBinary(a,(int)y);strcat(a,.);strcat(a,DecP);/void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)static

5、 DELTIMES=0;static char str256;static char Operator=0;static double RNum3; switch(id)case IDC_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);RNum1=atof(str); A_Op=FALSE;break;case IDC_BUTT0NN2

6、:数字 2if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); strcat(str,2);SetDlgItemText(hwnd,IDC_EDIT,str); RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTT0NN3:数字 3if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); strcat(st

7、r,3);SetDlgItemText(hwnd,IDC_EDIT,str); RNum1=atof(str);A_Op=FALSE; break;case IDC_BUTT0NN4:数字 4if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); strcat(str,4);SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE; break;case IDC_BUTT0NN5:数字 5if(A_Op)

8、SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); strcat(str,5);SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE; break;case IDC_BUTT0NN6:数字 6if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); strcat(str,6);SetDlgIte

9、mText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE; break;case IDC_BUTT0NN7:数字 7if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,7);SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTT0NN8:数字 8if(A_Op)SetDlgItemText(hwnd,

10、IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,8);SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTT0NN9:数字 9if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,9);SetDlgItemText(hwnd,IDC_EDIT,str);R

11、Num1=atof(str);A_Op=FALSE;break;case IDC_BUTTONNO:数字 0if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,0);SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONDEL:小数点.delif(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgIt

12、emText(hwnd,IDC_EDIT,str,sizeof(str); if(DELTIMES=0)strcat(str,.);DELTIMES+;SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=FALSE;break;case IDC_BUTTONADD:/加法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0); sprintf(str,%f,RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);

13、Operator=+;DELTIMES=0;A_Op=TRUE;break;case IDC_BUTTONSUB: /减法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,%f,RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);DELTIMES=0;A_Op=TRUE;Operator=-; break; case IDC_BUTTONMUL: /乘法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,%f,RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Op

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号