搜索
    上传资料 赚现金
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案
    立即下载
    加入资料篮
    资料中包含下列文件,点击文件名可预览资料内容
    • 课件
      教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件.pptx
    • 教案
      教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》教案.docx
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案01
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案02
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案03
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案04
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案05
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案06
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案07
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案08
    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案01
    还剩27页未读, 继续阅读
    下载需要40学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案

    展开
    4.2基数排序高中信息技术/教科版/选择性必修1目录1.创设情境,引入新课这是什么设备?其主要功能是什么?主要应用在哪些地方?这是什么设备?其主要功能是什么?主要应用在哪些地方?本节围绕“餐馆排队取号模拟系统”项目展开学习,通过项目活动来了解餐馆排队取号模拟系统的基本思路,体验队列在解决实际问题中的作用。本节主要包含“模拟餐馆排队取号”和“编程实现餐馆排队取号模拟系统”两个任务。2.体验探究,了解排队取号 任务一模拟餐馆排队取号 活动1体验餐馆排队取号小明和同学一起到餐馆排队就餐,拿到了如图4.3.1所示的排号单。从排号单中可以看出,小明在“2人桌”中排在了 号,目前在此队等候的共有 桌顾客。在小明和同学等待就餐的过程中,没有新顾客到来,“2人桌”叫号已经叫到A010号,此时还有 桌顾客等候就餐。图4.3.1取号机和排号单A01242餐馆排队取号包括取号和叫号两个部分。取号就是根据所选餐桌类型生成排队号码等信息将顾客入队。叫号就是根据空闲餐桌类型,将排在该餐桌类型队列队首的顾客出队。 任务一模拟餐馆排队取号 活动1体验餐馆排队取号小明和同学一起到餐馆排队就餐,拿到了如图4.3.1所示的排号单。从排号单中可以看出,小明在“2人桌”中排在了 号,目前在此队等候的共有 桌顾客。在小明和同学等待就餐的过程中,没有新顾客到来,“2人桌”叫号已经叫到A010号,此时还有 桌顾客等候就餐。图4.3.1取号机和排号单A01242 任务一模拟餐馆排队取号 活动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排进队列。B00812: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)任务二 编程实现餐馆排队取号模拟系统 活动1建立数据结构08.#根据餐桌类型、排队号码、等候人数生成排号单09.self.ticket='%s%03d 前面还有%d位% (self.tableType.10.number,order)11.#餐桌类型和排队号码12.self.tableTypeNum='%s%03d'% (self.tableType,number)13.self.arriveTime=timeTick #顾客取号时间任务二 编程实现餐馆排队取号模拟系统 活动1建立数据结构叫号过程中,需要根据餐桌类型和状态,呼叫相应餐桌队列中的顾客到指定餐桌就餐。为了方便处理餐桌信息,定义餐桌类Table,其Python代码如下。14.class Table: #定义餐桌类15.def __init__(self, id, type):16.self.id=id #餐桌桌号17.self.type=type #餐桌类型('A','B','C',)18.self.status='free’ #餐桌状态(free,busy)19.self.remain=0 #顾客占用时长20.def setBusy(self,remain): #设置餐桌状态任务二 编程实现餐馆排队取号模拟系统 活动1建立数据结构21.self.status='busy’#设置桌子为“在用”状态22.self.remain=remain #设置占用时长23.def tickRemain(self): #餐桌用餐状态检测24.if self.remain>0: #判断是否还有占用时长25.self.remain-=1 #占用时长减少126.if self.remain==0: #判断占用时长是否为零27.self.status='free #设置桌子为“空闲”状态任务二 编程实现餐馆排队取号模拟系统 活动1建立数据结构排队取号模拟系统的核心是实现取号和叫号功能,为了方便实现排号和取号的操作,定义排号机类QueueSystem。排队取号过程中,需要根据不同的就餐人数选择在相应的餐桌队列中排队,根据任务一活动2的描述,需要建立三个队列,分别用来存放A、B、C三种餐桌类型的排队顾客Guest对象。为了方便处理,创建队列字典guestOueues和排队号码字典guestCount,其Python代码如下。任务二 编程实现餐馆排队取号模拟系统 活动1建立数据结构28.class QueueSystem: #定义排号机类29.def __init__(self): #排号机构造函数30.#顾客队列31.self.guestQueues={'A': Queue( ),'B': Queue(),'c': Queue()}32.self.guestCount={'A':0 ,'B': 0,'C': 0} #排队号码33.self.totalwaitTime=0 #总等待时间34.self.totalGuest=0 #总就餐次数4.设计算法,完成函数代码任务二 编程实现餐馆排队取号模拟系统 活动2设计算法排号机取号过程的算法描述如下:(1) 根据顾客所选餐桌类型,生成该餐桌类型的排队号码。(2) 生成顾客取号信息。(3) 顾客入队。(4)显示取号信息。根据上述算法,定义取号函数assignTicket(self,guest,timeTick),参数self表示取号机,参数guest表示取号的顾客,timeTick表示取号的时间。请补全下面的代码。任务二 编程实现餐馆排队取号模拟系统 活动2设计算法35. def assignTicket(self, guest,timeTick): #取号函数36.table=guest.tableType #顾客的餐桌类型37.queue=self.guestQueues[table] #顾客所排的餐桌队列38.self.guestCount[table]+=1 #生成排队号码39.guest.takeTicket(self.guestCount[table], queue.size(),40.timeTick) #顾客取号41.queue.enQueue( )#顾客入队42.#显示顾客取号信息43.print(‘顾客取号’:,guest.ticket,‘取号时间’:,timeTick)guest任务二 编程实现餐馆排队取号模拟系统 活动2设计算法叫号过程的算法描述如下。(1) 可以用餐餐桌类型队列中的顾客出队。(2) 设置就餐餐桌的状态和用餐时间。(3)累计用餐总人数和总等待时间。(4)显示叫号信息。根据上述算法,定义叫号函数arrangeTable(self,table,timeTick),参数self表示取号机,参数table表示可以用餐的餐桌,timeTick表示叫号的时间。请补全下面的代码。任务二 编程实现餐馆排队取号模拟系统 活动2设计算法44.def arrangeTable(self, table, timeTick): #叫号函数45 .#判断队列是否为空46.if not self.guestQueues[table.type].isEmpty():47#顾客出队48.guest=self.guestQueues[table.type]. . 49.table.setBusy(guest.stayTime) #设置餐桌状态为占用50.self.totalGuest+=1 #累计用餐总次数deQueue( )任务二 编程实现餐馆排队取号模拟系统 活动2设计算法51.#累计总等待时间52.self.totalwaitTime+=timeTick-guest.arriveTime53.#显示叫号信息54.print('叫号:’,guest.tableTypeNum,"到桌号’:,table.id)任务二 编程实现餐馆排队取号模拟系统 活动2设计算法显示模拟系统统计信息定义函数showResult(self,totalTime),参数self表示取号机,参数totalTime表示模拟的总时长,代码如下。55. def showResult(self, totalTime): #显示模拟信息函数56.print('*'*40) #输出一行*57.print('本次模拟一共’,totalTime,‘分钟’) #显示模拟总时长58.#显示模拟期间总用餐桌数5859.print('共有’,self.totalGuest,只桌顾客用餐')60.#顾客平均等待时间任务二 编程实现餐馆排队取号模拟系统 活动2设计算法61.print(每桌顾客平均等待时间为', round(self.totalwaitTime62./self.totalGuest),‘分钟')63.print('模拟结束时各队列情况如下:’)64.for q in self.guestQueues: #显示各队列剩余排队情况65.print('桌型:’,9,'还有',self.guestQueues[q].size(),‘桌66.顾客在排队')67.print('*'*40) #输出一行*5.编程实现,模拟测试任务二 编程实现餐馆排队取号模拟系统 活动3编程实现活动2已经完成了排队取号模拟系统基本功能的算法设计和代码实现,接下来利用排队取号系统模拟餐馆就餐客流排队情况。首先,我们确定模拟系统的时间流逝,是一个以分钟为单位的整数增长过程。然后,在每一分钟内,模拟下列事件:(1)用随机数按照一定的概率来确定是否有顾客排队取号就餐;(2) 如果有顾客排队取号,用随机数按照一定概率决定就餐餐桌的类型,执行取号;(3) 检查餐桌状态,如果有餐桌可以就餐,则执行叫号;4)显示模拟统计信息。任务二 编程实现餐馆排队取号模拟系统 活动3编程实现排队取号模拟系统的主程序代码如下,请补全下面的代码。68.import random69.#变量randomBox用于设定模拟来客的概率,20%概率2人桌,10%概率4人70.桌,5%概率8人桌71.randomBox=[None]*65+['A']*20+[B']*10+['C']*572.#餐桌设置,5张2人桌,3张4人桌,2张8人桌73.tableSetting='AAAAABBBCC’74.#生成餐桌对象列表75. tableList=[Table(i+1, tableSetting[i]) for i in range76.(len(tableSetting))]77.qsys= #生成一个排号机对象Queue System( )78.totalTime=4 *60 #模拟时间长度为4小时,最小单位为分钟79. for timeTick in range( )#按分钟进行迭代循环80.dice=random.choice(randomBox) #以设定概率随机模拟来客81.if dice is not None: #判断是否有顾客来82.guest= #生成顾客对象83.qsys.assignTicket(guest,timeTick) #顾客取号84.for table in tableList:85.table.tickRemain() #餐桌用餐状态检测86.if table.status=='free':87.qsys.arrangeTable(table,timeTick) #叫号入桌88. qsys.showResult(totalTime) #显示模拟统计信息totalTimedice任务二 编程实现餐馆排队取号模拟系统 活动3编程实现将上述代码输入一个文件,执行该程序,显示的模拟系统统计信息如图4.3.5所示。图4.35 显示模拟系统统计信息6.课堂小结本节课我们主要学习了排队取号模拟系统的基本功能、排队区号模拟系统的基本算法思想及代码实现的方法。作业布置:请同学们认真完成教材中的拓展练习哦!下节课见!

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        还可免费领教师专享福利「樊登读书VIP」

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        即将下载

        教科版 高二选择性必修1信息技术第4单元第3课《排队取号模拟系统》课件+教案
        该资料来自成套资源,打包下载更省心 该专辑正在参与特惠活动,低至4折起
        [共10份]
        浏览全套
          立即下载(共1份)
          返回
          顶部
          Baidu
          map