当前位置: 首页 > news >正文

用scratch制作一个简易计算器

Scratch 是世界上最大的儿童编码社区,是一种具有简单视觉界面的编码语言,主要面对全球青少年开放,允许青少年创作数字故事、游戏和动画,并通过将它们上传到 Scratch 网站与在线社区分享。Scratch 由麻省理工学院的“终身幼儿园团队”开发,在 2007 年作为可下载的桌面应用程序推出。在麻省理工学院开发和支持超过 15 年后,Scratch 于 2019 年底从麻省理工学院分拆出来并入Scratch 基金会。

scratch的定位是儿童编程平台,操作相对简单,编程就像搭积木一样,不用写代码。有很多人对这个软件其实有些误解,觉得这个是小孩用的,只能做些简单的动画,做些游戏,其实只要是编程软件,无论形式怎样,都需要有编程的思维,也可以用这个软件编写复杂的程序,可以锻炼孩子们创新思维和创造能力。

下边我就介绍一下如何用scratch编写一个简易计器的操作过程。本例用的软件版本为scratch3.29.1,操作系统为win10。

目录

一、scratch界面布局

二、简易计算器功能

三、编程过程介绍

1、角色设置

2、计算器操作界面布局

3、代码介绍

(1)变量含义

(2)开关键

(3)数字和小数点 

(4)删除键

(5)归零键

(6)运算符

(7)等号

四、scratch程序文件怎样转换乘H5或者exe文件

(一)转换成HTML5文件

​(二)生成可执行exe文件

1、需要用到的软件

2、下面开始介绍如何进行操作


一、scratch界面布局

scratch界面分为5个区域:积木区、代码区(脚本区)、舞台区、角色列表区和舞台背景列表区。

二、简易计算器功能

计算器的界面如图所示。可以进行整数、小数的加减乘除4则运算,设置了计算器开关、归零键、删除键。

三、编程过程介绍

1、角色设置

这个计算器一共19个按键,每个按键都是一个角色。0~9这十个数字,以及开关、删除键都是选用的软件自带的角色。“+、-、×、÷、=”和“.”软件角色库里没有,我用windows画图软件画的,然后加载到角色列表区即可。

2、计算器操作界面布局

3、代码介绍

代码分为6类:开关键、删除键、归零键、数字符号和小数点、四则运算符、等号。定义的变量有开机、显示、缓存、计算结束、算法、字符和i,除“显示”这个变量外,其余的都属于过程变量,不用在界面上显示,所以变量前边的“√”要取消,如下图所示。

(1)变量含义

“开机”用来记录计算器处于开机和关机状态,变量等于1时表示开机,等于0时表示关机。

“显示”用来显示输入的第一个数、第二个数和运算结果。

“缓存”用来暂存输入的第一个数。

“算法”用来记录点击的运算符是哪一种,等于“加”时表示点了“+”,等于“减”时表示点了“-”,等于“乘”时表示点了“×”,等于“除”时表示点了“÷”,等于空时,表示还没有点运算符。

“计算结束”用来记录上一次运算是否结束,等于1时表示上一次运算已经结束,可以进行下一次运算。等于0时表示上一次运算还没有结束,此时还不能进行下一次运算。

“字符”和i是用来进行删除功能的,当点删除键后,剩余的字符就是除去最后一个字符后的子字符,“字符”用来记录这个子字符。i用来记录子字符中的第i个字符的序号。

(2)开关键

开关键的功能是打开和关闭计算器,打开时颜色为橙色,关闭时为灰色。所以开关键这个角色有两个造型。开关打开和关闭时设置了不同的音效。

代码如下图所示。当打开时,显示屏幕显示,变量“显示”、算法

(3)数字和小数点 

此类角色的代码除最后一个模块“将显示设置为连接显示和?”外,其余的代码完全一样,“?”表示0~9或小数点“.”,不同的角色,那个“?”这个参数要改为那个相应的字符即可。最外层的判断语句,用来控制在开机的状态下,点这些按键才会响应。第二层有两个并列的判断语句,用来判断是否运算结束了,运算结束就是输入了第一个数、运算符和第二个数,并且按了等号计算出了结果并且已经显示了(刚开机时也默认是运算结束状态),在输入两个数、运算符过程中,都属于输入过程,该次运算还没有结束。

设置这个变量的作用是,当一次运算结束后,可以不按归零键,即可直接进行下一次运算的输入。

(4)删除键

当输入操作数过程中,因操作失误按错了数字键,可以按删除键,把操作数最后一位数字删除后再继续输入,设置这个删除键的作用是不会因为输错了一位数,就得按归零键后,再把所有的数字都重新输入。

这个程序的思维是:把这个操作数的第1位至倒数第2位数字逐位拼接成一个新的操作数,用“字符”这个变量来记录,然后再赋值给“显示”这个变量,这样就相当于把最后一位数字删除了,小数点也可以删除。

(5)归零键

归零键的作用就是当输入的操作数完全错误或者显示异常时,可以按此键,把之前输入的第一个数、第二个数、运算符等内容完全清空,以待重新输入,此时相当于开启一次新的运算。

