计算器制作步骤

合集下载

怎样用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、添加按钮控件的消息处理函数。

3DMAX计算器制作

3DMAX计算器制作

1.创建一个基础多边形,通过移动(W)、缩放(R)工具,将计算器底部大型制作出来2.通过选择边工具,选择所有的边,对它们进行倒角边处理。

(选择所有边后,长按Shift键,再长按鼠标右键进行选择)3.在模型的侧面,通过多切割工具,按住Ctrl+Shift后,在侧面的正中间添加一条线,再对这条线进行倒角边处理,分段调为2,并将相邻边的间隙分数调的相对较小。

4.双击选择侧边最中间的一整条环线,通过缩放(R)工具,将中间的线向内整体缩放一点,制作出沟线的效果。

5.接下来是制作按键部分的模型。

首先先创建一个基础立方体。

删除底面的边,然后再双击选择底部所有的面,通过缩放(R)工具,整体向外扩大底部的线,是模型侧面呈梯形状。

6.选择按键模型除了底部四条边以外的所有边,对它们进行倒角边处理,然后通过多切割工具,给按键横竖添加两条环线(多切割工具加边时按住Ctrl+Shift)7.选择顶部横向或竖向的点,向下移动一小段,制作出按键顶部凹陷的效果8.按空格键,打开所有视角的视窗,通过移动(W)缩放(R),和复制(Ctrl+D)来将我们需要的按键都排列出来9.制作计算器凹槽部分。

1)通过多切割工具,将大致位置卡好2)选中需要凹陷的面,按Ctrl+E 挤出工具,然后通过缩放工具将挤出的面延上下方向打平。

3)继续使用缩放工具,将挤出的面延如图左右方向收缩一点4)删除两边边缘因挤出产生的这条线5)双击选择以下两条环线通过缩放工具延如图左右方向向内收缩,再通过多切割工具为最外面的两条边分别卡一条线10.制作液晶屏幕部分1)切换至顶视图,通过在空白处长按Shift键+鼠标右键,选择创建多边形工具2)通过鼠标左键的点击,创建多边形,然后再通过移动顶点来对多边形进行造型。

3)因为模型的面只能是三个或四个顶点,我们所创建出来的多边形明显大于这个数,所以我们需要通过多切割工具,将这些点连到其他线段上,是所有面都为四边面。

4)Ctrl+D复制我们创建的多边形,并将它X轴的缩放数字手动改成-15)选择两个模型,对它们进行结合处理(长按Shift+鼠标右键,选择结合,或者再上方菜单栏中选择网格-结合)6)拖拽选择中间所有的点,因为这时候虽然两个模型结合成了一个模型,但是它们中间会有一些重合在一起的两个点,所以我们需要通过合并长按Shift+鼠标右键选择合并顶点-合并顶点如果发现所有点都合并到了一起这需要选择合并顶点工具后的小正方形将阙值手动调小,比如0.001这时候再点击合并,就可以合并一些重合在一起的两个点。

计算器制作方法

计算器制作方法

计算器制作方法制作计算器的方法有很多种,下面我将介绍一种简单的方法。

1.设计计算器的界面:首先,你需要决定计算器的外观和布局。

可以在纸上或者电脑上绘制你理想中的计算器样式,包括数字键、操作键、显示屏等。

考虑布局的合理性,使得用户可以方便地按键和查看结果。

2.编写HTML和CSS代码:使用HTML和CSS语言创建计算器的界面。

HTML用来构建网页结构,CSS用来对界面进行样式设计,如字体、颜色、大小等。

根据设计好的样式,编写HTML和CSS代码,将计算器的界面布局和样式实现出来。

3.添加JavaScript代码:编写JavaScript代码实现计算器的功能。

JavaScript是一种脚本语言,可以在网页中添加交互和动态效果。

根据计算器的功能需求,编写JavaScript代码实现数字输入、运算操作、结果显示等功能。

你可以使用JavaScript的计算功能和条件判断语句来实现计算器的基本功能。

4.进行测试和调试:完成代码编写后,进行测试和调试。

确保计算器能够正确地接收用户输入、执行运算操作,并且能够正确地显示结果。

测试过程中需要注意输入的边界情况和错误处理,确保计算器的稳定性和可靠性。

5.部署和发布:当计算器的功能完备且稳定后,可以将它部署到服务器或者上传到网页空间,供用户访问和使用。

你可以使用云服务提供商提供的服务器或者自己搭建服务器,将计算器的页面文件和相关资源上传到服务器上。

