计算器制作步骤

合集下载

怎样用scratch制作计算器

怎样用scratch制作计算器

怎样用scratch制作计算器Scratch是一款使用者可以不熟悉英文单词,也可以不会使用键盘的〔少儿〔编程〕〕工具。

构成程序的命令和参数通过积木形状的模块来实现。

今天我主要给大家分享怎样用scratch制作计算器,希望对你们有帮助!怎样用scratch制作计算器首先,我们制作一个计算器的面板,ppt是最合适的工具。

第二步,我们必须要定位每一个按键。

冉爸在课堂上引入了"二维数组'的概念,通过行,列定位每一个按键。

其实数组的例子在生活中随处可见,比如体育课上同学们排成三行四列。

初等数学的知识都是从生活中抽象而来的,冉爸尽量把数学概念融入到孩子的世界里。

第三步,通过观察,我们可以把功能相同的按键归为一组。

比如说数字键0~9为一组,当按下数字键时,调用相应函数;运算符+-*/为一组,当按下运算符时,调用相应函数;......第四步,通过这样"总'-"分'的结构,我们就把问题分解了,接下来针对第三步中的分组,分别编写函数。

我们要计算的是"数',可是计算机接受到的,其实是0~9单一的数字,和小数点。

因此,我们先用一个列表来依次存放输入的数字。

举例子,当输入小数点时,计算机完成这样的任务:(由于显示屏宽度的原因,我们限制数字的位数不超过14)第五步,我们必须要把列表里临时存放的各位数转换成被计算的数字,前后输入的数字依次赋值给操作数1和操作数2,然后依据运算符进行运算。

整个分析思路其实是线性的,并不难。

完成这个作业的关键,在于如何进行连续运算,真实的计算器是可以连续运算的。

编程序计算2+3不难,但是计算((2+3) * 4 / 5 + 6) * 7......这就必须要用到一些处理技巧。

关于我们的孩子来说,目前还不必须要思索的这么深入,先梳理分解问题和组织代码的思路,等以后再回头看冉爸处理连续运算的技巧。

低年级的小朋友也不用怕,我们在整个过程中,不仅是学习编程,还有各种工具的使用,比如搜索引擎,ppt,画图;还有作品的制定,这里就包括了色彩的搭配、界面的制定、功能的制定。

c语言制作简单的计算器

c语言制作简单的计算器

c语言制作简单的计算器在计算机编程领域中,C语言是一种广泛使用的编程语言之一。

它具有简单易学的特点,并且能够进行复杂的计算和逻辑处理。

今天,我们就来学习一下如何使用C语言来制作一个简单的计算器。

首先,我们需要明确我们计算器的功能和界面设计。

本次制作的计算器将具有基本的四则运算功能,即加法、减法、乘法和除法。

我们将在控制台中实现计算器的操作,并通过简单的用户界面进行交互。

接下来,我们需要创建一个C语言程序的框架。

首先,我们需要包含头文件,以便在程序中使用各种函数和变量。

我们可以使用"#include" 来引入头文件,例如:```c#include <stdio.h>```然后,我们需要定义主函数 `main()`。

在这个函数中,我们将编写计算器的逻辑代码。

让我们开始编写函数吧!首先,我们需要声明一些变量来存储用户输入的数字和运算符。

我们可以使用 `int` 来定义整数变量,并用 `char` 定义字符变量。

例如:```cint num1, num2, result;char operator;```接下来,我们需要提示用户输入要进行的运算,并读取用户输入的数字和运算符。

我们可以使用 `printf` 和 `scanf` 函数来完成这个任务,例如:```cprintf("请输入第一个数字: ");scanf("%d", &num1);printf("请输入运算符(+, -, *, /): ");scanf(" %c", &operator);printf("请输入第二个数字: ");scanf("%d", &num2);```注意,我们在读取运算符之前添加了空格,这是为了消除输入缓冲区中可能残留的换行符等字符。

接下来,我们需要编写代码来进行实际的计算操作。

简易计算器的制作

简易计算器的制作

简易计算器的制作在本文中,我们将介绍如何使用Visual FoxPro(VFP)制作一个简易计算器。

Visual FoxPro是一种开发工具,可以用于创建数据库应用程序和开发Windows桌面应用程序。

步骤1: 创建新的Visual FoxPro项目首先,打开Visual FoxPro并创建一个新的项目。

