c简单计算器代码.docx
《c简单计算器代码.docx》由会员分享,可在线阅读,更多相关《c简单计算器代码.docx(20页珍藏版)》请在冰豆网上搜索。
c简单计算器代码
#include"stdafx.h"
#include
#include
#include
#include
#include"resource.h"
#include"MainDlg.h"
#include
TCHARnum[300];
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;
}
voidMain_OnCommand(HWNDhwnd,intid,HWNDhwndCtl,UINTcodeNotify)
{
switch(id)
{
caseIDC_OK:
{
//inta=1,i,b,l;
//doublen1,n2,n3;
//intc=3;
TCHARdo_make;
doublea,b,c;
TCHARnum1[300],numa[10],numb[10];
GetDlgItemText(hwnd,IDC_TEXT,num1,sizeof(num));
//MessageBox(hwnd,num1,"开始读出",MB_OK);
intlen=strlen(num1);
inti,k=0,n=0,m=0;
TCHARcm[2];
intz=10;
for(i=0;i<=len;i++){
if(m==0){
if(isdigit(num1[i])||num[i]=='.'||i==0){
numa[k++]=num1[i];
sprintf(cm,"%c",num[i]);
}else{
do_make=num1[i];
m=1;
}
}else{
numb[n++]=num1[i];
}
}
switch(do_make){
case'+':
{
a=atof(numa);
b=atof(numb);
c=a+b;
gcvt(c,z,numa);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'-':
{
a=atof(numa);
b=atof(numb);
c=a-b;
gcvt(c,z,numa);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'*':
{
a=atof(numa);
b=atof(numb);
c=a*b;
gcvt(c,z,numa);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'/':
{
a=atof(numa);
b=atof(numb);
c=a/b;
gcvt(c,z,numa);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'#':
{
a=atof(numa);
b=atof(numb);
ltoa(a,numa,b);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'$':
{
a=atoi(numa);
b=atoi(numb);
c=pow(a,b);
gcvt(c,z,numa);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'&':
{
inta,b;
a=atoi(numa);
b=atoi(numb);
c=a&b;
itoa(c,numa,10);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'|':
{
inta,b;
a=atoi(numa);
b=atoi(numb);
c=a|b;
itoa(c,numa,10);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'^':
{
inta,b;
a=atoi(numa);
b=atoi(numb);
c=a^b;
itoa(c,numa,10);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
case'~':
{
a=atoi(numa);
b=atoi(numb);
c=pow(a,1.0/b);
gcvt(c,z,numa);
SetDlgItemText(hwnd,IDC_TEXT,numa);
}
break;
}
/*
n1=atof(num1);
n2=atof(num2);
l=strlen(num1);
b=0;
for(i=0;iif(i>=1){
if(strcmp(num1+i,".")==0){
b=1;
}
if(!
isdigit(num1[i])){
if(b==1)
a=0;
}
}else{
if(!
isdigit(num1[i])){
a=0;
}
}
}
if(a){
b=0;
for(i=0;iif(i>=1){
if(strcmp(num2+i,".")==0){
b=1;
}
if(!
isdigit(num2[i])){
if(b==1)
a=0;
}
}else{
if(!
isdigit(num2[i])){
a=0;
}
}
}
}
if(!
a){
MessageBox(hwnd,TEXT("你输入了非法数字!
"),TEXT("错误"),MB_OK|MB_ICONSTOP);
}
else{
n3=n1+n2;
//ltoa()
//ltoa(n3,num3,16);
//wsprintf(num3,"%f",n3);
//MessageBox(hwnd,num3,num3,MB_OK);
gcvt(n3,c,num3);
SetDlgItemText(hwnd,IDC_NUM3,num3);
}*/
}
break;
caseIDC_NUM0:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s0",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM1:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s1",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM2:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s2",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM3:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s3",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM4:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s4",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM5:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s5",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM6:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s6",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM7:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s7",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM8:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s8",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_NUM9:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
wsprintf(num,"%s9",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_SUM:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='+'){
break;
}
wsprintf(num,"%s+",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_JIAN:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='-'){
break;
}
wsprintf(num,"%s-",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_SHEN:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='*'){
break;
}
wsprintf(num,"%s*",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_CHU:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='/'){
break;
}
wsprintf(num,"%s/",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_XIAO:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num),j;
inty=0;
if(num[i-1]=='.'||!
isdigit(num[i-1])){
break;
}
for(j=0;j
if(num[j]=='.')
y=1;
if(num[j]!
='.'&&!
isdigit(num[j]))
y=0;
}
if(y){
break;
}
wsprintf(num,"%s.",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_CLSE:
{
SetDlgItemText(hwnd,IDC_TEXT,"");
}
break;
caseIDC_BACK:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti,len;
len=strlen(num);
num[len-1]='\0';
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_CHANGE:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='#'){
break;
}
wsprintf(num,"%s#",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_PING:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='$'){
break;
}
wsprintf(num,"%s$",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_BING:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='&'){
break;
}
wsprintf(num,"%s&",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_HUO:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='|'){
break;
}
wsprintf(num,"%s|",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_YI:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='^'){
break;
}
wsprintf(num,"%s^",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_GENG:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
inti=strlen(num);
if(num[i-1]=='~'){
break;
}
wsprintf(num,"%s~",num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_BAS:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
n=abs(n);
gcvt(n,10,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_XIANG:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
if(n<=0){
n=abs(n);
}else{
n=n*(-1.0);
}
gcvt(n,10,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_SIN:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
n=sin(n*(3.1415926/180.0));
gcvt(n,2,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_COS:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
n=cos(n*(3.1415926/180.0));
gcvt(n,2,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_TAN:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
n=tan(n*(3.1415926/180.0));
gcvt(n,2,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_ASIN:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
n=asin(n)*(180.0/3.1415926);
gcvt(n,2,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_ACOS:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(num));
doublen;
n=atof(num);
n=acos(n)*(180.0/3.1415926);
gcvt(n,2,num);
SetDlgItemText(hwnd,IDC_TEXT,num);
}
break;
caseIDC_ATAN:
{
GetDlgItemText(hwnd,IDC_TEXT,num,sizeof(