极客小将

您现在的位置是:首页 » scratch编程资讯

资讯内容

第15课 电子点菜器

极客小将2019-08-29-
第15课 电子点菜器             任务导航如今很多餐馆已经使用电子菜单代替了传统菜单,顾客可以在电子设备上使用电子点菜系统进行点菜;也有很多饭店开展了网络订餐业务,顾客在家里通过网络进行点菜,就可享用美味。本课,我们将使用Sc

第15课 电子点菜器

             

任务导航

如今很多餐馆已经使用电子菜单代替了传统菜单,顾客可以在电子设备上使用电子点菜系统进行点菜;也有很多饭店开展了网络订餐业务,顾客在家里通过网络进行点菜,就可享用美味。本课,我们将使用Scratch制作电子点菜器,如图15.1所示。

[赵轶华1]

图15.1 电子点菜器界面

Follow Me

1. 制作简单点菜器

(1)设计简单点菜器的功能

简单点菜器的功能如表15.1所示。

表15.1 简单点菜器的功能

 

功能

1

每种菜品被点击时,将该菜品信息显示到链表中

2

每种菜品被点击时,将该菜品的价格加入总价之中

3

单击绿旗,可以重新进行点菜或进行下一次点菜

   

(2)设计简单点菜器的界面

第1步:新建Scratch程序,保存文件到指定位置,文件名为“简单点菜器”。

第2步:删除“角色1”,导入各种菜品并添加角色,设置角色名称,如图15.2所示。

图15.2 角色设置

第3步:新建一个适用于所有角色的变量“总价”。

第4步:新建一个适用于所有角色的链表“已选菜品”。

第5步:将所建的角色、变量和链表,放置在舞台的合适位置,如图15.3所示。

图15.3 简单点菜器界面

 

(3)编写代码

第1步:按照图15.4所示的脚本,为角色“薯条”添加脚本。

第2步:根据简单点菜器的功能设置,当单击绿旗时,可以重新进行点菜或进行下一次点菜。此时需要将“总价”清零,将链表清空,脚本如图15.5所示。

图15.4 角色“薯条”脚本

图15.5 程序初始化脚本

DIY

模仿“薯条”完成其它菜品角色的脚本。

 

2. 制作具有减少菜品功能的电子点菜器[赵轶华2]

(1)设计新增功能

“简单点菜器”只能增加菜品,不能修改菜单,我们通过改进电子点菜器,使其能够增加或减少菜品。其新增功能如表14.2所示。

表14.2 具有减少菜品功能的电子点菜器的新增功能

 

新增功能

1

鼠标单击各角色上半部分,增加该菜品

2

鼠标单击各角色下半部分,减少该菜品

(2)完善界面设计

 

为实现上述新增功能,需要为每个角色设置“增加”和“减少”的标记,分别使用不同的颜色表示。单击该区域时,通过颜色来确定顾客是要增加菜品还是减少菜品。

第1步:将文件另存为“具有减少菜品功能的点菜器”。

第2步:编辑各角色,分别使用深粉色和浅粉色来标记“增加”和“减少”菜品的区域,如图15.6所示。

图15.6具有减少菜品功能的点菜器界面

(3)编写代码

第1步:增加新角色“角色11”,角色中只绘制一个淡淡的浅色“点”,如图15.7所示。

第2步:按照图15.8所示的代码,为角色11添加脚本。

图15.7 角色11

图15.8 “角色11”脚本

第3步:为角色“薯条”修改脚本,如图15.9所示。

   

图15.9 角色“薯条”脚本

 

DIY

模仿角色“薯条”完成其它菜品角色的脚本。

 

3. 电子点菜器的进一步改进[赵轶华3]

(1)设计新增功能

尽管电子点菜器已经被改进,但是仍然有很多不足,如在某个菜品还没被选择时,仍能够减少该菜品的数目,致使该菜品的数目和总价变为负数。同时,需要增加一个提交按钮,当点好菜时,单击“提交”按钮,链表中显示已选择菜品。

                                 

 

表15.3 点菜器新增功能

 

新增功能

1

当某种菜品没被选择时,该菜品不能被减少。

2

增加“提交”按钮。单击“提交”按钮,链表中显示已选择菜品。

 

(2)完善界面

第1步:为每个变量增加“数目”变量。为“薯条”增加一个只适用于这个角色的变量“数目”,在舞台的“数目”上右击,选择“大型读数器”,并将其拖放到薯条上合适位置,如图15.10所示。

图15.10 增加“数目”变量

DIY

模仿“薯条”完成其它菜品角色的设置。

 

第2步:添加一个角色“提交”,如图15.1所示。

   

(3)编写代码

第1步:改进角色“薯条”脚本,如图15.11所示。

图15.11 角色“薯条”改进脚本

第2步:为角色“提交”添加脚本,如图15.12所示,将薯条及所选数目添加到列表中。

图15.12 角色“提交”脚本

DIY

请模仿角色“薯条”脚本,将“提交”中的其它菜品角色脚本完成。

 

知识着陆

脚本:用局部变量解决具有共性的问题

设计:点菜系统要注意用户的使用习惯,以方便客人,提高用户体验为原则

研发:研发的过程要由浅到深,在研发的过程中要不断找人来试用,选取合理意见进行改进,但是要注意改进所需付出的时间成本

 

 

创作天地

  1. 更换你喜欢的菜肴或食品,完善点菜器程序。
  2. 制作一个其它种类商品的选购程序。
  3. 选择一个其他行业询问一下他们有什么样的软件需求,尝试着满足这种需求

 

 

视野拓展

还记得耳机线开关么?寻找一个光敏电阻,将开关取下,把光敏电阻接到耳机线两端,在白炽灯下你会发现有一个稳定的音量值,并且这个音量值随着光敏电阻感受到的光照强度的变化而变化。用这个现象,可以用手去控制感光制作很多有趣有用的设备。

如果你手里有普通电阻,将普通电阻和光敏电阻串联起来,你会发现当光敏电阻感受到的光照强度一定的时候,音量值伴随普通电阻阻值变化,利用这个效应,我们甚至可以用麦克风端口测量电阻阻值、温度、长度……,详情你可以上优酷视频查找“感测与控制技术用麦克风测电阻”了解更多有趣有用的知识。

[赵轶华1]1. 图15.1中是“炸薯条”,而图15.2中是“薯条”,需统一。

2. 已选菜品里,改为“鱼香肉丝 3份”是不是会更清楚一点。

3. 截图的链表中是否可以只显示3条记录,可以方便计算合计的金额。现在显示4条,看不到第1条是什么菜。

4. 图中的菜品是否需要按照某种规律进行一下排序,比如按照价钱的高低、西餐和中餐的区分等。

[赵轶华2]改进版本-电子点单1中删除某项菜品时,会在链表中增加一条“删除 XXX: X元”,这个觉得有点别扭,因为已选菜品中列出的应该是已经选择的菜品。不知道是否有办法把要删的菜品从链表中删掉。

[赵轶华3]改进版本-电子点单2中,选择一个菜品后,不会在链表中显示,只有在提交之后才会显示在链表中。这个是否需要改为每点一个菜就在链表中显示?

点完菜,单击“提交”按钮后,如果再选别的菜,然后单击“提交”按钮,之前链表里的记录是否应该清空,只保留最新的点菜记录?


网友点评

共有5条评论来说两句吧...