在“文件”菜单中选择“新建”,然后选择“项目”。

输入一个项目名称,选择一个合适的位置,然后点击“确定”。

步骤2:创建一个新的表单接下来,我们需要创建一个新的表单来作为计算器的界面。

在项目资源管理器中,右键点击“表单”文件夹,并选择“新建”。

输入一个表单名称,然后点击“确定”。

步骤3:添加控件步骤5:添加按钮事件首先,我们需要声明变量来存储用户输入的数字。

在按钮事件代码中,添加以下代码:```foxproLOCAL num1, num2, result```接下来,我们需要获取用户输入的数字。

在按钮事件代码中,添加以下代码:```foxpronum1 = VAL(Thisform.txtNum1.Value)num2 = VAL(Thisform.txtNum2.Value)```然后,我们可以执行所需的计算操作。

例如,如果我们想要添加两个数字,我们可以使用以下代码:```foxproresult = num1 + num2```最后,我们需要将结果显示在界面上。

在按钮事件代码中,添加以下代码:```foxproThisform.lblResult.Caption = STR(result)```步骤6:运行和测试完成上述步骤后,您可以保存并运行计算器。

在VFP的工具栏中,点击“运行”按钮来启动应用程序。

测试计算器,确保它可以正确执行计算操作并显示结果。

结论通过使用Visual FoxPro,我们可以轻松创建一个简易计算器。

这个计算器可以执行基本的加减乘除等操作,同时提供了一个直观的用户界面。

您可以根据需要进行自定义,添加更多功能和复杂的计算操作。

Python简易计算器制作方法代码详解

Python简易计算器制作方法代码详解

Python简易计算器制作⽅法代码详解主要⽤到的⼯具是Python中的Tkinter库⽐较简单直接上图形界⾯和代码引⽤Tkinter库from tkinter import *建⽴主窗⼝对象window=Tk() #设置窗⼝对象window.title('counting machine')window.geometry("350x280")window['bg']='red'建⽴标签框以及标签(将运算字符串显⽰在上⾯)frame=LabelFrame(window,bg='yellow',width=350,height=50)frame.pack()frame.place(x=0,y=0)label=Label(frame,text="1+1=2",height=3,width=50,bg='yellow')label.pack() #显⽰框设置全局变量字符串s,按⼀个按钮,将按钮对应的运算符加到这个字符串s中,最后利⽤eval函数进⾏计算。

