(
课件网) 4.2基数排序 高中信息技术/教科版/选择性必修1 目录 1.创设情境,引入新课 2.体验探究,了解排队取号 3.引导分析,建立数据结构 4.设计算法,完成函数代码 5.编程实现,模拟测试 6.课堂小结 1.创设情境,引入新课 这是什么设备?其主要功能是什么?主要应用在哪些地方? 这是什么设备?其主要功能是什么?主要应用在哪些地方? 本节围绕“餐馆排队取号模拟系统”项目展开学习,通过项目活动来了解餐馆排队取号模拟系统的基本思路,体验队列在解决实际问题中的作用。本节主要包含“模拟餐馆排队取号”和“编程实现餐馆排队取号模拟系统”两个任务。 2.体验探究,了解排队取号 任务一模拟餐馆排队取号 活动1体验餐馆排队取号 A012 你等候的是:2人桌 你前面等待人数:4人 过号作废,请注意叫号。 取号时间:2018.6.8 12:08 小明和同学一起到餐馆排队就餐,拿到了如图4.3.1所示的排号单。从排号单中可以看出,小明在“2人桌”中排在了 号,目前在此队等候的共有 桌顾客。 在小明和同学等待就餐的过程中,没有新顾客到来,“2人桌”叫号已经叫到A010号,此时还有 桌顾客等候就餐。 图4.3.1取号机和排号单 A012 4 2 餐馆排队取号包括取号和叫号两个部分。 取号就是根据所选餐桌类型生成排队号码等信息将顾客入队。 叫号就是根据空闲餐桌类型,将排在该餐桌类型队列队首的顾客出队。 任务一模拟餐馆排队取号 活动1体验餐馆排队取号 A012 你等候的是:2人桌 你前面等待人数:4人 过号作废,请注意叫号。 取号时间:2018.6.8 12:08 小明和同学一起到餐馆排队就餐,拿到了如图4.3.1所示的排号单。从排号单中可以看出,小明在“2人桌”中排在了 号,目前在此队等候的共有 桌顾客。 在小明和同学等待就餐的过程中,没有新顾客到来,“2人桌”叫号已经叫到A010号,此时还有 桌顾客等候就餐。 图4.3.1取号机和排号单 A012 4 2 任务一模拟餐馆排队取号 活动2模拟排队取号 假设餐馆共有10张餐桌,“2人桌”5张,桌号1~5;“4人桌”3张,桌号6~8;“8人桌”2张,桌号9~10。为了区分不同的餐桌类型,排队号码的开头用不同的字母表示。“2人桌”用A表示,“4人桌”用B表示,“8人桌”用C表示。 小明等两人12:08来到餐馆等待就餐,取到了A012号,排号单显示前面有4组顾客等候,则表示“2人桌”等待队列中有4组顾客,如图4.3.2所示。 图4.3.2 “A012”入队 任务一模拟餐馆排队取号 活动2模拟排队取号 12:10时,系统叫号“A008”到5号桌就餐,表示空出一张“2人,排在“2人桌”队首的顾客可以出队就餐,如图4.3.3所示。 图4.3.3“A008”出队 排在A008号的顾客排队等候时间为 分钟。 7 小梅等四人12:20来到餐馆等待就餐,取到了“B008”号,当前“4人桌”的排队情况如图4.3.4所示,请按照上面的思路将B008排进队列。 B008 12:20 队首 原队尾 新队尾 分析以上模拟过程可以发现,餐馆排队取号入队,总是排到不同餐桌类型的队尾。叫号就餐,总是从不同餐桌类型的队首开始。这个过程具有先进先出的特点,可以使用队列结构作为实现排队取号模拟系统的数据结构。 3.引导分析,建立数据结构 任务二 编程实现餐馆排队取号模拟系统 活动1建立数据结构 在排队取号用餐的过程中,与顾客有关的信息包括顾客所选的餐桌类型、顾客的用餐时间、顾客取号时间等。为了方便处理这些信息和操作,定义顾客类Guest,其Python代码如下。 01. class Guest: #定义顾客类 02.def __init__(self, tableType): 03.self.tableType=tableType #顾客所选餐桌类型 04.#随机生成顾客用餐时间 05.self.stayTime=random.randrange(20,60) 06. #生成顾客取号信息 07.def takeTicket(self,number,order,timeTick) 任 ... ...