简单计算器编程
- 格式:doc
- 大小:78.00 KB
- 文档页数:6
易语言编程案例易语言是一种简单易学的编程语言,适合初学者入门。
下面列举了十个易语言编程案例。
1. 计算器程序编写一个简单的计算器程序,用户输入两个数字和运算符,程序根据运算符进行加减乘除运算,并输出结果。
2. 游戏小程序编写一个简单的猜数字游戏,程序随机生成一个数字,用户输入猜测的数字,程序根据用户的猜测给出提示,直到用户猜对为止。
3. 文件读写程序编写一个文件读写程序,用户可以输入要写入文件的内容,程序将内容写入文件中,并可以读取文件内容输出到屏幕上。
4. 简单的图形绘制编写一个程序,可以绘制简单的图形,如直线、矩形、圆形等,用户可以通过输入参数来控制图形的大小和位置。
5. 简单的数据库管理程序编写一个简单的数据库管理程序,用户可以进行数据的增删改查操作,程序可以将数据存储在文件中,并提供相应的操作界面。
6. 网络爬虫程序编写一个网络爬虫程序,可以根据用户输入的网址获取网页的内容,并提取其中的信息,如标题、链接等。
7. 简单的人工智能程序编写一个简单的人工智能程序,可以回答用户的问题,如天气查询、词语翻译等,程序根据用户的输入给出相应的回答。
8. 图片处理程序编写一个图片处理程序,可以对图片进行简单的处理,如裁剪、缩放、旋转等操作,用户可以通过输入参数来控制处理的方式。
9. 简单的聊天机器人编写一个简单的聊天机器人程序,可以与用户进行对话,回答用户的问题,并提供相应的服务,如音乐播放、笑话讲述等。
10. 简单的音乐播放器编写一个简单的音乐播放器程序,用户可以选择要播放的音乐文件,程序可以播放音乐,并提供控制按钮,如播放、暂停、停止等。
以上是十个易语言编程案例,涵盖了许多常见的应用场景,可以帮助初学者熟悉易语言的基本语法和编程思想。
通过编写这些案例,初学者可以逐步提高自己的编程能力,掌握更多的编程技巧。
摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。
通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。
计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。
计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。
进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。
可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。
最后运行调试,实现基于MATLAB GUI的计算器的设计。
MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。
MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。
基于LABVIEW的简易计算器设计1.引言计算器是一种用于进行基本数学运算的设备或程序。
在本文中,将使用LABVIEW软件设计一个简单的计算器。
在这个计算器中,我们将实现加法、减法、乘法和除法运算,并且能够进行小数和负数的计算。
2.设计框图首先,我们将使用LABVIEW软件创建一个新的项目。
在项目中,我们将创建一个前面板和一个图表用于计算器的图形化表达。
在前面板中,我们将使用几个数字输入控件和一个字符串显示控件。
数字输入控件用于输入操作数和运算符,而字符串显示控件用于显示结果。
3.功能模块计算器的功能可以被分成几个独立的模块,包括数字输入、运算符输入和计算结果。
让我们详细了解每个模块的实现。
3.1.数字输入数字输入模块负责接收用户输入的操作数。
我们可以使用数字输入控件来获取用户输入的操作数并将其存储在内存变量中。
3.2.运算符输入运算符输入模块负责接收用户输入的运算符。
我们可以使用数字输入控件来获取用户输入的运算符并将其存储在内存变量中。
3.3.计算结果计算结果模块负责执行数学运算并将结果显示在字符串显示控件中。
我们可以使用数字输入变量和运算符变量来执行相应的计算操作。
4.程序实现在LABVIEW中,我们可以使用块图对上述功能模块进行编程。
以下是一个简单的程序实现示例:4.1.数字输入模块实现数字输入模块的实现非常简单。
我们只需要创建一个数字输入控件,并将其连接到数字输入变量。
这将使用户能够输入操作数。
4.2.运算符输入模块实现运算符输入模块的实现也很简单。
我们只需要创建一个数字输入控件,并将其连接到运算符输入变量。
这将使用户能够输入运算符。
4.3.计算结果模块实现计算结果模块的实现需要一些数学运算。
我们可以使用分支结构来根据用户输入的运算符执行相应的运算。
-如果运算符是加法,则将两个操作数相加。
-如果运算符是减法,则将第一个操作数减去第二个操作数。
-如果运算符是乘法,则将两个操作数相乘。
-如果运算符是除法,则将第一个操作数除以第二个操作数。
按键和液晶,可以组成我们最简易的计算器。
下面我们来写一个简易整数计算器提供给大家学习。
为了让程序不过于复杂,我们这个计算器不考虑连加,连减等连续计算,不考虑小数情况。
加减乘除分别用上下左右来替代,回车表示等于,ESC 表示归 0。
程序共分为三部分,一部分是 1602 液晶显示,一部分是按键动作和扫描,一部分是主函数功能。
/***************************Lcd1602.c 文件程序源代码*****************************/ #include <reg52.h>#define LCD1602_DB P0sbit LCD1602_RS = P1^0;sbit LCD1602_RW = P1^1;sbit LCD1602_E = P1^5;/* 等待液晶准备好 */void LcdWaitReady(){unsigned char sta;LCD1602_DB = 0xFF;LCD1602_RS = 0;LCD1602_RW = 1;do {LCD1602_E = 1;sta = LCD1602_DB; //读取状态字LCD1602_E = 0;} while (sta & 0x80); //bit7 等于 1 表示液晶正忙,重复检测直到其等于 0 为止}/* 向 LCD1602 液晶写入一字节命令,cmd-待写入命令值 */void LcdWriteCmd(unsigned char cmd){LcdWaitReady();LCD1602_RS = 0;LCD1602_RW = 0;LCD1602_DB = cmd;LCD1602_E = 1;LCD1602_E = 0;}/* 向 LCD1602 液晶写入一字节数据,dat-待写入数据值 */void LcdWriteDat(unsigned char dat){LcdWaitReady();LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_DB = dat;LCD1602_E = 1;LCD1602_E = 0;}/* 设置显示 RAM 起始地址,亦即光标位置,(xy)-对应屏幕上的字符坐标 */ void LcdSetCursor(unsigned char x unsigned char y){unsigned char addr;if (y == 0) //由输入的屏幕坐标计算显示 RAM 的地址addr = 0x00 + x; //第一行字符地址从 0x00 起始elseaddr = 0x40 + x; //第二行字符地址从 0x40 起始LcdWriteCmd(addr | 0x80); //设置 RAM 地址}/* 在液晶上显示字符串,(xy)-对应屏幕上的起始坐标,str-字符串指针 */ void LcdShowStr(unsigned char x unsigned char y unsigned char *str){LcdSetCursor(x y); //设置起始地址while (*str != '\0') //连续写入字符串数据,直到检测到结束符{LcdWriteDat(*str++);}}/* 区域清除,清除从(xy)坐标起始的 len 个字符位 */void LcdAreaClear(unsigned char x unsigned char y unsigned char len){LcdSetCursor(x y); //设置起始地址while (len--) //连续写入空格{LcdWriteDat(' ');}}/* 整屏清除 */void LcdFullClear(){LcdWriteCmd(0x01);}/* 初始化 1602 液晶 */void InitLcd1602(){LcdWriteCmd(0x38); //16*2 显示,5*7 点阵,8 位数据接口LcdWriteCmd(0x0C); //显示器开,光标关闭LcdWriteCmd(0x06); //文字不动,地址自动+1LcdWriteCmd(0x01); //清屏}Lcd1602.c 文件中根据上层应用的需要增加了2 个清屏函数:区域清屏——LcdAreaClear,整屏清屏——LcdFullClear。
简单计算器一、基本功能描绘二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算科学计算函数,包括( 反 ) 正弦、 ( 反) 余弦、 ( 反 ) 正切、 ( 反 ) 余切、开方、指数等函数运行以角度、弧度两种方式实现上述部分函数具备历史计算的记忆功能对不正确的表达式能指出其错误原因二、流程图输入数据子函数编写框关系变量m_num=0键入一个数N可否为正数?Ym_num m_num=10*m_num+i=10*m_num-i可否为小数?Y复原 m_numN依照小数点后位数将键入的数除以 n 次 10 累加到 m_numY连续键入数字?N用 UpdateData(FALSE) 刷新显示图 1 输入数据子函数流程图图 2三、设计步骤翻开 Microsoft Visual C++ 6.0 , 在文件中点击新建,在弹出框内选择MFC AppWizard[exe] 工程,输入工程名Calculter及其所在位置,点击确定,如图3所示。
将弹出这样,图 3 新建 MFC AppWizard[exe] 工程MFC AppWizard-step 1对话框,选择基本对话框,点击达成,如图图 4 基本对话框MFC AppWizard 就成立了一个鉴于对话窗口的程序框架,如图图 5 新建的对话框4 所示。
5 所示。
四、界面设计1、创立控件在图 5 所示的 Resoure View 选项卡中翻开Dialog 资源组,双击IDD_CALCULATOR_DIALOG,在右边的窗口中显示出待编写的对话框。
开始摆放控件,包括编写框和按钮的创立。
按钮的创立1)在图 5 中 Controls 的“编写框”按钮上单击鼠标左键,在对话框编写窗口上合适的地点按下鼠标左键并拖动鼠标画出一个大小合适的编写框。
在编写框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit 属性对话框,如图 6 所示,在该对话框中输入ID 属性。
基于单片机的简单计算器计算器是我们日常生活中常用的工具之一,用于进行各种数学运算。
在计算机科学领域,我们可以利用单片机来制作一个简单的计算器,以满足计算需求。
本文将介绍基于单片机的简单计算器的实现过程和相关原理。
一、项目概述我们将利用单片机的计算能力和显示功能来制作这个简单计算器。
用户可以通过按键来输入数字和运算符,计算器将会实时显示计算结果。
在本项目中,我们将使用8051系列单片机和LCD显示屏来实现这个计算器。
二、系统设计1.硬件设计本项目所需的硬件主要包括单片机、键盘和显示屏。
我们可以使用8051系列的单片机,例如AT89C52、键盘可以通过矩阵键盘来实现,显示屏采用16x2字符型LCD显示屏。
2.软件设计在单片机上实现计算器功能,我们需要编写相应的软件程序。
该程序主要包括以下几个部分:(1)初始化设置:设置单片机的IO口模式和状态,初始化LCD显示屏。
(2)键盘扫描:通过轮询方式检测键盘输入,获取用户按键信息。
(3)数字显示:将用户输入的数字显示在LCD屏幕上。
(4)运算处理:根据用户输入的数字和运算符进行相应的运算操作。
(5)结果显示:将运算结果显示在LCD屏幕上。
三、主要功能模块介绍1.初始化设置在初始化设置模块中,我们需要设置单片机的IO口模式和状态,将其中的一组IO口作为输入端口用于键盘扫描,另一组IO口作为输出端口用于LCD显示屏控制。
同时需要初始化LCD显示屏,使其处于工作状态。
2.键盘扫描键盘扫描模块需要使用IO口作为输入端口来检测键盘输入。
通过按下不同的按键,会在IO口上产生不同的信号。
我们可以使用轮询方式来检测IO口的状态,获取用户按键信息。
3.数字显示在数字显示模块中,我们需要将用户输入的数字显示在LCD屏幕上。
可以使用LCD显示屏的库函数来实现这个功能。
我们可以将用户输入的数字存储在内存中,并通过LCD库函数将其显示在屏幕上。
4.运算处理运算处理模块需要根据用户输入的数字和运算符进行相应的运算操作。
计算器编程 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); /*返回键值*/}。
编写一个简单的计算器程序计算器程序是一种非常实用的工具,它可以帮助我们进行数学计算,并简化复杂的运算过程。
本文将介绍如何编写一个简单的计算器程序,实现基本的加减乘除运算。
首先,我们需要确定计算器程序的功能和界面设计。
在本文中,我们将使用Python编程语言来编写计算器程序,并使用命令行界面(CLI)进行交互。
这意味着我们将在终端窗口中输入表达式,并显示结果。
接下来,我们需要考虑计算器程序的基本运算功能。
一个简单的计算器需要实现四个基本的运算:加法、减法、乘法和除法。
我们将使用函数来实现每个运算功能。
以下是一个示例代码:```pythondef add(x, y):return x + ydef subtract(x, y):return x - ydef multiply(x, y):return x * ydef divide(x, y):return x / y```在这个示例代码中,我们定义了四个函数,每个函数接受两个参数,并返回计算结果。
接下来,我们需要处理输入表达式并调用相应的运算函数。
我们将使用一个循环来持续接收用户输入,并在用户输入“exit”时退出程序。
以下是一个示例代码:```pythonwhile True:expression = input("请输入一个表达式:")if expression == "exit":break#解析表达式,提取运算符和操作数operator = Nonefor op in ["+", "-", "*", "/"]:if op in expression:operator = opbreakif not operator:print("表达式错误,请重新输入!") continueoperands = expression.split(operator) x = float(operands[0])y = float(operands[1])if operator == "+":result = add(x, y)elif operator == "-":result = subtract(x, y)elif operator == "*":result = multiply(x, y)elif operator == "/":result = divide(x, y)print("运算结果:", result)print("谢谢使用,再见!")```在这个示例代码中,我们使用了一个无限循环来持续接收用户输入。
简单计算器编程范文编写一个简单的计算器程序是一个很好的编程练习,可以帮助你理解控制流、函数和条件语句等编程概念。
以下是一个示例的计算器程序,使用Python编写:```pythondef add(x, y):"""相加"""return x + ydef subtract(x, y):"""相减"""return x - ydef multiply(x, y):"""相乘"""return x * ydef divide(x, y):"""相除"""if y == 0:raise ValueError("除数不能为零")return x / ydef calculator(:print("选择运算:")print("1. 相加")print("2. 相减")print("3. 相乘")print("4. 相除")choice = input("输入选择(1/2/3/4): ")num1 = float(input("输入第一个数字: "))num2 = float(input("输入第二个数字: "))if choice == '1':print(num1, "+", num2, "=", add(num1, num2))elif choice == '2':print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == '3':print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4':try:print(num1, "/", num2, "=", divide(num1, num2)) except ValueError as e:print(e)else:print("无效的选择")calculator```上述的代码中,我们定义了四个基本的数学运算函数:`add`、`subtract`、`multiply`、`divide`,分别对应加法、减法、乘法和除法。
如何在LabVIEW中创建一个简单的计算器在使用LabVIEW(Laboratory Virtual Instrument Engineering Workbench)进行编程时,可以通过创建自定义的用户界面来构建各种类型的应用程序和工具。
本文将介绍如何使用LabVIEW在用户界面上创建一个简单的计算器。
通过这个示例,您将了解到如何使用LabVIEW的基本功能和工具来实现计算器的基本功能。
一、建立主体框架首先,打开LabVIEW软件并创建一个新的VI(Virtual Instrument)文件。
在工具栏中选择"Front Panel"视图,这将打开一个可视化界面用于用户交互。
在界面中央,添加一个文本框用于显示输入/输出的数字或结果。
您可以使用"Labeled Numeric"控件来实现这一功能。
在文本框下方,添加一行数字按钮,用于输入数字。
您可以使用"Numeric control"或者"Numeric Control - slide"控件来实现这一功能。
接下来,添加一行操作按钮,用于执行加、减、乘、除等运算。
您可以使用"Push Button"控件来实现这些操作按钮。
二、实现按钮和文本框的功能1. 实现数字按钮的功能选中第一个数字按钮,选择"Properties",然后在"Events"选项中添加一个"Value Change"事件。
在事件结构中,将"Value (Signaling)"连接到文本框控件的"Value (Signalling)"。
对于其他数字按钮,重复上述步骤,每个按钮连接到不同数字。
2. 实现操作按钮的功能选中加法按钮,选择"Properties",然后在"Events"选项中添加一个"Mouse Down"事件。
2013-2014学年第二学期《高级语言程序设计》课程设计报告题目:简单计算器专业:数字媒体技术班级:13级1班姓名:邢洪波指导教师:王辉成绩:计算机与信息工程系二0一四年二月二十日1设计内容及要求1.1 利用本学期所学的《C语言程序设计》课程,运用相关知识,查阅相关资料,编写C语言程序,设计一个简单计算器,要求编写的简单计算器能够模拟windows系统的计算器,用户能够用键盘输入相关数据,能够进行简单的加、减、乘、除运算,并且在程序运行过程中能够正常的退出程序。
在计算器程序运行中,输入数据时如果遇到输入错误的情况,能够能过键盘上的退格键进行删除,并且重新输入正确的数据。
在数据输入完成后,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行清零,并为下一次运算作准备。
1.2 运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时用户能利用键盘或鼠标进行相应操作。
程序基本功能要求实现完整,并有简单的验证。
程序还须有符合标准的程序设计报告。
2概要设计2.1系统流程图2.1 系统流程图2.2主要功能表2.2 主要功能表3设计过程或程序代码#include<stdio.h>#include<math.h>#include<malloc.h> /*malloc的头文件代表在内存中开辟存储空间*/double jisuan(char a[]){int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;/*定义整型变量i,j,k,m,n,cnt,t1,t2,t3*/char nibo[50],zhan2[50];/*定义字符型数组*/double x,n,l,z=0,zhan3[50];/*定义双精度变量x,n,l,z,zhan3[50]*/typedef struct /*表示可以用con定义结构体变量*/{double d1;int d2;}dd;typedef struct{dd data[50];int top;}zhan1;zhan1 *shu;/*定义指针变量*/shu=(zhan1 *)malloc(sizeof(zhan1));shu->top=0;while(a[i]!='\0') /*外循环是用while语句*/{if(a[i]>='0'&&a[i]<='9') /*内循环使用if-else语句*/{z=0;j=i+1;while(a[j]>='0'&&a[j]<='9') /*内循环使用各种循环语句的嵌套*/{j++;}j--;for(k=i;k<=j;k++){z=z*10+a[k]-'0';}j=j+1;x=z;if(a[j]=='.'){l=1;i=j+1;j=i+1;while(a[j]>='0'&&a[j]<='9') /*内循环使用各种循环语句的嵌套*/{j++;}j--;for(k=i;k<=j;k++){n=pow(0.1,l);l=l+1;x=x+n*(a[k]-'0');}i=j+1;}else i=j;shu->data[++shu->top].d1=x;shu->data[shu->top].d2=++cnt;nibo[++t1]='0'+shu->data[shu->top].d2;nibo[t1+1]='\0';}else if(a[i]=='('){zhan2[++t2]=a[i];i++;}else if(a[i]==')'){j=t2;while(zhan2[j]!='('){nibo[++t1]=zhan2[j];nibo[t1+1]='\0';j--;}t2=j-1;i++;}else if(a[i]=='+') /*对加法的定义*/{while(t2>0&&zhan2[t2]!='(') /*定义当加号和括号同时出现时*/{nibo[++t1]=zhan2[t2];/*将zhan2[t2]赋给nibo[++t2]*/nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='-') /*对减法的定义*/{if(a[i-1]=='$'){a[0]='0';i=0;}else if(a[i-1]=='('){a[i-1]='0';a[i-2]='(';i=i-2;t2--;}else{while(t2>0&&zhan2[t2]!='(') /*对括号的定义*/{nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}else if(a[i]=='*'||a[i]=='/') /*对乘法和除法的定义*/{while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[ t2]=='#') /*逻辑运算*/{nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='^'||a[i]=='#') /*逻辑运算中的或运算*/{while(zhan2[t2]=='^'||zhan2[t2]=='#'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}while(t2>0){nibo[++t1]=zhan2[t2]; /*将的zhan2[t2]值赋给nibo[++t1]*/nibo[t1+1]='\0'; /*碰到'\0'结束部分程序的运算*/t2--;}j=1;t3=0;while(j<=t1){if(nibo[j]>='0'&&nibo[j]!='^'&&nibo[j]!='#'){for(i=1;i<=shu->top;i++){if((int)(nibo[j]-'0')==shu->data[i].d2){m=i;break;}}zhan3[++t3]=shu->data[m].d1;}else if(nibo[j]=='+') /*对加法的定义*/{zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];t3--;}else if(nibo[j]=='-') /*对减法的定义*/{zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];t3--;}else if(nibo[j]=='*')/*对乘法的定义*/{zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];t3--;}else if(nibo[j]=='/') /*对除法的定义*/{zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];t3--;}else if(nibo[j]=='^') /*对乘方的定义*/{zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);t3--;}else if(nibo[j]=='#') /*对开方的定义*/{zhan3[t3]=sqrt(zhan3[t3]);}j++;}return zhan3[t3];/*返回值*/}void main(){for(;;){char x,a[50];double jieguo;int i=0;a[0]='$';printf("#表示开方,^表示乘方(支持负数)\n");/*对乘方和开方的定义*/printf("请输入表达式无需输入 = 号直接回车可输出答案退出请输入q \n\n");scanf("%c",&x);if(x=='q') break;while(x!='\n') /*碰到'\0'结束部分程序的运算*/{a[++i]=x;scanf("%c",&x);}a[i+1]='\0';jieguo=jisuan(a);printf("\n");printf("结果为:%lf",jieguo);printf("\n\n\n");printf("退出请输入q 继续请直接输入\n\n");}}4设计结果与分析系统测试结果如下:根据电脑所给的提示出现语法错误,缺少变量的定义大多的语法错误在通过书本参考下能够修改。
实验报告(2013 / 2014 学年第一学期)课程名称windows 编程实验名称简单计算器实验时间2023 年12 月20 日指导单位计算机、软件学院指导教师王子元学生姓名班级学号学院(系) 计算机学院、软件学院专业计算机软件与服务外包实验报告三、实验原理及内容[实验内容]1. 工程的创建。
使用MFC 创建一个基于对话框的工程;2. 界面设计。
使用控件工具栏为对话框添加所需控件,并设置控件属性;使用界面布局工具栏调整控件布局,完成应用程序界面设计。
3. 创建对话框成员变量和成员函数。
使用ClassWizard为控件添加相关联的对话框成员变量和消息相应函数;在Workspace窗口的ClassView页中,根据需要为对话框添加其他成员变量和成员函数。
4.编写代码。
5.编译、调试程序;运行程序,并对程序功能进行测试功能设计(1)支持加减乘除运算(2+3=5)(2)支持输入正确的乘方运算(如2^3=8)(3)支持混合四则运算(如2+3*2=8)(4)支持正确的表达式运算(如2+3*(2-4/2)=2)(5)计算器的输入方式:支持鼠标点击输入和键盘输入本计算器支持鼠标点击操作和键盘输入。
(鼠标输入是点击按钮,编辑框即显示点击的结果和计算结果,键盘输入是点击编辑框锁定光标后从键盘输入的)。
(6)使用图形界面中的事件委托机制来处理事件响应计算器计算结果的输出方式:在计算器窗口的显示。
(7)本计算器应该要支持退格和清零。
点击C按钮将编辑框清零,点击backspace按钮,退格,清除编辑框中最后一个输入字符。
(8)算术运算的数据类型:整数和浮点数本计算器支持的精度是6位小数,支持的运算是32位,超出即位溢出,同时显示的结果仅保留6位小数。
本计算器默认诸如“(8)=”的表达式有效,不设置错误提示。
出现运算异常的情况为:①.被除数为0的情况,提示用户被除数不能为零!②.输入的表达式不正确时,提示出错。
(9)点击等号按钮,或者键盘输入等号时,计算器在编辑框显示计算结果。
实验1简易计算器设计一、实验目的1、掌握事件结构的编程2、掌握字符串与数字的相互转化3、掌握条件结构的编程4、生成exe文件二、实验要求利用LabVIEW的事件结构编写一个简单的计算器程序,实现加、减、乘、除等运算,并能对计算结果进行清除,前面板按钮及布局如下图所示。
图1 计算机界面要求最后创建项目,生成exe可执行文件。
三、实验设备1、计算机2、安装LabVIEW软件(版本不限,本实验指导书以2018版为例)四、实验说明1、程序流程图图2 程序流程图2、设计思路计数器界面中每个按键相当于一个布尔输入控件,共17个;计算结果的显示为一个字符串显示控件。
每次按键触发一个按键事件,利用LabVIEW的事件响应结构对每个按键进行响应,实现要求的简易计算器功能。
表1 布尔输入控件的说明前面板除了17个布尔输入控件外,还包含输入数据的输入临时值控件、输入1、输入2、存储操作运算符的运算符临时值控件、运算结果和过程显示,过程显示充当计算器的显示器。
3、算法流程图包括程序初始化、运算符判断、数据存储与运算、显示等。
图3 算法流程图五、实验过程1、前面板设计打开IabVIEW2018软件,新建一个VI,并命名为虚拟计算器。
在前面板上右击,在布尔控件中选择“确定按钮”;右击,打开显示项,去掉标签;调整按键到合适的大小;再拷贝16个按键,排列好,C键和±键还需要调整一下大小;修改各按键的布尔文本;双击各按键到后面板中修改各自的标签,例如将布尔文本为1的按键标签改为“数字1”,将布尔文本为+的按键标签改为“加”,以方便编程时识别各按键。
再设置一个字符串显示控件,用来显示运算数值、运算符号和运算结果,修改标签为“过程显示”;还需要设置5个字符串显示控件,标签分别为“输入临时值”、“输入1”、“输入2”、“运算符临时值”、“运算结果”。
得到如下图所示的计算器前面板、后面板。
图4 前面板布局图图4 后面板2、初始化将前面板中的各个显示控件初始化,如图5所示。
fb块编程实例-回复FB块编程实例:实现一个简单的计算器概述:中括号内的主题是实现一个简单的计算器。
在这个编程实例中,我们将使用FB块(Function Block)编程来创建一个可以执行基本数学运算的计算器。
FB块编程是一种基于模块化的编程方法,它将一个复杂的系统划分为多个独立的功能块,并将其组合在一起以实现系统的需求。
步骤一:定义基本功能块第一步是定义计算器的基本功能块。
在这个例子中,我们将需要四个基本功能块:加法器、减法器、乘法器和除法器。
每个功能块都将有两个输入参数和一个输出参数。
例如,加法器将有两个输入参数,分别是要相加的两个数字,以及一个输出参数,用于返回计算结果。
步骤二:实现基本功能块在这一步中,我们将实现每个基本功能块的逻辑。
例如,对于加法器,我们将简单地将输入参数相加,并将结果存储在输出参数中。
类似地,对于减法器、乘法器和除法器,我们将实现相应的逻辑操作。
步骤三:创建计算器功能块在这一步中,我们将创建一个计算器功能块,用于组织和管理所有基本功能块。
该功能块将拥有一个输入参数,用于选择要执行的操作,以及两个输出参数,分别用于存储计算结果和错误信息。
通过使用选择参数来触发相应的基本功能块,我们可以实现不同的计算操作,例如加法、减法、乘法和除法。
步骤四:编程FB块在这一步中,我们将使用FB块编程工具来编写和组织所有的功能块。
FB 块编程工具提供了一个可视化的界面,使我们能够创建、编辑和连接功能块。
我们可以使用拖放操作来创建功能块,并使用线条将它们连接在一起,以指定数据流和控制流。
步骤五:测试计算器最后一步是测试计算器的功能。
我们可以使用FB块编程工具提供的模拟器来模拟各种输入情况,并验证计算器在不同情况下的运行结果。
通过测试计算器,我们可以确保它具有正确的功能和良好的性能。
总结:在这个FB块编程实例中,我们使用FB块编程方法来实现一个简单的计算器。
通过将系统划分为多个独立的功能块,并将其组合在一起,我们能够实现复杂的系统需求。
一、缓和曲线上的点坐标计算已知:①缓和曲线上任一点离ZH点的长度:l②圆曲线的半径:R③缓和曲线的长度:l0④转向角系数:K(1或-1)⑤过ZH点的切线方位角:α⑥点ZH的坐标:xZ,yZ计算过程:说明:当曲线为左转向时,K=1,为右转向时,K=-1,公式中n的取值如下:当计算第二缓和曲线上的点坐标时,则:l为到点HZ的长度α为过点HZ的切线方位角再加上180°K值与计算第一缓和曲线时相反xZ,yZ为点HZ的坐标切线角计算公式:二、圆曲线上的点坐标计算已知:①圆曲线上任一点离ZH点的长度:l②圆曲线的半径:R③缓和曲线的长度:l0④转向角系数:K(1或-1)⑤过ZH点的切线方位角:α⑥点ZH的坐标:xZ,yZ计算过程:说明:当曲线为左转向时,K=1,为右转向时,K=-1,公式中n的取值如下:当只知道HZ点的坐标时,则:l为到点HZ的长度α为过点HZ的切线方位角再加上180°K值与知道ZH点坐标时相反xZ,yZ为点HZ的坐标三、曲线要素计算公式公式中各符号说明:l——任意点到起点的曲线长度(或缓曲上任意点到缓曲起点的长度)l1——第一缓和曲线长度l2——第二缓和曲线长度l0——对应的缓和曲线长度R——圆曲线半径R1——曲线起点处的半径R2——曲线终点处的半径P1——曲线起点处的曲率P2——曲线终点处的曲率α——曲线转角值四、竖曲线上高程计算已知:①第一坡度:i1(上坡为“+”,下坡为“-”)②第二坡度:i2(上坡为“+”,下坡为“-”)③变坡点桩号:SZ④变坡点高程:HZ⑤竖曲线的切线长度:T⑥待求点桩号:S计算过程:五、超高缓和过渡段的横坡计算已知:如图,第一横坡:i1第二横坡:i2过渡段长度:L待求处离第二横坡点(过渡段终点)的距离:x 求:待求处的横坡:i解:d=x/Li=(i2-i1)(1-3d2+2d3)+i1六、匝道坐标计算已知:①待求点桩号:K②曲线起点桩号:K0③曲线终点桩号:K1④曲线起点坐标:x0,y0⑤曲线起点切线方位角:α0⑥曲线起点处曲率:P0(左转为“-”,右转为“+”)⑦曲线终点处曲率:P1(左转为“-”,右转为“+”)求:①线路匝道上点的坐标:x,y②待求点的切线方位角:αT计算过程:注:sgn(x)函数是取符号函数,当x<0时sgn(x)=-1,当x>0时sgn(x)=1,当x=0时sgn(x)=0。
《网络编程技术》结课论文2012 — 2013学年第二学期题目:简单计算器程序专业班级:网信10-2学号:************姓名:-----------指导老师:---------日期:2013-06-25目录1引言 (3)2基础理论 (3)2.1 AWT 组件 (3)2.2 Swing 组件 (3)2.3 java事件处理机制 (4)3 功能设计 (5)3.1计算器系统概述 (5)3.2功能模块设计 (6)3.3详细设计 (6)4 系统实现 (7)4.1需求分析 (7)4.2设计思路 (8)4.3主要代码展示及说明 (8)4.4调试与分析 (12)5 总结 (12)参考文献 (13)1引言近年来随着计算机和网络在社会领域的发展,java的应用正在不断地走向深入, Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加法、减法、乘法、除法的简单运算,也可以实现一些简单的扩展运算,这次课程设计的主要目的在于检测对java 应用的熟练程度,发现问题并及时改正和提高,同时扩展对java知识的进一步了解和认识,强化自己的编程能力,为将来在新的旅途中能更好的发挥自身的才能!2基础理论2.1 AWT 组件布局管理器管理组件如何放置在容器中,AWT 中最常用的四种布局类:FlowLayout、BorderLayout、GridLayout、CardLayout。
本项目主要采用了GridLayout 布局。
计算器程序
包括4个数字按钮,1个小数点按钮,+-*/= 5个计算按钮
不接受键盘输入
计算规则:当前正在输入的数存储到字符串变量
用户输入操作符,存储已经输入的数,作为第一个数,存储操作符
用户输入第二个数
用户输入操作符,与第一个数计算,并存储为第一个数,存储操作符
小数点只能输入一次
1 创建基于对话框的程序
2 打开对话框模板,增加控件:
编辑框1个
按钮4个,文字1-4
按钮1个,文字:小数点
按钮5个,文字:+ - * / =
按钮1个,文字:关闭
3 打开类向导
为编辑框加成员变量,CString m_edit
为所有按钮加消息映射
注意:以上都加再对话框类中。
4 打开对话框类的声明,加成员变量
double m_result; //前面的结果,即第一个数
int m_opt; //前面的操作符,0=,1+,2-,3*,4/
int ,m_dot; //是否输入了小数点
CString m_string; //当前正在输入的数,存为字符串
5 继续在话框类,声明2个函数
void calculation(void); //执行计算
void NumInput(CString x) //执行数字按钮输入
6 打开函数OnInitDialog(),加初始化代码
m_result = 0;
m_opt = 0;
m_dot = 0;
m_string = "";
6 “关闭按钮”消息映射代码:
OnOK();
8 分别打开数字按钮1-4的消息映射函数,分别输入代码:
NumInput("1");
NumInput("2");
NumInput("3");
NumInput("4");
9 打开小数点按钮的消息映射函数,输入代码:
if ( m_dot==0 )
{
m_dot = 1;
NumInput(".");
}
10 分别打开 + - * / 按钮的消息映射函数,分别输入代码:
calculation();
m_opt = 0;
calculation();
m_opt = 1;
calculation();
m_opt = 2;
calculation();
m_opt = 3;
calculation();
m_opt = 4;
11 增加calculation(void)函数,输入代码:
void CfffDlg::calculation(void)
{
double cal;
CString str;
cal = _wtof( (LPCTSTR)m_string );
// cal = atof( (char*)(LPCTSTR)m_string );
if (m_opt==0) m_result = cal;
if (m_opt==1) m_result = m_result + cal;
if (m_opt==2) m_result = m_result - cal;
if (m_opt==3) m_result = m_result * cal;
if ((m_opt==4)&&(cal!=0)) m_result = m_result / cal;
m_dot = 0;
m_string = "";
str.Format("%f",m_result);
m_edit = str;
UpdateData(false);
}
12 增加NumInput(CString x)函数,输入代码:void CfffDlg::NumInput(CString x)
{
m_string += x;
m_edit = m_string;
UpdateData(false);
}
程序结构。