MFC计算器主要代码(C)

合集下载

简易计算器C语言代码

简易计算器C语言代码

简易四则运算计算器计算机工具地历史而言,中国古代最早采用地一种计算工具叫筹策,又叫做算筹,这种算筹多用竹子制成,也有用木头,兽骨充当材料的,大约270枚一束,放在布袋里可随身携带。

直到今天仍在使用的住算盘,是中国古代计算工具领域中的另一项发明明代时的住算盘已经与现代的住算盘几乎相同。

17世纪初,西方国家的计算工具有了较大的发展。

英国数学家纳尔发现了“纳皮尔算筹”;英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘涂,乘方和开方运算,甚至可以计算三角函数,指数函数和对数函数。

这些计算工具不仅带动了计算的发展,也为现代计算器发展尊定了良好的基础,成为现代社会应用广泛的计算工具,如手机,操作系统上附带的多功能计算器。

项目设计目的掌握模块的划分;掌握结构体定义;掌握栈的操作;掌握函数的定义;掌握栈的基本操作;掌握VC的基本绘图库;掌握鼠标的响应操作;目设计内容设计一个含有界面的计算器,输入一个包含括号的表达式,使用栈数据类型实现整数的四则运算操作,开方运算。

项目设计要求根据分析,系统要求实现以下几点基本功能:可通过按钮输入数字、运算符;能通过按钮实现退格、清除功能;实现加、减、乘、除、开方运算功能;实现括号运算;显示运算结果;良好的交互界面。

项目详细设计功能模块图根据系统功能要求,主要含有四大模块,分别是计算器界面设计模块、计算器按键控制模块、四则混合运算模块、计算器记忆处理模块。

计算器界面设计模块:调用VC图形系统函数和字符函数画出计算器的界面,包括24个按钮和一个文本输入框。

计算机按键控制模块:计算器通过键盘按键值的判断,执行相应的操作,如接收数字输入等。

计算器计算处理模块。

计算处理模块主要完成可以包括括号的表达式运算,运算包括加,减,乘,除、开方。

计算处理模块在按键控制模块中被调用执行。

处理模块是通过栈来实现的,分别定义了两个顺序栈,一个用来存放操作符栈,一个用来存放操作数栈。

计算器记忆处理模块。

c面向对象程序设计MFC简单计算器实验报告

c面向对象程序设计MFC简单计算器实验报告

c面向对象程序设计M F C简单计算器实验报告Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#计算机与信息工程学院《程序设计基础》课程设计报告题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东学生学号:专业班级:电子信息工程(1)班指导教师:高攀1 课程设计的题目编写一个能实现简单功能的计算器2 题目要求1. 有一个计算器图形。

2. 能实现加、减、乘、除及乘方的运算。

3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色例如:输入数字1 时,在计算器图形上的1键变为红色。

4. 屏幕、图形颜色、形状自定3 总体设计总体框架图1 系统框架系统功能说明在VC++中绘制计算器界面,各控件的设置对0~9控件设定相应的ID和其他属性:图2 “1”控件设置对“+、-、*、\”控件设定相应的ID和其他属性:图2 “+”控件设置对其它控件设定相应的ID和其他属性:图3 其它控件设置主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。

拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。

4 程序详细设计系统主调模块图5 程序流程图各模块详细设计建立的变量,控件的命名,对应的消息处理函数对应表double poz; 按钮的处理函数void CCalcDlg::OnPt(){point_flag=TRUE; && buffer[i+1]==0)之前那位}m_Dis=strtod(buffer,NULL);整个大的程序的实现分8个功能,每个功能都通过一个相应的函数来实现.在调试时分别进行调试,使得调试更方便些.在编写各个函数只是按着题目要求的去完成,后来经指导老师指导后,发现了很多自己欠缺的地方,又一次将程序整体进行调试.最后把程序完善了许多。

简易计算器代码

简易计算器代码
connect(button[9],SIGNAL(clicked()),this,SLOT(setOper()));
button[10] = new QPushButton(buttontext[10],this,buttontext[10]); // “—”
button[10]->setFixedSize(BUTTONWIDTH,BUTTONHEIGHT);
edit->setText(tr("%1").arg(0)); //这个函数可获取文本编辑框中光标的位置,并显示在状态栏中
//setText(tr(“%1行%2列”).arg(rowNum).arg(colNum));
initialize(); //调用初始化函数
}
void CWidget::initialize()
cwidget.cpp
#include "cwidget.h"
#define KEY_CLR "CLR"
#define KEY_ADD "+"
#define KEY_SUB "-"
#define KEY_MUL "*"
#define KEY_DIV "/"
#define KEY_EQ "="
#define KEY_0 "0"
{
delete edit;
delete *button;
delete mainLayout;
delete topLayout;
delete bottomLayout;
}
void CWidget::calculate() //响应按键“=”,调用计算功能

