ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:16.49KB ,
资源ID:5505671      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5505671.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算器c源代码.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算器c源代码.docx

1、计算器c源代码作品:科学计算器 作者:欧宗龙编写环境:vc+6.0语言:c#include stdafx.h#include #include #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 lParam) switch(uMsg) HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnIni

2、tDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); return FALSE;BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) 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; dou

3、ble 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=) 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(

4、char a,double 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,

5、UINT codeNotify) static 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=FA

6、LSE; break; case IDC_BUTTONN2:/数字2 if(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_BUTTONN3:/数字3 if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,

7、IDC_EDIT,str,sizeof(str); strcat(str,3); SetDlgItemText(hwnd,IDC_EDIT,str); RNum1=atof(str); A_Op=FALSE; break; case IDC_BUTTONN4:/数字4 if(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=FA

8、LSE; break; case IDC_BUTTONN5:/数字5 if(A_Op) 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_BUTTONN6:/数字6 if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,

9、IDC_EDIT,str,sizeof(str); strcat(str,6); SetDlgItemText(hwnd,IDC_EDIT,str); RNum1=atof(str); A_Op=FALSE; break; case IDC_BUTTONN7:/数字7 if(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=FA

10、LSE; break; case IDC_BUTTONN8:/数字8 if(A_Op) SetDlgItemText(hwnd,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_BUTTONN9:/数字9 if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(hwnd,

11、IDC_EDIT,str,sizeof(str); strcat(str,9); SetDlgItemText(hwnd,IDC_EDIT,str); RNum1=atof(str); A_Op=FALSE; break; case IDC_BUTTONN0:/数字0 if(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=FA

12、LSE; break; case if(A_Op) SetDlgItemText(hwnd,IDC_EDIT,NULL); GetDlgItemText(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

13、,RNum0); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); 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

14、,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); Operator=*; DELTIMES=0; A_Op=TRUE; break; case IDC_BUTTONDIV: /除法运算 RNu

15、m1=atof(str); RNum0=RNum1; RNum1=RNum2; RNum2=Operate(Operator,RNum1,RNum0); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); Operator=/; DELTIMES=0; A_Op=TRUE; break; case GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum1=atof(str); RNum0=RNum1; RNum1=RNum2; RNum2=Operat

16、e(Operator,RNum1,RNum0); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); Operator=; DELTIMES=0; break; case IDC_BUTTONPI: /圆周率PI,弧度 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); if(atof(str)!=0) RNum2=atof(str)*PI; sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwn

17、d,IDC_EDIT,str); else sprintf(str,%f,PI); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case IDC_BUTTONSQRT: /开根号 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=sqrt(atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case IDC_BUTTONSIN

18、: /三角函数sin函数 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=sin(atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=cos(atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(

19、hwnd,IDC_EDIT,str); A_Op=TRUE; break; case GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=tan(atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case IDC_BUTTONSQ: /平方 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=atof(str)*atof(str); s

20、printf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=atof(str)*atof(str)*atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case GetDlgItemText(hwnd,ID

21、C_EDIT,str,sizeof(str); RNum2=exp(atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case IDC_BUTTON10 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=pow(10,atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str);

22、 A_Op=TRUE; break; case IDC_BUTTONLN: /ln x GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=log(atof(str); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case IDC_BUTTONLOG10: /log10 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=log10(atof(str)

23、; sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; break; case IDC_BUTTONBINARY: /十进制转换为二进制 char a256=; GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum2=atof(str); Binary(a,RNum2); strcpy(str,a); TrimNumber(str); SetDlgItemText(hwnd,IDC_EDIT,str); A_Op=TRUE; b

24、reak; case DELTIMES=0; Operator=0; RNum0=RNum1=RNum2=0; memset(str,0,sizeof(str); SetDlgItemText(hwnd,IDC_EDIT,NULL); A_Op=FALSE; break; case GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); int i=strlen(str); stri-1=0; SetDlgItemText(hwnd,IDC_EDIT,str); break; case GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str); RNum1=atof(str); RNum0=RNum1; RNum1=RNum2; RNum2=Operate(Operator,RNum1,RNum0); sprintf(str,%f,RNum2); TrimNumber(str); SetDlgItemText(hwn

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

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