然后,用户可以通过浏览器访问你的计算器网页并使用它进行计算。

以上就是制作计算器的简单方法。

当然,如果你希望计算器功能更加复杂和完备,可以继续学习和探索相关技术,例如使用JavaScript的高级功能、添加动画效果等。

希望对你有所帮助!。

EXCEL做的超级房贷计算器

EXCEL做的超级房贷计算器

EXCEL做的超级房贷计算器超级房贷计算器是一种用Excel来制作的工具,可以帮助人们在购房过程中进行房贷计算。

此计算器可以根据用户输入的房屋价格、首付比例、贷款利率和贷款期限等信息,快速准确地计算出每个月的还款金额、还款总额和利息支出等关键信息。

下面将详细介绍如何制作一个超级房贷计算器。

首先,我们需要在Excel工作表中设置一些输入单元格,以便用户可以输入所需的信息。

可以在一个单元格中让用户输入房屋价格,例如A1单元格。

然后,在另一个单元格中设置一个下拉列表,其中列出了不同的首付比例选项。

用户可以从列表中选择一个首付比例,并在该单元格中显示所选选项。

接下来,我们需要在另外一些单元格中设置贷款利率和贷款期限的输入单元格。

用户可以分别输入所需的贷款利率和贷款期限,例如B1和C1单元格。

然后,在许多其他单元格中设置公式来计算所需的信息。

首先,我们需要计算出首付金额。

我们可以使用一个公式,将房屋价格乘以所选的首付比例,例如D1单元格的公式为`=A1*B1`。

然后,我们可以计算出贷款金额,使用一个公式减去首付金额,例如E1单元格的公式为`=A1-D1`。

接下来,我们可以使用贷款利率、贷款期限和贷款金额来计算每个月的还款金额。

我们可以使用Excel的内置函数PMT来计算这个值。

例如,我们可以在F1单元格中使用`=PMT(B1/12,C1*12,-E1)`公式来计算每个月的还款金额。

PMT函数中的第一个参数是贷款利率除以12(每年的12个月),第二个参数是贷款期限乘以12(贷款的总月数),第三个参数是贷款金额的负值(因为付款是支出)。

然后,我们可以计算出总还款金额和利息支出。

我们可以在G1单元格中使用`=F1*C1*12`公式来计算总还款金额(每月还款金额乘以总月数),在H1单元格中使用`=G1-E1`公式来计算利息支出(总还款金额减去贷款金额)。

最后,我们可以在工作表中添加条件格式,使关键数据以可视化的方式突出显示。

计算器是如何制造的?

计算器是如何制造的?

计算器是如何制造的?计算器是生活中不可或缺的一块科技令牌,它曾经受到众多学子、科研人员和工程师的崇拜。

那么,计算器到底是如何制造出来的?今天就来深入了解下计算器的制造历程:一、原材料准备计算器制造过程历程中,原材料准备阶段是极为重要的,首先要考察和选定外壳材质,然后准备好碳按键,手指触发开关,显示屏和电池,传感器,芯片和电子元件等。

然后,将所有的原材料和器件根据相关规格和要求组装起来。

二、检测准备制造过程的检测准备阶段非常重要,首先必须进行内部元件的检测,确保内部电路和连接点的质量;其次要进行外壳拼接检测,确保外壳结构安全、正确;此外还要进行电流检测,确保设备可正常运行;最后要进行外观检测,确保无外观质量上的问题。

三、性能测试性能测试的前提是检测工序的有效完成,它可以确保计算器的质量和可靠性。

测试方式通常是制定一系列运算及特定测试,以确定计算器功能是否正确、计算精确、接口是否可稳定运行。

四、质量审查质量审查过程中,会对计算器整体外观、手柄、数字键及显示等审查,确保所有外观配置符合定制要求;另外,还要对屏幕、音量、色彩、字体、亮度及其它参数进行测试,以确保质量绝对的的稳定性。

五、包装定制包装定制是计算器制造的最后一个阶段,一般情况下,要根据客户需求定制贴纸,然后按规定的方式安排、包装计算器;最后,将已完成的计算器发运到指定地点,完成产品制造和发货工作。

从上述流程可以看出,计算器制造历程包括了原材料准备、检测准备、性能测试、质量审查以及包装定制等。

只有把所有步骤都考虑入内,才能保证计算器在最终发售时完美无瑕,从而为广大用户带来极致的使用体验。

二进制简易计算器制作方法

二进制简易计算器制作方法

二进制简易计算器制作方法在计算机科学中,二进制是一种基础的数字表示方法,它由0和1组成。

