【青少年编程】【蓝桥杯】排队购票

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。

我们将有关编程题目的教学视频已经发布到抖音号「21252972100,小马老师」上,大家可以关注一下。

排队购票

1. 题目要求

一场球赛开始前,售票工作正在紧张的进行中。每张球票为50元,现有10个人排队等待购票,其中有些人手持50元的钞票,另外一些人手持100元的钞票;假设开始售票时售票处没有零钱,请编程实现判断该队伍是否会出现找不出钱的情况?

说明:

  • 如果这10个人手持的币值是(50,50,100,50,100,50,100,100,50,100)则能找出钱;
  • 如果手持的币值是(50,50,100,50,100,100,100,50,50,50),则不能找出钱。

效果如图所示:

2. 设计思路与实现

(1)角色分析

  • 角色:小猫

(2)背景分析

  • 背景:Castle 3

(3)脚本编写

「a. 角色:小猫」

本题目是“栈”(插入和删除都在列表的一端进行,具有后进先出的特点)的典型应用。

程序的第1部分:向列表“排队”中随机加入十个数字(50或100)。

程序的第2部分:模拟购票,遍历列表“排队”中的每个元素。

  • 如果,该元素是50,则入栈。
  • 否则,(程序的第3部分)
    • 判断栈是否为空,若为空说明没有钱可以找零,输出“第几位客人的钱找不开”,程序结束。
    • 否则,删除栈顶元素,说明已经找零完毕。

遍历完整个列表“排队”,输出“运气不错,能找出钱”。

3. 评分标准

下列各评分项累积积分,前一项未得分,后续项不得分,共30计分点。

13分:添加正确的背景角色,队伍中手持金额(50或者100),由电脑随机产生,并逐一写入链表中由角色说出来;

9分:小猫能自动判断队伍是否会出现找不出钱的情况,如果有会提示是“第几位客人的钱找不开”;

8分:如果能找出钱电脑说:“运气不错,能找出钱”。


(0)

相关推荐