global ss=""按钮0-9以及⼩数点的实现(⼤致思路都是⼀样的)#按钮.def figure_dot():global ss=s+"."label.config(text=s)btn0=Button(window,text=".",width=4,command=figure_dot,bg='yellow')btn0.place(x=150,y=220) #按钮.#按钮0def figure_0():global ss=s+"0"label.config(text=s)btn0=Button(window,text="0",width=4,command=figure_0,bg='yellow')btn0.place(x=80,y=220) #按钮0#按钮1def figure_1():global ss=s+"1"label.config(text=s)btn1=Button(window,text="1",width=4,command=figure_1,bg='yellow')btn1.place(x=10,y=80) #按钮1#按钮2def figure_2():global ss=s+"2"label.config(text=s)btn2=Button(window,text="2",width=4,command=figure_2,bg='yellow')btn2.place(x=80,y=80)#按钮2#按钮3def figure_3():global ss=s+"3"label.config(text=s)btn3=Button(window,text="3",width=4,command=figure_3,bg='yellow')btn3.place(x=150,y=80)#按钮3#按钮4def figure_4():global ss=s+"4"label.config(text=s)btn4=Button(window,text="4",width=4,command=figure_4,bg='yellow')btn4.place(x=10,y=130)#按钮4#按钮5def figure_5():global ss=s+"5"label.config(text=s)btn5=Button(window,text="5",width=4,command=figure_5,bg='yellow')btn5.place(x=80,y=130)#按钮5#按钮6def figure_6():global ss=s+"6"label.config(text=s)btn6=Button(window,text="6",width=4,command=figure_6,bg='yellow')btn6.place(x=150,y=130)#按钮6#按钮7def figure_7():global ss=s+"7"label.config(text=s)btn7=Button(window,text="7",width=4,command=figure_7,bg='yellow')btn7.place(x=10,y=180)#按钮7#按钮8def figure_8():global ss=s+"8"label.config(text=s)btn8=Button(window,text="8",width=4,command=figure_8,bg='yellow')btn8.place(x=80,y=180)#按钮8#按钮9def figure_9():global ss=s+"9"label.config(text=s)btn9=Button(window,text="9",width=4,command=figure_9,bg='yellow')btn9.place(x=150,y=180)#按钮9运算符号的实现(±*/)#加法按钮def figure_addition():global ss=s+"+"label.config(text=s)btn_add=Button(window,text="+",width=4,command=figure_addition,bg='yellow') btn_add.place(x=220,y=80)#加法按钮#减法按钮def figure_subtraction():global ss=s+"-"label.config(text=s)btn_sub=Button(window,text="-",width=4,command=figure_subtraction,bg='yellow')btn_sub.place(x=220,y=130)#减法按钮#乘法按钮def figure_multiplication():global ss=s+"*"label.config(text=s)btn_multi=Button(window,text="*",width=4,command=figure_multiplication,bg='yellow')btn_multi.place(x=290,y=80)#乘法按钮#除法按钮def figure_division():global ss=s+"/"label.config(text=s)btn_divi=Button(window,text="/",width=4,command=figure_division,bg='yellow')btn_divi.place(x=290,y=130)#除法按钮清空窗⼝按钮的实现#清空按钮def figure_clear():global ss=""label.config(text=s)btn_clear=Button(window,text="clear",width=4,command=figure_clear,bg='yellow')btn_clear.place(x=220,y=180)#清空按钮结果输出的实现(eval函数)#结果按钮def figure_value():global sx=eval(s)s=str(x)label.config(text=s)btn_value=Button(window,text="=",width=4,command=figure_value,bg='yellow')btn_value.place(x=290,y=180)颜⾊变换的实现(红变粉)def figure_colorchange():window.config(bg="pink")btn_value=Button(window,text="color",width=4,command=figure_colorchange,bg='yellow')btn_value.place(x=10,y=220)#改变颜⾊window.mainloop()变换后这个简易计算器也就实现了,当然也可以加⼊其他的功能,如开⽅,乘幂等功能。

基于单片机的简单计算器

基于单片机的简单计算器

基于单片机的简单计算器计算器是我们日常生活中常用的工具之一,用于进行各种数学运算。

在计算机科学领域,我们可以利用单片机来制作一个简单的计算器,以满足计算需求。

本文将介绍基于单片机的简单计算器的实现过程和相关原理。

一、项目概述我们将利用单片机的计算能力和显示功能来制作这个简单计算器。

用户可以通过按键来输入数字和运算符,计算器将会实时显示计算结果。

在本项目中,我们将使用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.运算处理运算处理模块需要根据用户输入的数字和运算符进行相应的运算操作。

FLASH计算器制作方法

FLASH计算器制作方法

“FLASH”计算器FLASH计算器的制作可按以下步骤来完成:第一、“按钮”图层的设置。

(1)打开FLASH程序,将图层1重新命名为“按钮”。

(2)执行“插入”→“新建元件”命令,弹出“创建新建元件”对话框。

在此对话框的“名称”框中输入“按钮”,在“行为”选项中选择“按钮”,单击“确定”按钮,进入按钮编辑场景。

(3)执行“窗口”→“公用库”→“按钮”命令,打开“库—按钮”对话框,如图所示。

(4)双击“Key Buttons”文件夹,将其打开;将“Key—labelled button”按钮拖到舞台上。

双击“Key—labelled button”按钮,进入它的编辑场景;选中“arrows”图层将其删除,这时按钮上的文本”A”被删除。

返回到主场景.(5)执行“窗口”→“库”命令,打开库面板;从库面板向舞台拖十九个“Key—labelled button”按钮,并按一定的顺序排好。

第二、“动态文本”图层的设置(1)新增一个图层,并且重新命名为“动态文本”。

(2)选中工具栏中的文本工具,在舞台上方中央位置拖出一个文本域.(3)打开属性面板,设置这个文本域的属性为“动态文本”,实例名称为“结果”,变量名为“Z”,显示线条设置为“多行”,其它采用默认值.第三、“提示文字”图层的设置。

(1)新插入一个图层,重新命名为“提示文字”;(2)选中工具栏中的文本工具,并设置其属性:静态文本,字体颜色:红色,字号:30号,其它采用默认值。