mfc单屏计算器

mfc单屏计算器

增加参数int m_nNum1; 保存“运算符+”前的数值int m_nNum2; 保存“运算符+”后的数值CString m_strNowNum; 保存当前的字符串CString m_strTem; 保存“运算符+”前多字符串CString m_strNum2; 保存“运算符+”后的字符串bool m_IsAdd; 是否运算符CEdit m_edit; 编辑框对象#include "Shlwapi.h" 不能少添加相应的lib 工程-设置-连接-Object/library modules添加函数void CCaLculatorrDlg::OnButton10() //num 0{// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='0';m_strTem=m_strNowNum;}else{m_strNum2+='0';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton1(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='1';m_strTem=m_strNowNum;}else{m_strNum2+='1';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton11() //+{// TODO: Add your control notification handler code here m_IsAdd=!m_IsAdd;}void CCaLculatorrDlg::OnButton12() //={// TODO: Add your control notification handler code here m_nNum1=StrToInt((LPCTSTR)m_strTem);m_nNum2=StrToInt((LPCTSTR)m_strNowNum);m_strNowNum.Format("%d",m_nNum1+m_nNum2);UpdateData(false);}void CCaLculatorrDlg::OnButton2(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='2';m_strTem=m_strNowNum;}else{m_strNum2+='2';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton3(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='3';m_strTem=m_strNowNum;}else{m_strNum2+='3';m_strNowNum=m_strNum2;UpdateData(false);}void CCaLculatorrDlg::OnButton4(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='4';m_strTem=m_strNowNum;}else{m_strNum2+='4';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton5(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='5';m_strTem=m_strNowNum;}else{m_strNum2+='5';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton6(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='6';m_strTem=m_strNowNum;}{m_strNum2+='6';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton7(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='7';m_strTem=m_strNowNum;}else{m_strNum2+='7';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton8(){// TODO: Add your control notification handler code here if(!m_IsAdd){m_strNowNum+='8';m_strTem=m_strNowNum;}else{m_strNum2+='8';m_strNowNum=m_strNum2;}UpdateData(false);}void CCaLculatorrDlg::OnButton9(){// TODO: Add your control notification handler code here if(!m_IsAdd)m_strNowNum+='9';m_strTem=m_strNowNum;}else{m_strNum2+='9';m_strNowNum=m_strNum2;}UpdateData(false);}当然你需要进一步优化添加- * / 等∙如果你添加这些只需把m_IsAdd 变为m_Is OPerator∙因为现在需要在点击运算符前显示数字1 点击运算符后显示数字2 点击等号后显示最终结果计算器不就这样吗?如果没记错的话CalculatorDlg。

MFC计算器

MFC计算器

《C++面向对象程序设计》实验报告学院:信息科学与工程学院专业:学号:姓名:一.题目:利用MFC框架编写Windows附件中所示的简易计算器二.功能描述:1.能够实现最基本的加,减,乘,除四则基本运算。

2.界面有清空,退格按钮,方便用户计算使用。

3.此计算器具有开方,取倒数,求对数的高级运算。

三.概要设计:1.Windows消息处理机制通过对教材的阅读,对Windows程序的消息处理机制有个大致的了解。

Windows的程序都是通过消息来传送数据,并且存在异常处理等不需要用户参与的系统消息,用户消息就是鼠标的单击,双击等。

2.界面的设计如图,简易的计算器界面主要使用菜单中相关控件,并合理的布置各个按钮的位置,使得界面让用户看起来整洁简单。