二进制计算器是一种能够执行二进制加法、减法、乘法和除法等基本运算的工具。

本文将介绍如何制作一个简易的二进制计算器。

步骤一,确定功能需求。

首先,我们需要确定我们的二进制计算器要实现的功能。

通常,一个简易的二进制计算器应该能够进行二进制数字的加法和减法运算。

因此,我们的计算器将包括加法器和减法器两个基本功能。

步骤二,设计电路。

接下来,我们需要设计计算器的电路。

对于加法器,我们可以使用全加器电路来实现二进制数字的加法运算。

对于减法器,我们可以使用补码运算来实现二进制数字的减法运算。

可以使用数字集成电路或者程序设计语言来实现这些电路。

步骤三,实现电路。

一旦电路设计完成,就可以开始实现电路了。

如果选择使用数字集成电路,可以使用数字逻辑门、触发器和其他数字电路组件来搭建加法器和减法器。

如果选择使用程序设计语言,可以编写相应的程序来模拟加法和减法运算。

步骤四,测试和调试。

完成电路实现后,需要进行测试和调试。

通过输入不同的二进制数字,验证计算器的加法和减法功能是否正常。

如果发现问题,需要对电路进行调试,直到计算器能够正确执行加法和减法运算。

步骤五,优化和扩展。

一旦基本的加法和减法功能正常,可以考虑对计算器进行优化和扩展。

例如,可以添加乘法和除法功能,或者设计一个更复杂的二进制计算器,实现更多功能。

总结。

通过以上步骤,我们可以制作一个简易的二进制计算器。

这个计算器可以帮助我们理解二进制数字的运算规则,同时也可以作为一个有趣的电子项目来实现。

希望本文能够帮助你了解如何制作一个简易的二进制计算器。

C语言制作简单计算器

C语言制作简单计算器

C语言制作简单计算器一、项目介绍我们要用c语言做一个简单的计算器,进行加、减、乘、除操作。

本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。

我们需要检查输入,确保用户没有要求计算机完成不可能的任务。

还必须允许用户一次输入一个计算式,例如:32.4+32 或者9*3.2项目效果图编写这个程序的步骤如下:∙获得用户要求计算机执行计算所需的输入。

∙检查输入,确保输入可以理解。

∙执行计算。

∙显示结果。

三、解决方案1.步骤1获得用户输入是很简单的,可以使用printf()和scanf()。

下面是读取用户输入的程序代码:#include<stdio.h>int main(){double number1=0.0; //定义第一个操作值double number2=0.0; //定义第二个操作值char operation=0; //operation必须是'+''-''*''/'或'%'printf("\nEnter the calculation\n");scanf("%lf%c%lf",&number1,&operation,&number2);return0;}2.步骤2接着,检查输入是否正确。

最明显的检查是要执行的操作是否有效。

有效的操作有+、-、*、/和%,所以需要检查输入的操作是否是其中的一个。

还需要检查第二个数字,如果操作是/或者%,第二个数字就不能是0。

如果右操作数是0,这些操作就是无效的。

这些操作都可以用if语句来完成,switch语句则为此提供了一种更好的方式,因此它比一系列if语句更容易理解。

switch(operation){case'+':printf("=%lf\n",number1+number2);break;case'-':printf("=%lf\n",number1-number2);break;case'*':printf("=%lf\n",number1*number2);break;case'/':if(number2==0)printf("\n\n\aDavision by zero error!\n");elseprintf("=%lf\n",number1/number2);break;if((long)number2==0)printf("\n\n\aDavision by zero error!\n");elseprintf("=%ld\n",(long)number1%(long)number2);break;default:printf("\n\n\aDavision by zero error!\n");break;取余运算符对float或double类型是没有意义的,因为他们可以表示精确的结果。

FLASH制作计算器教程

FLASH制作计算器教程

FLASH制作计算器同学在用计算器时,大都有一种神秘感。

因此,他们经常对我提出以下问题:计算器是通过什么手段来完成一系列的运算的?究竟在计算器的按键上添加了一些什么东西,使不同的按键具有不同的功能?还有一些同学做出更大胆的设想:自己能否作一个计算器,来完成常见的计算呢?带着这几个问题,我与大伙一起用FLASH软件制作一个计算器,带你走进神奇的计算器世界。

这个计算器的制作可按以下步骤来完成:1、创建“按钮”图层,并对其进行设置(1)打开一个FLASH空文档,将“图层1”重命名为“按钮”。

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

在此对话框的“名称”后文本框中输入“按钮”,在“行为”选择“按钮”选项,然后单击“确定”按钮。

进入按钮编辑场景。

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

(4)在“库—按钮”对话框中,选择“Key Buttons ”文件夹,双击将其打开,在打开的文件来件中选择“Key —labeled button ”按钮。

将其拖放到按钮编辑场景中,选中其中的“arrows ”图层,将其删除,这时按钮上的文本“A ”被删除。

返回到主场景.(5)在这个计算器中一共需要十九个按钮,其中数字按钮0—9、运算符号四个(+、-、×、÷)、等号(=)、小数点(.)、表示数的性质的符号(+或-)、清零、开始等),因此,我们将库中的编辑过的按钮向舞台拖放十九次,并按一定的顺序排好。

