知:从《小狗钱钱》说起
你看过《小狗钱钱》这本书吗?这是一本风靡世界的财富启蒙读物,作者希望通过一个故事来教会我们正确认识和对待财富。如何正确认识财富、创造财富和管理财富,这被称为“财商”,是我们必须从小培养的能力之一。为什么财商这么重要呢?马克·吐温说过:“如果你懂得使用,金钱是一个好奴仆,如果你不懂得使用,它就变成你的主人。”《小狗钱钱》这本书为我们提供了许多有益的建议,其中最为有趣的就是在确立你认为最重要的目标基础上,建立“梦想储蓄罐”和“梦想相册”,它们会在潜意识层面鼓励我们培养良好的理财习惯。
对于“梦想储蓄罐”,这本书建议我们为自己的梦想准备一个储蓄罐,把每月你可以支配零花钱的40%放到储蓄罐,直到达成目标金额,实现自己的梦想。具体的做法你参考书中的内容。本节我们用 Scratch 建立一个虚拟的“梦想储蓄罐”,每当你在现实中攒入一笔金额,就在这个程序中记录一下,你可以在程序中看到实际的完成情况和过往的储蓄明细,让你在梦想达成的路上一步一个脚印地前进。
思:程序设计
通过上文的需求分析,我们很容易想到用变量把你的梦想内容、目标金额和完成金额保存起来,再建立一个列表用于保存储蓄记录。为实现程序功能,需要三个角色:
- 启动/中止梦想的按钮;这是一个具有两个造型的按钮,和“播放/暂停”有点像;
- 增加储蓄按钮;
- 显示/隐藏储蓄记录列表的按钮,同样需要两个造型。
程序角色设计如下:
行:编程实现
1、建立一个 Scratch 项目后,我们先要准备一下舞台和素材。既然这是一个与梦想有关的程序,你不妨找一张自己喜欢的、与梦想主题有关的图片作为背景,再添加一个“Button2”角色(在角色的两个造型上分别加入“启动梦想”和“中止”文字),另外你需要再用绘图编辑器绘制两个按钮角色,一个是“存入”;另一个是“明细/隐藏”。注意由于我选择了深色背景,所以把按钮的文字设置为了白色,你可以根据自己选择的背景来设置按钮文字颜色。如果你觉得这些素材准备起来麻烦,就直接使用本书提供的资源吧!
2、添加“梦想内容”、“目标金额”、“完成金额”三个变量及“记录数据”列表,将它们设置到舞台的合适位置:
3、默认情况下没有启动梦想的时候,变量、列表和存入、明细按钮都是不可见的,你需要将它们设置为隐藏,舞台的状态应该变成这样:
4、现在为“启动梦想”按钮编写代码,这里需要根据角色造型来确定执行的逻辑,如果是造型1,要执行启动梦想代码,让用户输入梦想内容和目标金额,并将变量和两个按钮都显示出来;如果是造型2,要执行中止梦想代码,删除记录列表中的项目,并将变量、按钮隐藏。为了让代码结构更清晰,我把显示和隐藏状态做成了自制积木:
5、为“存入”按钮编写代码,这里要询问储蓄金额,在完成金额上增加储蓄金额,然后在记录数据列表中添加一条储蓄记录。这里我使用了连接指令,把 Scratch 提供的当前年、月、日与存入金额连接起来变成一个字符串来保存。这样就会形成“20200225:存入50”这样带有日期、显示更直观的记录:
6、为明细/隐藏按钮编写代码,代码相当简单,切换列表显示状态:
7、如果你像我一样希望这个程序执行时带点柔和的背景音乐,就在启动梦想按钮代码中加入一段播放指令,程序就完成了!
悟:总结与拓展
你是否注意到,在使用储蓄功能时,我们必须一次性完成两个操作:
- 在列表中增加一条当前日期的储蓄记录;
- 在完成金额上增加本次储蓄金额。
这两项操作必须一起完成,否则就会产生问题(比如产生了储蓄记录,完成金额却没有增加),这和你在现实中银行的系统是一样的,具有这种不可分割特性的操作被称为一个“事务”,如果你操作的数据牵涉到金钱或其它有价值的账户,就必须注意“事务”问题。当然,在Scratch 中并没有严格的事务控制,你只是需要留意一下这个概念就可以了。
另外,你有没有注意到,我们没有对变量的输入做限制,比如目标金额你可以输入数字,也可以输入一些文字,怎样确保用户输入的一定是金额呢?不妨思考一下。