3.框架描述Windows 简易计算器在资源视图画好界面添加控件的同时,通过属性修改名称为各个按钮和编辑框添加不同的函数四则运算+,-,*,/ 1/x,lgx等函数退格和清空键4.建立的变量和控件的命名,对应的消息处理函数命名表ID CAPTION Message Handler IDC_BUTTON0 0 OnButton0()IDC_BUTTON1 1 OnButton1()IDC_BUTTON2 2 OnButton2()IDC_BUTTON3 3 OnButton3()IDC_BUTTON4 4 OnButton4()IDC_BUTTON5 5 OnButton5()IDC_BUTTON6 6 OnButton6()IDC_BUTTON7 7 OnButton7()IDC_BUTTON8 8 OnButton8()IDC_BUTTON9 9 OnButton9()IDC_BUTTON10 . OnButton11()IDC_BUTTON11 = OnButtonequal() IDC_BUTTON12 + OnButtonadd()IDC_BUTTON13 - OnButtoncut()IDC_BUTTON14 * OnButtonmultiply() IDC_BUTTON15 / OnButtonremove() IDC_BUTTON16 1/x OnButton1x()IDC_BUTTON17 lg OnButtonlg()IDC_BUTTON18 sqrt OnButtonsqrt()IDC_BUTTON19 Backspace OnButtonbackspace() IDC_BUTTON20 C(清空) OnButtonclear()5.下图是基本对话框中所有的类四.详细设计:1.新建工程,选择MFC AppWizard[exe],并命名工程的名称为mycalculator2.选择基本对话框3.通过控件添加各种按钮和编辑框(对话框右边的“Controls”控件箱提供了可用于对话框的各种组建,在此次计算器中,基本上只用到上面四个控件,对话框只能通过控件来实现它们的功能,把控件中的数据保存在对话框类的数据成员中,应用程序才能通过这些数据成员获取控件中的数据)4.考虑用户们的习惯,把编辑框的显示的数字属性由靠左改成靠右(选中编辑框,右击选择属性-样式,排列文本改为向左)5.用同样的方法改变按钮的标题,其他按钮同理6.为美观改变对话框的标题为“计算器”7.右击编辑框添加类向导,添加变量m_result,且type为CString//可通过其改变类型和名称8.实现每个按钮的功能,双击按钮,为按钮添加函数,可以改变函数的名称① 0~9和小数点的函数大致类似void CMycalculatorDlg::OnButton1(){// TODO: Add your control notification handler code herem_result +=_T("1");UpdateData(FALSE);}函数_T()可以对字符串进行操作,UpdateData(FALSE)可以把数据传到文本框里面,小数点与数字同样这样处理。

计算器编程c语言

计算器编程c语言