舞台上的每个按钮上分别添加如下静态文本:1、2、3、4、5、6、7、8、9、0、+、-、×、÷、=、.、开始、清零、负;在舞台的右边中央位置添加静态文本“FLASH 计算器”,在动态文本域的左边添加静态文本:显示信息。

添加文本提示后的界面如图所示。

第三、给按钮添加动作脚本。

(1)锁定除按钮图层以外的图层;(2)选中“清零”按钮,单击舞台左下方“动作—按钮”,打开动作面板;在动作面板中给该按钮添加以下动作脚本:on (press) {//按下鼠标左键a = 0;//给变量a赋初值0x =””;//给变量x赋初值空字符串””y =””;//给变量y赋初值空字符串””z = 0;//给变量Z赋初值0m = 0;//给变量m赋初值0}(3)选中”开始”按钮, 单击舞台左下方“动作—按钮”,打开动作面板,在动作面板中添加以下动作脚本:on (press) {//按下鼠标左键m = 0; //给变量m赋初值0x = “”; //给变量x赋初值空字符串“”y = “”; //给变量y赋初值空字符串“”a = 0; //给变量a赋初值0}(4)选中”=”按钮, 单击舞台左下方“动作—按钮”打开开动作面板,在该面板中添加如下动作脚本:on (press) {//按下鼠标左键if (a == 0) {//判断的值是否为0z = Number(x);//若a的值是0,则将变量x由字符串转换为数值赋给变量z} else {//若a的值不是0,则执行下面的动作if (n == 1) {//判断n的值是否为1z = Number(x)+Number(y);// n的值为1,则将变量x 、y由字符串转化为数值相加,将所加结果赋给变量z}if (n == 2) {//判断n的值是否为2z = Number(x)-Number(y);// n的值为2,则将变量x 、y由字符串转化为数值相减,将所减结果赋给变量z}if (n == 3) { //判断n的值是否为3z = Number(x)*Number(y); // n的值为3,则将变量x 、y由字符串转化为数值相乘,将所乘结果赋给变量z}if (n == 4) {//判断n的值是否为4z = Number(x)/Number(y); // n的值为4,则将变量x 、y由字符串转化为数值相除,将相除结果赋给变量z}(n的值作为判断运算类型的条件:n=1进行加法运算;n=2进行减法运算;n=3进行乘法;n=4进行除法运算)a = 0; //给变量a赋初值0m = 1; //给变量m赋值1x = String(z);//将动态文本变量z转换为字符串,赋给变量xy = “”; //给变量y赋初值空字符串“”}}(5)选中按钮”1”然后打开动作面板,在该面板中添加如下动作脚本:on (press) {//在“1”按钮上按下鼠标左键if (m == 0) {//判断m的值是否为0,若m的值为0,则执行下面的动作x = x+String(1);//将数值1转化为字符串,与变量x相加,并将相加结果赋给变量x} else {//若的值不为0,则执行下面的动作y = y+String(1); //将数值1转化为字符串,与变量y相加,并将相加结果赋给变量y}}(6)分别选中“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”、“.”、“负”按钮,打开它们的动作面板,然后将按钮“1”的动作脚本复制到各自的动作面板中。

matlab简易计算器设计步骤与回调函数设计说明

matlab简易计算器设计步骤与回调函数设计说明

简易算术计算器的设计一、算术计算器的功能:能进行简单的加、减、乘、除法运算,输入文本框显示为常量多项式,输出文本框显示为精确到小数点后十位的数值。

计算器包含十个数字键0~9、小数点键“.”、小括号键“(”“)”、运算符号、清屏键、退格键、退出键等。

二、设计思路:每按下一个数字键或者符号键的时候,利用get(handles.edit1,'string')获取当前输入文本框edit1的string属性,并通过字符串合并函数strcat()将当前输入文本框edit1的字符型string属性与按键的字符型string属性合并成字符串,然后利用属性设置函数set(); 将合并后的字符串返回到输入文本框edit1的string属性。

当输入结束,用户按下等号的时候,采用x=get(handles.edit1,'string')获取当前输入文本框edit1的string属性,然后利用字符串执行命令y1=eval(x)计算输入文本框的表达式,得到的结果是字符型常量;然后利用字符串输出格式控制函数y=sprintf('%.10f',y1)使输出结果精确到小数点后十位;最后利用属性设置函数set(handles.edit2,'string',y)将转换后的字符串返回到输出文本框edit2的string 属性。

三、设计步骤:1、运行matlab 7.13版,进入主界面。

2、点击工具栏上的GUIDE图标进入GUI开发环境。

3、创建控件:Push Button包括数字0~9、运算符“+ - ×÷”、功能键等十九个,输入和动态静态文本框Edit Text,显示文字的静态文本框Static Text四个等。

4、对控件单击右键弹出菜单,选择Property Inspector,设置控件属性。

控件属性表text text1 制作:***16pointsboldon0.8310.8160.7840 0 1 text2 Inputtext3 Outputtext4 算术计算器200.7490.749editedit1 空白字符串10pointson 1 1 1 0 0 0 edit2 空白字符串5、选择工具栏上的Align Objects按键,调整控件布局。

VC6.0制作简易计算器MFC[整理]

VC6.0制作简易计算器MFC[整理]

1、单击File(文件)菜单,选中New(新建),创建新工程。

2、选择工程栏中MFC AppWizard[exe]应用程序,并命名工程名称为calculator.(如图)3、选择MFC应用程序为“基于对话框”类型,其他选项默认。

单击完成(如图)4、修改界面。

经过前3步骤,VC6.0生成的工作界面如图所示。

先将对话框中的“TODO:在这里设置对话控制”静态文字控件和“确定”按钮控件删除,再使用工具箱将界面拖动控件修改为如图所示的界面。

该图所示是使用工具箱的控件拖放制作的计算器初始界面。

由于这些控件都有默认的名字,所以我们要对控件进行改名,右击Button1按钮,选中Properties(属性)选项以修改控件的属性,如图所示。

在弹出的对话框中,将Button1按钮的Caption(标题)属性修改为“+”,此时初始界面同时变成相应的“+”如下图所示。

修改后的界面如图所示,控件的Caption属性就是控件显示出来的值。

按照前文所讲述的方式,将界面上的按钮控件和静态文本控件的Caption属性都做相应的修改,修改后的界面如图所示。

5、为Edit(编辑)控件添加类的成员变量。

首先,右击Edit控件,选择ClassWizard(建立类向导)选项,如下图所示。

在弹出的对话框中,选择上方MemberVariables选项卡,选中DIC_EDIT1,然后单击单击右侧的Add Variable按钮,如图所示。

单击Add Variable按钮后会跳出,如图所示的对话框,该对话框是设置成员变量的命名和数据类型,在此可以命名为m_data1.注意:控件的ID只是标记一个控件,程序中不能直接控制ID,只能通过修改变量来改变控件的状态。

00相应的,再将另外两个Edit控件命名,本项目就将这3个Edit控件命名为:●IDC_EDIT1:m_data1,类型为double.●IDC_EDIT2:m_data2,类型为double.●IDC_EDIT3:m_result,类型为double.6、添加按钮控件的消息处理函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(!m_bOperandAvail)
m_operand=0;
if(!m_bCoff)
m_operand=m_operand*10+(iID-IDC_0);
else
{
m_operand=m_operand+(iID-IDC_0)*m_coff;
m_coff*=0.1;
}
m_bOperandAvail=TRUE;
return;
if(m_errorState!=ErrNone)
m_result="除数不能为零";
else
{
float lval=(m_bOperandAvail)?m_operand:m_accum;
m_result.Format(_T("%f"),lval);
int i=m_result.GetLength();
void CCalculatorDlg::OnPoint()//处理小数点
{
// TODO: Add your control notification handler code here
m_bCoff=1;
UpdateDisplay();
}
void CCalculatorDlg::Calculate()//处理计算,注意用类向导先添加此成员函数
Calculate();
m_operator=OpMultiply;
}
void CCalculatorDlg::OnDivid()//除
{
// TODO: Add your control notification handler code here
Calculate();
m_operator=OpDivide;
m_operator = OpNone;
m_operand = 0;
m_accum = 0;
m_bOperandAvail = FALSE;
m_errorState = ErrNone;
m_coff=0.1;
m_bCoff=0;
UpdateDisplay();
}
void CCalculatorDlg::Run_Func()//处理函数运算
{
if(m_func==FuncSqrt)
m_operand=sqrt(m_operand);
if(m_func==FuncRec)
m_operand=1/m_operand;
}
UpdateDisplay();
}
void CCalculatorDlg::UpdateDisplay()//处理显示
{
if(GetSafeHwnd()==NULL)
{
if(m_operand==0)
m_errorState=ErrDivideByZero;
else
m_accum/=m_operand;
}
else if(m_operator==OpAdd)
m_accum+=m_operand;
else if(m_operator==OpSubtract)
m_accum-=m_operand;
{
// TODO: Add your control notification handler code here
Calculate();
m_operator=OpSubtract;
}
void CCalculatorDlg::OnMutiply()//乘
{
// TODO: Add your control notification handler code here
afx_msg void OnPoint();
afx_msg void OnEqual();
afx_msg void OnSqrt();
afx_msg void OnRecip();
afx_msg void OnOperandInput(UINT iID);//注意先向类中添加protected型成员函数OnOperandInput,然后再屏蔽掉类中的该函数声明,在此位置添加此说明
简易计算器制作步骤:
1、创建基于对话框的MFC(EXE)应用程序Calculator;
2、在对话框窗体上顺序创建0到9十个数字按钮,并设置其标识符分别为IDC_0到IDC_9,其它按钮按下表设置属性:
3、按表2添加各运算按钮的消息处理函数
4、为使0到9十个数字按钮响应相同的消息处理函数,定义宏ON_COMMAND_RANGE
{
if(m_errorState!=ErrNone)
return;
if(m_bOperandAvail)
{
if(m_operator==OpNone)
m_accum=m_operand;
else if(m_operator==OpMultiply)
m_accum*=m_operand;
else if(m_operator==OpDivide)
ON_BN_CLICKED(IDC_SIGN, OnSign)
ON_BN_CLICKED(IDC_POINT, OnPoint)
ON_BN_CLICKED(IDC_EQUAL, OnEqual)
ON_BN_CLICKED(IDC_SQRT, OnSqrt)
ON_BN_CLICKED(IDC_RECIP, OnRecip)
(1)// CalculatorDlg.h
//{{AFX_MSG(CCalculatorDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
#include "math.h"
7、添加各功能代码
(1)数字输入消息处理函数
void CCalculatorDlg::OnOperandInput(UINT iID)
{
ASSERT(iID >= IDC_0 && iID <= IDC_9);
if(m_errorState!=ErrNone)
return;
float m_coff; //小数输入时的系数
Operator m_operator; //enum型变量用以标识当前运算符
CalcError m_errorState; //enum型变量用以标识当前运算状态
Func m_func; //enum型变量用以标识当前运算函数类型
BOOL m_bOperandAvail; //标识当前输入是否为新输入数字
{
// TODO: Add your control notification handler code here
Calculate();
m_operator=OpNone;
}
void CCalculatorDlg::OnSqrt()//处理开根号
{
// TODO: Add your control notification handler code here
}
m_bOperandAvail=FALSE;
m_bCoff=0;
m_coff=0.1;
UpdateDisplay();
}
void CCalculatorDlg::Run_Func()//处理求根和求倒
{
if (m_errorState != ErrNone)
return;
if (m_bOperandAvail)
m_func=FuncSqrt;
Run_Func();
}
void CCalculatorDlg::OnRecip()//求倒数1/x
{
// TODO: Add your control notification handler code here
m_func=FuncRec;
Run_Func();}来自m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_coff=0.1;
m_bCoff=0;
m_errorState = ErrNone;
m_bOperandAvail=FALSE;
m_operator=OpNone;
}
另:在文件CalculatorDlg.cpp中添加
while(m_result.GetAt(i-1)=='0')
{
m_result.Delete(i-1,1);
i-=1;
}
}
UpdateData(FALSE);
}
void CCalculatorDlg::OnClear()//处理清空
{
// TODO: Add your control notification handler code here
enum Operator { OpNone,OpAdd,OpSubtract,OpMultiply,OpDivide};
enum CalcError { ErrNone,ErrDivideByZero};
enum Func { FuncSin, FuncTan, FuncCos, FuncSqrt, FuncSqre, FuncLn, FuncLog,
: CDialog(CCalculatorDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCalculatorDlg)
m_result = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
相关文档
最新文档