编程大作战任务解说—scratch智能快递计算器

一、任务描述

家住在广东的乐乐妈妈有一个包裹要发往北京,包裹的重量是5.5kg。请你使用Scratch制作一个计算器,帮助乐乐妈妈算一算使用哪个最省钱,费用是多少。详情请点击:Scratch编程任务《智能快递计算器》

快递收费标准:

【EMS空运快递】首重15元/0.5KG、续重5元/0.5KG。【次日达】

【顺丰快递】首重20元/KG、续重15元/KG【次日达】

【申通快递】首重10元/KG、续重3元/KG【隔日达】

【圆通快递】首重8元/KG、续重4元/KG【隔日达】

任务要求概述:能够通过选择(1:申通;2圆通;3:顺丰;4:EMS;5:最经济;6:最快),计算出不同方案的收费。具体请点击:Scratch编程任务《智能快递计算器》

二、任务分析

1、需要了解快递的收费计算方式,分为两部分:

λ首重费用(可以理解为最低收费标准)

超重部分费用=(物品重量-首重)*续重费用 【超出重量不足一公斤按1公斤计算,ems是不足0.5公斤,按0.5公斤计算】

例如:包裹重量为2.3公斤,那么申通的收费就是首重10元加上续重费用2.3-1=1.3按2公斤算(可以直接用scratch运算里的“向上取整”)就是2*3=6元,即总共收费为16元。(这里需要注意EMS是按0.5公斤计费的)

2、在选择最经济的时候,需要对多个价格进行比较找出最小的。(方法是:先用前两个数比较,得到较小的,然后再用较小的数与后面的数字比较,始终记住小的那个数,这样全部比结束,记住的那个就是这些数理最小的了)

三、制作步骤

1、添加必要的变量,包裹重量、各个快递收费的结果,还有用于记录最低收费和最低收费快递名称的变量。

2、为了程序简洁,容易理解,我们添加6个自定义模块,分别对应6中不同的快递方案,每个自定义模块带有一个数字参数,用于传入包裹重量。

3、根据我们计算快递费用的方法,分别在快递费用的的模块下完成该快递的费用计算。

4、最经济快递方案的思路:分别计算各个快递的费用,然后进行比较,得到最低费用的那个快递,然后说出来。

5、最快捷的方案就相对简单,因为只有ems和顺丰两个快递进行比较,思路跟上面一样。

各个方案的计算都已在各自的模块内完成,剩下的就只需要根据用户的不同选择进行调用即可,主要代码如下:

四、小结

这个题目其实并不复杂,只要能够理解如何比较出最小数和快递费用的计算即可完成。通过这个例子大家还可以通过自己实际动手练习来体会自定义模块的使用,以及使用自定义模块会给我们带来哪些好处。如果不用自定义模块,整个程序将会看起来非常庞大,如果出了错误还很难定位,甚至影响到其它脚本的正常运行。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171213A06VMN00?refer=cp_1026

同媒体快讯

扫码关注云+社区