(6)运算符

4个运算符的代码除“将算法设为?”这个模块外,其他的都一样,这个“?”表示“加、减、乘、除”这个内容,不同的角色要改为相应的内容。按了运算符之后,代表第一个操作数输入完成,所以要把“显示”这个变量的内容存入“缓存”这个变量内,并把“显示”这个变量内容清空,以待输入第二个操作数。第二层的判断语句作用是,防止多次输入运算符,当没有输入运算符时,“算法”变量可以接受赋值,当已经赋值后,在一次运算结束前,不允许再次按其他运算符的键,否则会显示“不能重复运算!”,用来提醒。

(7)等号

当按下等号后,根据之前输入的两个操作数和运算符,计算出相应的结果并显示,程序运行到这里,一次运算结束,所以运算符要清空,计算结束标志位要赋值为1,准备下一次运算。

四、scratch程序文件怎样转换乘H5或者exe文件

此部分操作可以参考scratch3的作品如何转换成H5或者exe文件

(一)转换成HTML5文件

打开  https://sheeptester.github.io/words-go-here/htmlifier/(如下图所示)速度可能比较慢,请耐心等待:

生成后的网页格式如下图所示。

(二)生成可执行exe文件

本步操作本人还没有验证,操作步骤直接引用的原文,感兴趣的朋友可以试一下。

以前我们分享过scratch2如何转换成exe的教程,但是它并不适用scratch3。Scratch3.0产生的文件是sb3文件,目前需要使用方法如下:

参考:https://scratch.mit.edu/discuss/topic/341617/?page=1

1、需要用到的软件

(1)下载并解压nwjs,下载地址:Downloads

(2)下载makesfx.exe,无需安装,双击即可运行。下载地址:Make SFX (Self-extracting archive)

2、下面开始介绍如何进行操作

(1)先转换成HTML5文件(操作如上一)

(2)把下载的project.html移动到nwjs-v0.42.2-win-x64.zip解压后的目录。并在该目录下建立一个icon图标文件如01.ico,以及配置文件package.json文件(可以用记事本创建,注意:保存时编码选为UTF-8,否则会报错)

 package.json文件内容示例:项目名字,主程序文件,图标。(其中的冒号引号等是英文的)

{
"name": "您的应用程序或游戏名称",
"main": "project.html",
"icons": {"16":"01.ico"}
}

如果不用图标,则删除project.html后面的最后一个逗号和图标行,否则需要有一个ico图标。

(3)此时,双击运行nw.exe,就可以预览效果了(并没有真正生成exe可执行文件)。

 (4)运行makesfx.exe,指定目录、文件名和图标,制作成一个exe文件,如下图:

① nwjs-v0.42.2-win-x64.zip解压后的目录(包含nw.exe、package.json和所有其他文件的文件夹 )

② 目标SFX文件(exe文件保存的位置和名字)

③ 应用程序的图标ico文件

④ 选择nwjs解压目录下面的nw.exe 

⑤ 单击“MakeSfx”按钮,将构建一个可执行文件——exe文件【文件比较大】

 

(全文结束)

http://www.dtcms.com/a/32071.html

相关文章:

  • 【Linux】35.封装 UdpSocket(2)
  • Coroutine协程
  • MySQL要点总结一
  • #渗透测试#批量漏洞挖掘#Progress Software Flowmon命令执行漏洞(CVE-2024-2389)
  • HarmonyOS 开发套件 介绍——下篇
  • 代码随想录算法训练营day42(0210)
  • 《平面几何强化训练题集》第2章10-29题
  • web服务器信创,保兰德(ESB)实时步骤
  • 2025软件测试面试常问的题(详细解析)
  • 在一个集成的 SynMatrix-Ansys 设计工作流程中实现 3D 滤波器仿真
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(一)
  • 给出方法步骤 挑战解决 用加密和访问控制保护数据隐私。 调架构、参数与用 GPU 加速优化模型性能。 全面测试解决兼容性问题。
  • 本地化部署 DeepSeek:从零到一的完整指南
  • 【Java】单例模式
  • 二级公共基础之数据结构与算法篇(七)排序技术
  • 基于ffmpeg+openGL ES实现的视频编辑工具-添加贴纸(八)
  • DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析
  • 曝光铁三角
  • 三维重建(十四)——铰接类文章整理
  • 前端面试-JavaScript 数据类型详解
  • Kubernetes控制平面组件:APIServer 基于匿名请求的认证机制详解
  • std::lock_guard、std::unique_lock、std::shared_lock
  • Oil Invoice Process
  • Linux内核,slub分配流程
  • 系统思考—结构影响行为
  • PyTorch v2.6 Overview
  • springboot+dubbo+zookeeper的注册服务和调用实践
  • vue2.x 中子组件向父组件传递数据主要通过 $emit 方法触发自定义事件方式实现
  • DeepSeek最新开源动态:核心技术公布
  • 创建Linux虚拟环境并远程连接