作品:科学计算器
作者:欧宗龙
编写环境:vc++
语言:c
#include ""
#include <>
#include <>
#include <>
#include ""
#include ""
#include <>
#include <>
#define PI
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, MAND, mand);
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<strlen(a);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>)
{
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 mand(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");
SetDlg
用c语言编写的计算器源代码 来自淘豆网www.taodocs.com转载请标明出处.