資訊內容
第15課 電子點菜器
第15課 電子點菜器
任務導航
如今很多餐館已經使用電子菜單代替了傳統菜單,顧客可以在電子設備上使用電子點菜系統進行點菜;也有很多飯店開展了網絡訂餐業務,顧客在家里通過網絡進行點菜,就可享用美味。本課,我們將使用Scratch制作電子點菜器,如圖15.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]1. 圖15.1中是“炸薯條”,而圖15.2中是“薯條”,需統一。
2. 已選菜品里,改為“魚香肉絲 3份”是不是會更清楚一點。
3. 截圖的鏈表中是否可以只顯示3條記錄,可以方便計算合計的金額。現在顯示4條,看不到第1條是什么菜。
4. 圖中的菜品是否需要按照某種規律進行一下排序,比如按照價錢的高低、西餐和中餐的區分等。
[趙軼華2]改進版本-電子點單1中刪除某項菜品時,會在鏈表中增加一條“刪除 XXX: X元”,這個覺得有點別扭,因為已選菜品中列出的應該是已經選擇的菜品。不知道是否有辦法把要刪的菜品從鏈表中刪掉。
[趙軼華3]改進版本-電子點單2中,選擇一個菜品后,不會在鏈表中顯示,只有在提交之后才會顯示在鏈表中。這個是否需要改為每點一個菜就在鏈表中顯示?
點完菜,單擊“提交”按鈕后,如果再選別的菜,然后單擊“提交”按鈕,之前鏈表里的記錄是否應該清空,只保留最新的點菜記錄?