如图所示。

2、创建“动态文本”图层,并对其时行设置(1)新增一个图层,并且重新命名为“动态文本”。

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

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

制作简单的计算器

制作简单的计算器

制作简单的计算器现代社会中,计算器是我们不可或缺的工具之一、它可以帮助我们进行快速而准确的数学运算,使得我们的工作和生活更加便利。

本篇文章将介绍如何制作一个简单的计算器,帮助你更好地了解计算器的原理和构造。

首先,我们需要明确计算器的基本功能。

一个简单的计算器应该具备加法、减法、乘法和除法的四则运算功能。

此外,我们还可以添加一些其他常用的功能,例如百分比计算、开方和平方等。

接下来,我们将使用Python语言来实现这个计算器。

在Python中,我们可以使用GUI库Tkinter来创建一个简单的图形界面。

首先,我们需要导入Tkinter库,并创建一个主窗口:```pythonfrom tkinter import *root = Tkroot.title("简易计算器")```接下来,我们可以创建显示结果的文本框和按钮,代码如下:```python#创建文本框input_label = Entry(root, justify="right")input_label.grid(row=0, column=0, columnspan=4, padx=10,pady=10)#创建按钮buttons ="7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"row_num = 1col_num = 0for button in buttons:Button(root, text=button, padx=10, pady=10).grid(row=row_num, column=col_num)col_num += 1if col_num > 3:col_num = 0row_num += 1```然后,我们可以为按钮添加相应的点击事件,使得点击按钮时可以进行相应的计算操作。

简单计算器的制作

简单计算器的制作

简单计算器的制作引言:计算器是一种用于进行基本数学运算的工具。

它通常具备加法、减法、乘法和除法的功能。

在本文中,我们将介绍如何制作一个简单的计算器,让用户能够输入两个数字并选择进行的运算。

该计算器将使用基本的HTML、CSS和JavaScript技术,以及一些计算逻辑来实现。

准备工作:在开始制作计算器之前,我们需要确保我们具备以下环境和资源:2. 基础的HTML、CSS和JavaScript知识。

3. 可以创建和保存HTML、CSS和JavaScript文件的文件夹。

4.一些布局和样式设计的想法。

步骤一:创建HTML文件步骤二:设计计算器布局1. 在 "calculator-container" `<div>` 内部,创建一个`<input>` 元素,并给它一个独立的id属性,例如 "input1"。

这个输入框将用于输入第一个数字。

2. 在 "calculator-container" `<div>` 内部,创建一个`<input>` 元素,并给它一个独立的id属性,例如 "input2"。

这个输入框将用于输入第二个数字。

3. 在 "calculator-container" `<div>` 内部,创建一个`<select>` 元素,并给它一个独立的id属性,例如 "operator"。

这个下拉菜单将用于选择运算符。

4. 在 "operator" `<select>` 内部,创建四个 `<option>` 元素,分别代表加法、减法、乘法和除法,这些元素的值分别为 "+"、"-"、"*"和"/"。

《动手做》数学教案二:教你制作简易计算器

《动手做》数学教案二:教你制作简易计算器

今天我们来学习如何制作一个简易的计算器。

这个计算器可以进行加、减、乘、除四种基本运算,除此之外还可以进行开方和取模运算。

它的界面简洁、易于操作,是我们日常生活中必不可少的工具。

让我们来了解一下计算器的基本原理。

计算器主要由两个部分组成:输入和输出。

在输入方面,我们需要一个键盘。

而在输出方面,我们需要一个屏幕来显示结果。

同时,我们还需要一个小小的计算机芯片来进行计算工作。

这样,我们就可以把它们连接起来,制作出一款真正的计算器了。

接着,让我们一步步地来制作这个计算器吧。

