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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作品:科学计算器

作者:欧宗龙

编写环境:vc++6.0

语言:c

#include "stdafx.h"

#include

#include

#include

#include "resource.h"

#include "MainDlg.h"

#include

#include

#define PI 3.141593

BOOL A_Op=FALSE;

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

switch(uMsg)

{

HANDLE_MSG(hWnd, WM_INITDIALOG, 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 lParam)

{

return TRUE;

}

void TrimNumber(char a[])//判断并删除小数点后无用的零

{

for(unsigned i=0;i

{

if(a[i]=='.')

{

for(unsigned j=strlen(a)-1;j>=i;j--)

{

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

{

a[j]='\0';

}

else if(a[j]=='.')

{

a[j]='\0';

}

else break;

}

}

}

}

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=='^')

{

n2=pow(n1,n2);

}

return n2;

}

////////////////////////

////////////////////////

void IntBinary(char a[],int n)

{

if(n>1)IntBinary(a,n/2);

sprintf(a,"%s%i",a,n%2);

}

void decimal(char a[],double m)

{

if(m>0.000001)

{

m=m*2;

sprintf(a,"%s%d",a,(long)m);

decimal(a,m-(long)m);

}

}

void Binary(char a[],double Num)

{

char DecP[256]="";

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

static char str[256];

static char Operator='0';

static double RNum[3];

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

RNum[1]=atof(str);

A_Op=FALSE;

}

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

RNum[1]=atof(str);

A_Op=FALSE;

}

break;

case IDC_BUTTONN3://数字3

{

if(A_Op)

{

SetDlgItemText(hwnd,IDC_EDIT,NULL);

}

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

strcat(str,"3");

SetDlgItemText(hwnd,IDC_EDIT,str);

RNum[1]=atof(str);

A_Op=FALSE;

相关文档
最新文档