计算器编程 c语言用C语言设计计算器程序源代码#include <dos.h> /*DOS接口函数*/#include <math.h> /*数学函数的定义*/#include <conio.h> /*屏幕操作函数*/函数*/#include <stdio.h> /*I/O#include <stdlib.h> /*库函数*/变量长度参数表*/#include <stdarg.h> /*图形函数*/#include <graphics.h> /*字符串函数*/#include <string.h> /*字符操作函数*/#include <ctype.h> /*#define UP 0x48 /*光标上移键*/#define DOWN 0x50 /*光标下移键*/#define LEFT 0x4b /*光标左移键*/#define RIGHT 0x4d /*光标右移键*/#define ENTER 0x0d /*回车键*/void *rar; /*全局变量,保存光标图象*/使用调色板信息*/struct palettetype palette; /*int GraphDriver; /* 图形设备驱动*/int GraphMode; /* 图形模式值*/int ErrorCode; /* 错误代码*/int MaxColors; /* 可用颜色的最大数值*/int MaxX, MaxY; /* 屏幕的最大分辨率*/double AspectRatio; /* 屏幕的像素比*/void drawboder(void); /*画边框函数*/初始化函数*/void initialize(void); /*计算器计算函数*/void computer(void); /*改变文本样式函数*/ void changetextstyle(int font, int direction, int charsize); /*窗口函数*/void mwindow(char *header); /*/*获取特殊键函数*/int specialkey(void) ;设置箭头光标函数*//*int arrow();/*主函数*/int main(){设置系统进入图形模式 */initialize();/*运行计算器 */computer(); /*系统关闭图形模式返回文本模式*/closegraph();/*/*结束程序*/return(0);}/* 设置系统进入图形模式 */void initialize(void){int xasp, yasp; /* 用于读x和y方向纵横比*/GraphDriver = DETECT; /* 自动检测显示器*/initgraph( &GraphDriver, &GraphMode, "" );/*初始化图形系统*/ErrorCode = graphresult(); /*读初始化结果*/如果初始化时出现错误*/if( ErrorCode != grOk ) /*{printf("Graphics System Error: %s\n",显示错误代码*/grapherrormsg( ErrorCode ) ); /*退出*/exit( 1 ); /*}getpalette( &palette ); /* 读面板信息*/MaxColors = getmaxcolor() + 1; /* 读取颜色的最大值*/MaxX = getmaxx(); /* 读屏幕尺寸 */MaxY = getmaxy(); /* 读屏幕尺寸 */getaspectratio( &xasp, &yasp ); /* 拷贝纵横比到变量中*/计算纵横比值*/ AspectRatio = (double)xasp/(double)yasp;/*}/*计算器函数*/void computer(void){定义视口类型变量*/struct viewporttype vp; /*int color, height, width;int x, y,x0,y0, i, j,v,m,n,act,flag=1;操作数和计算结果变量*/float num1=0,num2=0,result; /*char cnum[5],str2[20]={""},c,temp[20]={""};定义字符串在按钮图形上显示的符号 char str1[]="1230.456+-789*/Qc=^%";/**/mwindow( "Calculator" ); /*显示主窗口 */设置灰颜色值*//*color = 7;getviewsettings( &vp ); /* 读取当前窗口的大小*/width=(vp.right+1)/10; /* 设置按钮宽度 */设置按钮高度 */height=(vp.bottom-10)/10 ; /*/*设置x的坐标值*/x = width /2;设置y的坐标值*/y = height/2; /*setfillstyle(SOLID_FILL, color+3);bar( x+width*2, y, x+7*width, y+height );/*画一个二维矩形条显示运算数和结果*/setcolor( color+3 ); /*设置淡绿颜色边框线*/rectangle( x+width*2, y, x+7*width, y+height );/*画一个矩形边框线*/设置颜色为红色*/setcolor(RED); /*输出字符串"0."*/outtextxy(x+3*width,y+height/2,"0."); /*/*设置x的坐标值*/x =2*width-width/2;设置y的坐标值*/y =2*height+height/2; /*画按钮*/for( j=0 ; j<4 ; ++j ) /*{for( i=0 ; i<5 ; ++i ){setfillstyle(SOLID_FILL, color);setcolor(RED);bar( x, y, x+width, y+height ); /*画一个矩形条*/rectangle( x, y, x+width, y+height );sprintf(str2,"%c",str1[j*5+i]);/*将字符保存到str2中*/outtextxy( x+(width/2), y+height/2, str2);移动列坐标*/x =x+width+ (width / 2) ;/*}y +=(height/2)*3; /* 移动行坐标*/x =2*width-width/2; /*复位列坐标*/}x0=2*width;y0=3*height;x=x0;y=y0;gotoxy(x,y); /*移动光标到x,y位置*/显示光标*/arrow(); /*putimage(x,y,rar,XOR_PUT);m=0;n=0;设置str2为空串*/strcpy(str2,""); /*当压下Alt+x键结束程序,否则执行下面的循环while((v=specialkey())!=45) /**/{当压下键不是回车时*/while((v=specialkey())!=ENTER) /*{putimage(x,y,rar,XOR_PUT); /*显示光标图象*/if(v==RIGHT) /*右移箭头时新位置计算*/if(x>=x0+6*width)如果右移,移到尾,则移动到最左边字符位置*//*{x=x0;m=0;}else{x=x+width+width/2;m++;否则,右移到下一个字符位置*/} /*if(v==LEFT) /*左移箭头时新位置计算*/if(x<=x0){x=x0+6*width;m=4;} /*如果移到头,再左移,则移动到最右边字符位置*/else{x=x-width-width/2;m--;} /*否则,左移到前一个字符位置*/if(v==UP) /*上移箭头时新位置计算*/if(y<=y0){y=y0+4*height+height/2;n=3;} /*如果移到头,再上移,则移动到最下边字符位置*/else{y=y-height-height/2;n--;} /*否则,移到上边一个字符位置*/if(v==DOWN) /*下移箭头时新位置计算*/if(y>=7*height){ y=y0;n=0;} /*如果移到尾,再下移,则移动到最上边字符位置*/else{y=y+height+height/2;n++;} /*否则,移到下边一个字符位置*/putimage(x,y,rar,XOR_PUT); /*在新的位置显示光标箭头*/ }将字符保存到变量c中*/c=str1[n*5+m]; /*判断是否是数字或小数点*/if(isdigit(c)||c=='.') /*{如果标志为-1,表明为负数*/if(flag==-1) /*{将负号连接到字符串中*/strcpy(str2,"-"); /*flag=1;} /*将标志值恢复为1*/将字符保存到字符串变量temp中*/ sprintf(temp,"%c",c); /*将temp中的字符串连接到str2中*/strcat(str2,temp); /*setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);显示字符串*/outtextxy(5*width,height,str2); /*}if(c=='+'){将第一个操作数转换为浮点数*/num1=atof(str2); /*将str2清空*/strcpy(str2,""); /*做计算加法标志值*/act=1; /*setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='-'){如果str2为空,说明是负号,而不是减号*/ if(strcmp(str2,"")==0) /*设置负数标志*/flag=-1; /*else{将第二个操作数转换为浮点数*/num1=atof(str2); /*将str2清空*/strcpy(str2,""); /*act=2; /*做计算减法标志值*/setfillstyle(SOLID_FILL,color+3);画矩形*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}}if(c=='*'){将第二个操作数转换为浮点数*/num1=atof(str2); /*strcpy(str2,""); /*将str2清空*/做计算乘法标志值*/act=3; /*setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width /2,3*height/2);显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='/'){将第二个操作数转换为浮点数*/num1=atof(str2); /*strcpy(str2,""); /*将str2清空*/做计算除法标志值*/act=4; /*setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0."); /*显示字符串*/}if(c=='^'){将第二个操作数转换为浮点数*/num1=atof(str2); /*将str2清空*/strcpy(str2,""); /*做计算乘方标志值*/act=5; /*设置用淡绿色实体填充*/ setfillstyle(SOLID_FILL,color+3); /*画矩形*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='%'){将第二个操作数转换为浮点数*/num1=atof(str2); /*strcpy(str2,""); /*将str2清空*/做计算模运算乘方标志值*/act=6; /*setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/画矩形*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='='){将第二个操作数转换为浮点数*/num2=atof(str2); /*根据运算符号计算*/switch(act) /*{case 1:result=num1+num2;break; /*做加法*/case 2:result=num1-num2;break; /*做减法*/case 3:result=num1*num2;break; /*做乘法*/case 4:result=num1/num2;break; /*做除法*/case 5:result=pow(num1,num2);break; /*做x的y次方*/case 6:result=fmod(num1,num2);break; /*做模运算*/ }设置用淡绿色实体填充*/ setfillstyle(SOLID_FILL,color+3); /*覆盖结果区*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*将结果保存到temp中*/sprintf(temp,"%f",result); /*outtextxy(5*width,height,temp); /*显示结果*/}if(c=='c'){num1=0; /*将两个操作数复位0,符号标志为1*/num2=0;flag=1;strcpy(str2,""); /*将str2清空*/设置用淡绿色实体填充*/ setfillstyle(SOLID_FILL,color+3); /*覆盖结果区*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}如果选择了q回车,结束计算程序*/if(c=='Q')exit(0); /*}putimage(x,y,rar,XOR_PUT); /*在退出之前消去光标箭头*/返回*/return; /*}/*窗口函数*/void mwindow( char *header ){int height;cleardevice(); /* 清除图形屏幕 */setcolor( MaxColors - 1 ); /* 设置当前颜色为白色*//* 设置视口大小 */ setviewport( 20, 20, MaxX/2, MaxY/2, 1 );height = textheight( "H" ); /* 读取基本文本大小 */settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*设置文本样式*/settextjustify( CENTER_TEXT, TOP_TEXT );/*设置字符排列方式*/输出标题*/outtextxy( MaxX/4, 2, header ); /*setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); /*设置视口大小*/ 画边框*/drawboder(); /*}画边框*/void drawboder(void) /*{定义视口类型变量*/struct viewporttype vp; /*setcolor( MaxColors - 1 ); /*设置当前颜色为白色 */setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*设置画线方式*/将当前视口信息装入vp所指的结构中*/getviewsettings( &vp );/*画矩形边框*/rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*}/*设计鼠标图形函数*/int arrow(){int size;定义多边形坐标*/int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*设置填充模式*/setfillstyle(SOLID_FILL,2); /*/*画出一光标箭头*/fillpoly(8,raw);测试图象大小*/size=imagesize(4,4,16,16); /*分配内存区域*/rar=malloc(size); /*存放光标箭头图象*/getimage(4,4,16,16,rar); /*putimage(4,4,rar,XOR_PUT); /*消去光标箭头图象*/return 0;}/*按键函数*/int specialkey(void){int key;等待键盘输入*/while(bioskey(1)==0); /*key=bioskey(0); /*键盘输入*/只取特殊键的扫描值,其余为0*/ key=key&0xff? key&0xff:key>>8; /*return(key); /*返回键值*/}。