我们需要准备一块面包板、一些连线、一个电池盒和一个开关。

将电池盒安装在面包板上并与开关连接。

接下来,我们需要把计算机芯片插入面包板的相应位置,并用连线连接好各个引脚。

电路连接完毕后,我们就可以进行软件编程了。

在编程方面,我们可以使用Arduino。

Arduino是一个开源硬件平台,它能够帮助我们轻松实现各种功能。

在这里,我们需要安装Arduino IDE软件,并将我们的计算器代码写入其中。

代码如下:```#include <Keypad.h>const byte ROWS = 4; //使用4行/列输入键const byte COLS = 4;char keys[ROWS][COLS] = { //设定输入键{'1','2','3','+'},{'4','5','6','-'},{'7','8','9','*'},{'C','0','=','/'}};byte rowPins[ROWS] = {9, 8, 7, 6}; //设定输入键的行和列byte colPins[COLS] = {5, 4, 3, 2};Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); //生成键盘int num1 = 0;int num2 = 0;char op = ' ';void setup() {Serial.begin(9600);}void loop() {char key = keypad.getKey();if (key){Serial.println(key);if(key >= '0' && key <= '9'){ if(op == ' '){num1 *= 10;num1 += key - '0';} else if(op == '+'){num2 *= 10;num2 += key - '0';} else if(op == '-'){num2 *= 10;num2 += key - '0';} else if(op == '*'){num2 *= 10;num2 += key - '0';} else if(op == '/'){num2 *= 10;num2 += key - '0';}} else if(key == '+'){op = '+';} else if(key == '-'){op = '-';} else if(key == '*'){op = '*';} else if(key == '/'){op = '/';} else if(key == '='){if(op == '+'){Serial.println(num1 + num2);} else if(op == '-'){Serial.println(num1 - num2);} else if(op == '*'){Serial.println(num1 * num2);} else if(op == '/'){Serial.println(num1 / num2);}num1 = 0;num2 = 0;op = ' ';} else if(key == 'C'){num1 = 0;num2 = 0;op = ' ';}}}```通过这段代码,我们可以实现计算器的基本功能。

《计算器》的制作方法

《计算器》的制作方法

《计算器》的制作方法【实例说明】:本例制作一个计算器动画的效果。

【操作步骤】:〖一〗、新建文档1.单击“文件”/“新建”命令,创建一个新文档;2.单击“修改”/“文档”命令;在“文档属性”对话框中设置“尺寸”为200×250,背景色为白色;单击“确定”按钮。

〖二〗、制作“背景层”1.双击“图层1”;然后将其命名为“背景层”;2.然后选择工具栏上的矩形工具随意在舞台上绘制一个矩形背景;可参照下面的背景图形:〖三〗、制作“按钮层”1.单击时间轴上的“添加新图层”按钮,再添加一个新“图层2”;然后双击“图层2”将其命名为“按钮层”2.单击“窗口”/“公用库”/“按钮”命令,双击按钮文件夹并从中选择一种按钮;然后拖放到舞台上面即可;3.双击按钮进入按钮编辑状态;选中“text”图层;单击图层下面的“删除图层”按钮,删除该文字图层;4.按“Ctrl+L”组合键打开库面板,从中将按钮拖放20个到舞台上(共拖放20次即可)可参照下面的图形;5.单击“窗口”/“对齐”命令,打开对齐面板,把这些按钮按照下面的图形样式对齐好;放置好的图形如下:〖四〗、制作“按钮文字层”1.单击时间轴上的添加新图层按钮,再添加一个新“图层3”;然后双击“图层3”将其命名为“按钮文字层”;2.选择工具栏上的文本工具;然后输入以下文本信息(文本信息包括:“M+”、“M-”、“MRC”、“C”、“7”、“8”、“9”、“4”、“5”、“6”、“1”、“2”、“3”、“0”、“。

”、“+”、“-”、“×”、“÷”);参照下图:1.单击“窗口”/“对齐”命令,打开对齐面板,把这些按钮文字按照上面的图形样式对齐好;〖五〗、创建文本框1、单击时间轴上的添加新图层按钮,再添加一个新“图层4”;然后双击“图层4”将其命名为“文本框”;2、制作矩形框选中工具栏上的矩形工具,在第1帧的“YANG计算器”下面拖出一个填充色为白色的矩形框;3、绘制上面图中的输入文本框选中工具栏上的文本工具,打开属性面板;选择“输入文本”、字体颜色选黑色;然后在“YANG 计算器”后面的矩形框上面拖出一个大小相同的输入文本框;然后选中该输入文本框,在变量名中命名为“display”;参见下图:〖六〗、创建“Action层”1.单击时间轴上的“添加新图层”按钮,再添加一个新“图层5”;然后双击“图层5”将其命名为“Action”2.选中“代码层”的第1帧,添加如下代码:stop();memory = 0;display = "0";function PressNum(num) {if (clear) {clear = false;dot = false;display = "0";}if (display == "0" and num != ".") {display = num;} else {display = display+num;}}function PressOper(oper) {if (operator == "+") {display = Number(opernum)+Number(display);}if (operator == "-") {display = Number(opernum)-Number(display);}if (operator == "*") {display = Number(opernum)*Number(display);}if (operator == "/") {display = Number(opernum)/Number(display);}clear = true;dot = false;operator = oper;opernum = display;if (oper != "=") {display = oper;}}//在按数字和小数点键时调用PressNum函数,在按"+"、“-”、“*”、“/”键时调用PressOper 函数。