C#科学计算器代码

C#科学计算器代码
this.button3.Enabled = true;
this.button2.Enabled = true;
this.buttonA.Enabled = false;
this.buttonB.Enabled = false;
{
this.btn_per.Enabled = false;
this.btn_e.Enabled = false;
this.btn_down.Enabled = false;
this.btn_log.Enabled = false;
this.buttonC.Enabled = false;
this.buttonD.Enabled = false;
this.buttonE.Enabled = false;
this.buttonF.Enabled = false;
科学型:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
d2 = System.Convert.ToString(d1, 16);
txt_Result.Text = d2.ToString();
}
else if (this.rBtn2.Checked)//十进制转换二进制
d1 = (int)a;
d2 = System.Convert.ToString(d1, 8);

visual 2015 mfc 计算器 代码

visual 2015 mfc 计算器 代码

以下是一个简单的 Visual Studio 2015 MFC 计算器的示例代码。

它包括两个窗口,一个用于输入和显示数字,另一个用于显示结果。

```cpp// MainFrm.cpp : implementation of the CMainFrame class //#include "pch.h"#include "framework.h"#include "Calculator.h"#include "MainFrm.h"#include "afxdialogex.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// CMainFrameIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)ON_WM_CREATE()ON_WM_DESTROY()ON_COMMAND(ID_APP_ABOUT,&CMainFrame::OnAppAbout)ON_COMMAND(ID_FILE_NEW, &CMainFrame::OnFileNew) ON_COMMAND(ID_FILE_EXIT, &CMainFrame::OnFileExit) ON_COMMAND(ID_EDIT_CLEAR,&CMainFrame::OnEditClear)ON_COMMAND(ID_EDIT_COPY,&CMainFrame::OnEditCopy)ON_COMMAND(ID_EDIT_PASTE,&CMainFrame::OnEditPaste)ON_COMMAND(ID_VIEW_SPLIT,&CMainFrame::OnViewSplit)ON_COMMAND(ID_VIEW_FULL,&CMainFrame::OnViewFull)ON_UPDATE_COMMAND_UI(ID_EDIT_CLEAR,&CMainFrame::OnUpdateEditClear)ON_UPDATE_COMMAND_UI(ID_EDIT_COPY,&CMainFrame::OnUpdateEditCopy)ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE,&CMainFrame::OnUpdateEditPaste)END_MESSAGE_MAP()static UINT indicators[] ={ID_SEPARATOR, // status line indicatorID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,};CMainFrame::CMainFrame() : CFrameWndEx(){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}CMainFrame::~CMainFrame(){}int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)return -1;// Create a view to host the client window. This object will be responsible for drawing the client area.// Set initial host view properties.CView* pView = new CView;if (!pView)return -1;pView->Create(_T("Calculator"), WS_CHILD | WS_VISIBLE | WS_BORDER | 500, CRect(0, 0, 200, 200), this);m_viewList.AddTail(pView);// m_pActiveView = pView;// m_bIsSplitterBar = TRUE;// m_bIsHorzSplit = TRUE;// m_bIsVerSplit = FALSE;// m_bIsDocTemplate = TRUE;// Create a toolbar control and initialize it.CToolBarCtrl mtbBarCtrl;// Create a command bar control and initialize it.CCommandBarCtrl commandBarCtrl; // Create a status bar control and initialize it. // Create a menu control and initialize it. CMenu menuBar;menuBar.CreateMenu();menuBar.AppendMenu(MF_POPUP, IDM_FILE, _T("&File"));menuBar.AppendMenu(MF_POPUP, IDM_EDIT, _T("&Edit")); menuBar.AppendMenu(MF_POPUP,IDM_VIEW, _T("&View")); menuBar.AppendMenu(MF_POPUP, IDM_INSERT, _T("&Insert")); menuBar.AppendMenu(MF_POPUP, IDM_FORMAT, _T("&Format")); menuBar.AppendMenu。

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

// Calculator_17483Dlg.cpp : implementation file//#include"stdafx.h"#include"Calculator_17483.h"#include"Calculator_17483Dlg.h"#include"afxdialogex.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogEx{public:CAboutDlg();// Dialog Dataenum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support// Implementationprotected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()// CCalculator_17483Dlg dialogCCalculator_17483Dlg::CCalculator_17483Dlg(CWnd* pParent/*=NULL*/): CDialogEx(CCalculator_17483Dlg::IDD, pParent){num1=0;num2=0;operation=0;point=0;nump_1=0;nump_2=0;m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CCalculator_17483Dlg::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CCalculator_17483Dlg, CDialogEx) ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1,&CCalculator_17483Dlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2,&CCalculator_17483Dlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3,&CCalculator_17483Dlg::OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON4,&CCalculator_17483Dlg::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5,&CCalculator_17483Dlg::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON6,&CCalculator_17483Dlg::OnBnClickedButton6) ON_BN_CLICKED(IDC_BUTTON7,&CCalculator_17483Dlg::OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON8,&CCalculator_17483Dlg::OnBnClickedButton8) ON_BN_CLICKED(IDC_BUTTON9,&CCalculator_17483Dlg::OnBnClickedButton9) ON_BN_CLICKED(IDC_BUTTON10,&CCalculator_17483Dlg::OnBnClickedButton10) ON_BN_CLICKED(IDC_BUTTON11,&CCalculator_17483Dlg::OnBnClickedButton11) ON_BN_CLICKED(IDC_BUTTON12,&CCalculator_17483Dlg::OnBnClickedButton12) ON_BN_CLICKED(IDC_BUTTON13,&CCalculator_17483Dlg::OnBnClickedButton13) ON_BN_CLICKED(IDC_BUTTON14,&CCalculator_17483Dlg::OnBnClickedButton14) ON_BN_CLICKED(IDC_BUTTON15,&CCalculator_17483Dlg::OnBnClickedButton15) ON_BN_CLICKED(IDC_BUTTON16,&CCalculator_17483Dlg::OnBnClickedButton16) ON_BN_CLICKED(IDC_BUTTON17,&CCalculator_17483Dlg::OnBnClickedButton17) END_MESSAGE_MAP()// CCalculator_17483Dlg message handlersBOOL CCalculator_17483Dlg::OnInitDialog(){CDialogEx::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herereturn TRUE; // return TRUE unless you set the focus to a control}void CCalculator_17483Dlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialogEx::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model,// this is automatically done for you by the framework.void CCalculator_17483Dlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND,reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialogEx::OnPaint();}}// The system calls this function to obtain the cursor to display while the user drags// the minimized window.HCURSOR CCalculator_17483Dlg::OnQueryDragIcon(){return static_cast<HCURSOR>(m_hIcon);}void CCalculator_17483Dlg::OnBnClickedButton13()//0{if(operation==0){num1=num1*10+0;string_num1.Format(_T("%d"),num1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+0;string_num2.Format(_T("%d"),num2);SetDlgItemTextW(IDC_EDIT2,string_num2);}// TODO: Add your control notification handler code here}//0void CCalculator_17483Dlg::OnBnClickedButton9()//1{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+1;//string_num1.Format(_T("%d"),num1);string_num1+="1";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+1;//string_num2.Format(_T("%d"),num2);string_num2+="1";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="1";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="1";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//1void CCalculator_17483Dlg::OnBnClickedButton10()//2{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+2;//string_num1.Format(_T("%d"),num1);string_num1+="2";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+2;//string_num2.Format(_T("%d"),num2);string_num2+="2";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="2";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="2";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//2void CCalculator_17483Dlg::OnBnClickedButton11()//3{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+3;//string_num1.Format(_T("%d"),num1);string_num1+="3";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+3;//string_num2.Format(_T("%d"),num2);string_num2+="3";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="3";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="3";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//3void CCalculator_17483Dlg::OnBnClickedButton5()//4{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+4;//string_num1.Format(_T("%d"),num1);string_num1+="4";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+4;//string_num2.Format(_T("%d"),num2);string_num2+="4";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="4";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="4";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//4void CCalculator_17483Dlg::OnBnClickedButton6()//5{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+5;//string_num1.Format(_T("%d"),num1);string_num1+="5";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+5;//string_num2.Format(_T("%d"),num2);string_num2+="5";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="5";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="5";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//5void CCalculator_17483Dlg::OnBnClickedButton7()//6{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+6;//string_num1.Format(_T("%d"),num1);string_num1+="6";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+6;//string_num2.Format(_T("%d"),num2);string_num2+="6";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="6";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="6";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//6void CCalculator_17483Dlg::OnBnClickedButton1()//7{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+7;//string_num1.Format(_T("%d"),num1);string_num1+="7";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="7";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="7";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="7";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//7void CCalculator_17483Dlg::OnBnClickedButton2()//8{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+8;//string_num1.Format(_T("%d"),num1);string_num1+="8";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+8;//string_num2.Format(_T("%d"),num2);string_num2+="8";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="8";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="8";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//8void CCalculator_17483Dlg::OnBnClickedButton3()//9{if(point==0){ //无T小?数ºy点Ì?if(operation==0){ //num1num1=num1*10+9;//string_num1.Format(_T("%d"),num1);string_num1+="9";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{num2=num2*10+9;//string_num2.Format(_T("%d"),num2);string_num2+="9";SetDlgItemTextW(IDC_EDIT2,string_num2);}}else{if(operation==0){float i;nump_1=num1;// for(i=0.7;nump_1>(int)nump_1;nump_1*10,i/10){}// nump_1=nump_1+i;string_num1+="9";// string_num1.Format(_T("%f"),nump_1);SetDlgItemTextW(IDC_EDIT1,string_num1);}else{// num2=num2*10+7;//string_num2.Format(_T("%d"),num2);string_num2+="9";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//9void CCalculator_17483Dlg::OnBnClickedButton4()//+{if(point==0){if(operation==0){SetDlgItemTextW(IDC_EDIT4,_T("+"));operation=1;}else{switch(operation){case 1:num1=num1+num2;break;case 2:num1=num1-num2;break;case 3:num1=num1*num2;break;case 4:num1=num1/num2;break;}num2=0;operation=1;string_num1.Format(_T("%d"),num1);SetDlgItemTextW(IDC_EDIT1,string_num1);string_num2.Format(_T("%d"),num2);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("+"));}}else{operation=1;point=0;// char*p1=(LPSTR)(LPCTSTR)string_num1;// char*p2=(LPSTR)(LPCTSTR)string_num2;SetDlgItemTextW(IDC_EDIT1,string_num1);SetDlgItemTextW(IDC_EDIT2,string_num2);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("+"));//int len=string_num1.GetLength();//intnbyte=WideCharToMultiByte(CP_ACP,0,string_num1,len,NULL,0,NUL L,NULL);//char *p=new char[nbyte+1];//memset(p,0,len+1);//WideCharToMultiByte(CP_OEMCP,0,string_num1,len,p,nbyte,N ULL,NULL);//p[nbyte]=0;//nump_1=atof(p);}// TODO: Add your control notification handler code here }//+void CCalculator_17483Dlg::OnBnClickedButton8()//-if(point==0){if(operation==0){SetDlgItemTextW(IDC_EDIT4,_T("-"));operation=2;}else{switch(operation){case 1:num1=num1+num2;break;case 2:num1=num1-num2;break;case 3:num1=num1*num2;break;case 4:num1=num1/num2;break;}num2=0;operation=2;string_num1.Format(_T("%d"),num1);SetDlgItemTextW(IDC_EDIT1,string_num1);string_num2.Format(_T("%d"),num2);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("-"));}}else{operation=2;point=0;// char*p1=(LPSTR)(LPCTSTR)string_num1;// char*p2=(LPSTR)(LPCTSTR)string_num2;SetDlgItemTextW(IDC_EDIT1,string_num1);SetDlgItemTextW(IDC_EDIT2,string_num2);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("-"));}// TODO: Add your control notification handler code here }//-void CCalculator_17483Dlg::OnBnClickedButton12()//* {if(point==0){if(operation==0){SetDlgItemTextW(IDC_EDIT4,_T("*"));operation=3;}else{switch(operation){case 1:num1=num1+num2;break;case 2:num1=num1-num2;break;case 3:num1=num1*num2;break;case 4:num1=num1/num2;break;}num2=0;operation=3;string_num1.Format(_T("%d"),num1);SetDlgItemTextW(IDC_EDIT1,string_num1);string_num2.Format(_T("%d"),num2);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("*"));}}else{operation=3;switch(operation){case 1:resultp=nump_1+nump_2;break;case 2:resultp=nump_1-nump_2;break;case 3:resultp=nump_1*nump_2;break;case 4:resultp=nump_1/nump_2;break;}point=0;// char*p1=(LPSTR)(LPCTSTR)string_num1;//char*p2=(LPSTR)(LPCTSTR)string_num2;SetDlgItemTextW(IDC_EDIT1,string_num1);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("*"));}// TODO: Add your control notification handler code here }//*void CCalculator_17483Dlg::OnBnClickedButton16()///{if(point==0){if(operation==0){SetDlgItemTextW(IDC_EDIT4,_T("/"));operation=4;}else{switch(operation){case 1:num1=num1+num2;break;case 2:num1=num1-num2;break;case 3:num1=num1*num2;break;case 4:num1=num1/num2;break;}num2=0;operation=4;string_num1.Format(_T("%d"),num1);SetDlgItemTextW(IDC_EDIT1,string_num1);string_num2.Format(_T("%d"),num2);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("/"));}}else{operation=4;point=0;// char*p1=(LPSTR)(LPCTSTR)string_num1;//char*p2=(LPSTR)(LPCTSTR)string_num2;SetDlgItemTextW(IDC_EDIT1,string_num1);SetDlgItemTextW(IDC_EDIT2,_T(""));SetDlgItemTextW(IDC_EDIT4,_T("/"));}// TODO: Add your control notification handler code here }///void CCalculator_17483Dlg::OnBnClickedButton14()//.{point_2=1;if(point==0){point=1;if(operation==0){string_num1+=".";SetDlgItemTextW(IDC_EDIT1,string_num1);}else{string_num2+=".";SetDlgItemTextW(IDC_EDIT2,string_num2);}}// TODO: Add your control notification handler code here }//.void CCalculator_17483Dlg::OnBnClickedButton15()//={if(point_2==0){switch(operation){case 1:result=num1+num2;break;case 2:result=num1-num2;break;case 3:result=num1*num2;break;case 4:result=num1/num2;break;}string_result.Format(_T("%d"),result);SetDlgItemTextW(IDC_EDIT3,string_result);}else{//char*p1=(LPSTR)(LPCTSTR)string_num1;//char*p2=(LPSTR)(LPCTSTR)string_num2;//char str1=(string_num1.GetBuffer());wchar_t*den=NULL;nump_1=wcstod(string_num1.GetBuffer(),&den);nump_2=wcstod(string_num2.GetBuffer(),&den);switch(operation){case 1:resultp=nump_1+nump_2;break;case 2:resultp=nump_1-nump_2;break;case 3:resultp=nump_1*nump_2;break;case 4:resultp=nump_1/nump_2;break;}string_result.Format(_T("%f"),resultp);SetDlgItemTextW(IDC_EDIT3,string_result);}num1=0;num2=0;result=0;operation=0;point=0;// TODO: Add your control notification handler code here }//=void CCalculator_17483Dlg::OnBnClickedButton17()//reset{num1=0;num2=0;result=0;operation=0;point=0;string_num1="";SetDlgItemTextW(IDC_EDIT1,_T(""));string_num2="";SetDlgItemTextW(IDC_EDIT2,_T(""));string_result="";SetDlgItemTextW(IDC_EDIT3,_T(""));SetDlgItemTextW(IDC_EDIT4,_T(""));// TODO: Add your control notification handler code here }//reset.。

相关文档
最新文档