基于Unity制作一个简易的计算器

基于Unity制作一个简易的计算器

基于Unity制作⼀个简易的计算器⽬录⼀、前⾔⼆、效果图及源⼯程三、实现1.界⾯搭建2.代码实现四、后记⼀、前⾔Hello,⼜见⾯了,今天分享如何使⽤Unity制作计算器,难度中等,可以⽤来学习,或者当成其他项⽬的⼩组件导⼊。

当然,也可以导出来,发布到⽹页端,来做⼀个嵌⼊式⼯具也可以。

⼆、效果图及源⼯程效果图:三、实现1.界⾯搭建所有的按钮摆放到Background下⾯。

2.代码实现⾸先找到所有的按钮,添加到事件://结果显⽰TextComputeProcess = GameObject.Find("Canvas/Background/Image/TextComputeProcess").GetComponent<Text>();TextComputeResult = GameObject.Find("Canvas/Background/Image/TextComputeResult").GetComponent<Text>();TextComputeResult.text = "0";RUNSTATE = 0;//操作BtnReset = GameObject.Find("Canvas/Background/重置").GetComponent<Button>();BtnReset.onClick.AddListener(() => OperationDispose("CE"));BtnDelete = GameObject.Find("Canvas/Background/删除").GetComponent<Button>();BtnDelete.onClick.AddListener(() => OperationDispose("Del"));//加减乘除BtnAdd = GameObject.Find("Canvas/Background/加").GetComponent<Button>();BtnAdd.onClick.AddListener(() => OperationDispose("+"));BtnSub = GameObject.Find("Canvas/Background/减").GetComponent<Button>();BtnSub.onClick.AddListener(() => OperationDispose("-"));BtnMul = GameObject.Find("Canvas/Background/乘").GetComponent<Button>();BtnMul.onClick.AddListener(() => OperationDispose("*"));BtnDiv = GameObject.Find("Canvas/Background/除").GetComponent<Button>();BtnDiv.onClick.AddListener(() => OperationDispose("/"));BtnEqual = GameObject.Find("Canvas/Background/等于").GetComponent<Button>();BtnEqual.onClick.AddListener(() => OperationDispose("="));//数字Btn0 = GameObject.Find("Canvas/Background/0").GetComponent<Button>();Btn0.onClick.AddListener(() => NumDispose("0"));Btn1 = GameObject.Find("Canvas/Background/1").GetComponent<Button>();Btn1.onClick.AddListener(() => NumDispose("1"));Btn2 = GameObject.Find("Canvas/Background/2").GetComponent<Button>();Btn2.onClick.AddListener(() => NumDispose("2"));Btn3 = GameObject.Find("Canvas/Background/3").GetComponent<Button>();Btn3.onClick.AddListener(() => NumDispose("3"));Btn4 = GameObject.Find("Canvas/Background/4").GetComponent<Button>();Btn4.onClick.AddListener(() => NumDispose("4"));Btn5 = GameObject.Find("Canvas/Background/5").GetComponent<Button>();Btn5.onClick.AddListener(() => NumDispose("5"));Btn6 = GameObject.Find("Canvas/Background/6").GetComponent<Button>();Btn6.onClick.AddListener(() => NumDispose("6"));Btn7 = GameObject.Find("Canvas/Background/7").GetComponent<Button>();Btn7.onClick.AddListener(() => NumDispose("7"));Btn8 = GameObject.Find("Canvas/Background/8").GetComponent<Button>();Btn8.onClick.AddListener(() => NumDispose("8"));按钮操作://操作点击处理private void OperationDispose(string operation){switch (operation){case "+":if (RUNSTATE == 0)TextComputeProcess.text = "0 + ";else{TextComputeProcess.text = TextComputeResult.text + " + ";m_operation = "+";RUNSTATE = 2;}break;case "-":if (RUNSTATE == 0)TextComputeProcess.text = "0 - ";else{TextComputeProcess.text = TextComputeResult.text + " - ";m_operation = "-";RUNSTATE = 2;}break;case "*":if (RUNSTATE == 0)TextComputeProcess.text = "0 * ";else{TextComputeProcess.text = TextComputeResult.text + " * ";m_operation = "*";RUNSTATE = 2;}break;case "/":if (RUNSTATE == 0)TextComputeProcess.text = "0 / ";else{TextComputeProcess.text = TextComputeResult.text + " / ";m_operation = "/";RUNSTATE = 2;}break;case "=":if (RUNSTATE == 0)TextComputeProcess.text = "0 = ";else{if (RUNSTATE == 3){double result;switch (m_operation){case "+":result = double.Parse(calculateString) + double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " + " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "-":result = double.Parse(calculateString) - double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " - " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "*":result = double.Parse(calculateString) * double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " * " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "/":result = double.Parse(calculateString) / double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " / " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;default:break;}}elseTextComputeProcess.text = "";TextComputeResult.text = "0";RUNSTATE = 0;break;case "Del":if (RUNSTATE == 0)return;else{if (TextComputeResult.text.Length == 1){TextComputeResult.text = "0";}else{TextComputeResult.text = TextComputeResult.text.Remove(TextComputeResult.text.Length - 1, 1); }}break;default:break;}}数字点击处理://数字点击处理private void NumDispose(string num){switch (num){case ".":if (RUNSTATE == 0)TextComputeResult.text = "0";elseTextComputeResult.text += num;break;case "-":if (RUNSTATE == 0)TextComputeResult.text = "0";else{if (RUNSTATE == 1){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 2){pmState = false;}else if (RUNSTATE == 3){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 4){pmState = false;OperationDispose("CE");}}break;default:if (RUNSTATE == 0){TextComputeResult.text = num;RUNSTATE = 1;}else if (RUNSTATE == 1)calculateString = TextComputeResult.text;TextComputeResult.text = "";TextComputeResult.text += num;RUNSTATE = 3;}else if (RUNSTATE == 3){TextComputeResult.text += num;}else if (RUNSTATE == 4){OperationDispose("CE");TextComputeResult.text = num;RUNSTATE = 1;}break;}}完整代码:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class CalculatorControl : MonoBehaviour{private Text TextComputeProcess;//计算过程private Text TextComputeResult;//计算结果private Button BtnReset;private Button BtnDelete;private Button BtnAdd;private Button BtnSub;private Button BtnMul;private Button BtnDiv;private Button BtnEqual;private Button Btn0, Btn1, Btn2, Btn3, Btn4, Btn5, Btn6, Btn7, Btn8, Btn9;private Button BtnPoint, BtnPm;private string calculateString = "";//计算数private string m_operation = "";//操作数private bool pmState = false;//正负状态private int RUNSTATE = 0;//0 默认 1 输⼊数字 2 输⼊操作符 3 输⼊操作符再输⼊数字 4 计算结果后void Start(){//结果显⽰TextComputeProcess = GameObject.Find("Canvas/Background/Image/TextComputeProcess").GetComponent<Text>(); TextComputeResult = GameObject.Find("Canvas/Background/Image/TextComputeResult").GetComponent<Text>();TextComputeResult.text = "0";RUNSTATE = 0;//操作BtnReset = GameObject.Find("Canvas/Background/重置").GetComponent<Button>();BtnReset.onClick.AddListener(() => OperationDispose("CE"));BtnDelete = GameObject.Find("Canvas/Background/删除").GetComponent<Button>();BtnDelete.onClick.AddListener(() => OperationDispose("Del"));//加减乘除BtnAdd = GameObject.Find("Canvas/Background/加").GetComponent<Button>();BtnAdd.onClick.AddListener(() => OperationDispose("+"));BtnSub = GameObject.Find("Canvas/Background/减").GetComponent<Button>();BtnSub.onClick.AddListener(() => OperationDispose("-"));BtnMul = GameObject.Find("Canvas/Background/乘").GetComponent<Button>();BtnMul.onClick.AddListener(() => OperationDispose("*"));BtnDiv = GameObject.Find("Canvas/Background/除").GetComponent<Button>();BtnDiv.onClick.AddListener(() => OperationDispose("/"));BtnEqual = GameObject.Find("Canvas/Background/等于").GetComponent<Button>();BtnEqual.onClick.AddListener(() => OperationDispose("="));//数字Btn0 = GameObject.Find("Canvas/Background/0").GetComponent<Button>();Btn0.onClick.AddListener(() => NumDispose("0"));Btn1 = GameObject.Find("Canvas/Background/1").GetComponent<Button>();Btn1.onClick.AddListener(() => NumDispose("1"));Btn2 = GameObject.Find("Canvas/Background/2").GetComponent<Button>();Btn2.onClick.AddListener(() => NumDispose("2"));Btn3 = GameObject.Find("Canvas/Background/3").GetComponent<Button>();Btn3.onClick.AddListener(() => NumDispose("3"));Btn4 = GameObject.Find("Canvas/Background/4").GetComponent<Button>();Btn4.onClick.AddListener(() => NumDispose("4"));Btn5 = GameObject.Find("Canvas/Background/5").GetComponent<Button>();Btn5.onClick.AddListener(() => NumDispose("5"));Btn9 = GameObject.Find("Canvas/Background/9").GetComponent<Button>();Btn9.onClick.AddListener(() => NumDispose("9"));BtnPoint = GameObject.Find("Canvas/Background/点").GetComponent<Button>();BtnPoint.onClick.AddListener(() => NumDispose("."));BtnPm = GameObject.Find("Canvas/Background/正负").GetComponent<Button>();BtnPm.onClick.AddListener(() => NumDispose("-"));}//操作点击处理private void OperationDispose(string operation){switch (operation){case "+":if (RUNSTATE == 0)TextComputeProcess.text = "0 + ";else{TextComputeProcess.text = TextComputeResult.text + " + ";m_operation = "+";RUNSTATE = 2;}break;case "-":if (RUNSTATE == 0)TextComputeProcess.text = "0 - ";else{TextComputeProcess.text = TextComputeResult.text + " - ";m_operation = "-";RUNSTATE = 2;}break;case "*":if (RUNSTATE == 0)TextComputeProcess.text = "0 * ";else{TextComputeProcess.text = TextComputeResult.text + " * ";m_operation = "*";RUNSTATE = 2;}break;case "/":if (RUNSTATE == 0)TextComputeProcess.text = "0 / ";else{TextComputeProcess.text = TextComputeResult.text + " / ";m_operation = "/";RUNSTATE = 2;}break;case "=":if (RUNSTATE == 0)TextComputeProcess.text = "0 = ";else{if (RUNSTATE == 3){double result;switch (m_operation){case "+":result = double.Parse(calculateString) + double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " + " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "-":result = double.Parse(calculateString) - double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " - " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "*":result = double.Parse(calculateString) * double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " * " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "/":result = double.Parse(calculateString) / double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " / " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;{TextComputeProcess.text = TextComputeResult.text + " = ";}}break;case "CE":TextComputeProcess.text = "";TextComputeResult.text = "0";RUNSTATE = 0;break;case "Del":if (RUNSTATE == 0)return;else{if (TextComputeResult.text.Length == 1){TextComputeResult.text = "0";}else{TextComputeResult.text = TextComputeResult.text.Remove(TextComputeResult.text.Length - 1, 1); }}break;default:break;}}//数字点击处理private void NumDispose(string num){switch (num){case ".":if (RUNSTATE == 0)TextComputeResult.text = "0";elseTextComputeResult.text += num;break;case "-":if (RUNSTATE == 0)TextComputeResult.text = "0";else{if (RUNSTATE == 1){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 2){pmState = false;}else if (RUNSTATE == 3){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 4){pmState = false;OperationDispose("CE");}}break;default:if (RUNSTATE == 0){TextComputeResult.text += num;}else if (RUNSTATE == 2){calculateString = TextComputeResult.text;TextComputeResult.text = "";TextComputeResult.text += num;RUNSTATE = 3;}else if (RUNSTATE == 3){TextComputeResult.text += num;}else if (RUNSTATE == 4){OperationDispose("CE");TextComputeResult.text = num;RUNSTATE = 1;}break;}}}效果图如下:四、后记完整代码278⾏,还是依旧那么简练,整体代码难度不⼤,主要是状态之间的切换:1、输⼊数字的状态2、输⼊操作符状态3、输⼊操作符后再输⼊数字状态4、计算结果后状态理解这些状态后,代码就容易理解了。

  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
相关文档
最新文档