|教案下载
搜索
    上传资料 赚现金
    4-3排队取号模拟系统教案01
    4-3排队取号模拟系统教案02
    还剩2页未读, 继续阅读
    下载需要10学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    2020-2021学年4.3 排队取号模拟系统教学设计

    展开
    这是一份2020-2021学年4.3 排队取号模拟系统教学设计,共4页。教案主要包含了考勤,课前测评,引入,总结等内容,欢迎下载使用。

    课 题
    4-3排队取号模拟系统
    课时安排
    1
    课型
    素养目标
    课程标准要求:1.理解队列的概念及其特征。
    理解基数排序的基本过程。
    了解排队取号模拟系统的基本功能。
    信息意识:信息意识:能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息;在合作解决问题的过程中,愿意与团队成员共享信息,实现信息的更大价值。
    计算思维:针对给定的任务进行需求分析,明确需要解决的关键问题。能提取问题的基本特征,进行抽象处理,并用形式化的方法表述问题。运用队列结构设计解决问题的方案,结合队列的相关操作,编程实现。
    数字化学习与创新:1.理解队列结构及其现实。
    2.熟练运用数据结构解决生活中的真实问题,并在此过程中自主或协作探究;能够评估常见的数字化资源与工具对学习数据结构的价值,根据需要合理选择。
    信息社会责任:能够分析数据与社会各领域间的关系,自觉遵守相应的理论道德和法律法规。
    教学重点
    1.理解队列的概念及其特征。
    2.理解基数排序的基本过程。
    教学难点
    了解排队取号模拟系统的基本功能。
    教学方法
    讲解法、互动法
    学习方法
    互动、讨论
    教学过程
    个别化教案
    一、考勤。
    二、课前测评。
    三、引入
    日常生活中,我们经常会遇到排队的情况,如在食堂排队买饭、在电影院排队买票、在超市排队结账等。排队的过程会形成一个队列,排在队列最前面的优先处理,后来的必须排在队尾。在计算机解决问题的过程中也经常会用到队列。本节主要学习队列的概念及其特征、队列抽象数据类型的定义、队列的实现方法。任务一:认识生活中的队列。
    队列:队列是一种操作受限的线性结构,数据元素只能在一端进,在另一端出,且具有“先进先出”的特征。队列出现在日常生活各类“排队”活动中,如影院排队入场、商店排队付款和餐厅排除就餐就时都会形成队列。另外,计算机科学中的很多功能,如打印队列、进程调度和键盘缓冲等也都是利用队列结构来实现的。
    1.本单元通过“排队买票”项目,理解队列结构的基本概念及特征,学习队列的两种实现方法。
    队列(queue)是一种操作受限制的线性结构,只允许在表的前端(队首)进行数据元素删除操作,在表的后端(队尾)进行插入操作。在队列中插人一个数据元素称为人队,从队列中删除一个数据元素称为出队。因为队列只允许在队尾插人、在队首删除,所以先进入队列的元素先从队列中删除,故队列又称为先进先出(First In First Out,FIFO)线性表。
    队列抽象数据类型:
    为了在程序中使用队列结构来解决问题,我们需要定义队列抽象数据类型(ADT Queue)。根据问题解决需要,我们为队列抽象数据类型定义了如下接口。
    ·Queue():创建一个空队列,返回值是一个空的队列。
    ·enQueue(item):将数据元素 item添加到队尾,无返回值。
    ·deQueue():从队首删除数据元素,返回队首数据元素。
    ·size():返回队列中数据元素的个数。
    ·isEmptyO:判断是否为空队列,返回布尔值。
    基数:
    十进制记数是逢十进一,从零开始计数,数到十的时候,就要进一位,即变成10,个位数上是0,十位数上是1。一个十进制数的每个数位上可能的数字是0,1,2,…,9中的某一个。十进制的基数是10。二进制记数是逢二进一,从零开始计数,数到二的时候,就要进一位,即变成10(2)。一个二进制数的每个数位上可能的数字是0,1。二进制的基数是2。同理,一个N进制数是逢N 进一,它的基数是N,采用N个不同的数字符号来表示。例如,十六进制的基数是16,采用0~9和A~F这16个符号来记数。
    基数排序的基本思路:
    分发过程:
    分发的过程是按照数据的某个数位上的数字依次把队列 mainQueue中的各个数据分发到相应的基数队列中,最先人队的数据处于队列的队首位置。
    收集过程:
    收集的过程是按照基数队列下标从小到大的顺序,将所有基数队列中的数据移出队列,放人队列 mainQueue,最先人队的数据处于队列的队首位置。
    迭代次数:
    因为要从低位到高位对数据的每一位进行一轮分发和收集,所以整个排序过程要进行k次分发和收集。k是需要排序的所有数据中最大值的位数,它可以通过以下表达式得到:
    K=len(str(max(alist)))
    排队取号模拟系统:
    餐馆排队取号包括取号和叫号两个部分。取号就是根据所选餐桌类型生成排队号码等信息将顾客人队。叫号就是根据空闲餐桌类型,将排在该餐桌类型队列队首的顾客出队。
    class Queue:
    def __init__(self):
    self.items = []
    def enQueue(self, item):
    (item)
    def deQueue(self):
    return (0)
    def isEmpty(self):
    return self.size() == 0
    def size(self):
    return len(self.items)
    class Guest: # 客人
    def __init__(self, tableType):
    self.tableType = tableType #顾客所选餐桌类型
    self.stayTime = randm.randrange(20, 60) #随机生成顾客用餐时间
    def takeTicket(self, number,rder, timeTick): #生成顾客取号信息
    self.ticket = '%s%03d 前面还有%d位' % (self.tableType,number,rder) #生成排号单
    self.tableTypeNum='%s%03d' % (self.tableType,number) #排队序号
    self.arriveTime = timeTick #顾客取号时间
    class Table: # 餐桌
    def __init__(self, id, type):
    self.id = id # 桌号
    self.type = type # 类型'A','B','C',容量分别是(2,4,8)
    self.status = 'free' # 状态(free, busy)
    self.remain = 0 # 顾客占用时长
    def setBusy(self, remain): # 设置餐桌状态
    self.status = 'busy' #设置桌子为“在用”状态
    self.remain = remain #设置占用时长
    def tickRemain(self): # 餐桌用餐状态检测
    if self.remain > 0: #判断是否还有占用时长
    self.remain -= 1 #占用时长减少1
    if self.remain == 0: #判断占用时长是否为零
    self.status = 'free' #设置桌子为“空闲”状态
    class QueueSystem: # 排号机
    def __init__(self):
    self.guestQueues = {'A': Queue(), 'B': Queue(), 'C': Queue()} #顾客队列
    self.guestCunt = {'A': 0, 'B': 0, 'C': 0} #排队号码
    self.ttalWaitTime = 0 #总等待时间
    self.ttalGuest = 0 #总就餐人数
    def assignTicket(self, guest, timeTick):
    # 有顾客来,排队取号
    table = guest.tableType #顾客餐桌类型
    queue = self.guestQueues[table] #顾客所排的餐桌队列
    self.guestCunt[table] += 1 #生成排队号码
    guest.takeTicket(self.guestCunt[table],queue.size(),timeTick) #顾客取号
    queue.enQueue(guest) #顾客入队
    # 显示信息
    print('顾客取号:', guest.ticket,'取号时间:',timeTick)

    def arrangeTable(self, table, timeTick): #叫号函数
    # 有空桌,看看是否有顾客等候
    if nt self.guestQueues[table.type].isEmpty():
    guest = self.guestQueues[table.type].deQueue() #顾客出队
    table.setBusy(guest.stayTime) #设置就餐状态为占用
    # 计入等待时间
    self.ttalGuest += 1 #累计用餐总人数
    self.ttalWaitTime += timeTick - guest.arriveTime #累计总等待时间
    # 显示信息
    print('叫号:', guest.tableTypeNum, '到桌号:', table.id)
    def shwResult(self, ttalTime):
    print('*' * 40)
    print('本次模拟一共', ttalTime, '分钟')
    print('共有', self.ttalGuest, '桌顾客用餐')
    print('每桌顾客在用餐前平均等待时间为', rund(self.ttalWaitTime / self.ttalGuest), '分钟')
    print('模拟结束时各队列情况如下:')
    fr q in self.guestQueues:
    print('桌型:', q, '还有', self.guestQueues[q].size(), '桌顾客在排队')
    print('*' * 40)
    imprt randm
    # 变量randmBx用于设定模拟来客的概率,20%概率2人桌,10%概率4人桌,5%概率8人桌
    randmBx = [Nne] * 65 + ['A'] * 20 + ['B'] * 10 + ['C'] * 5
    # 餐桌设置,5张2人桌,3张4人桌,2张8人桌
    tableSetting = 'AAAAAAABBBBC'
    # 生成餐桌对象列表
    tableList = [Table(i + 1, tableSetting[i]) fr i in range(len(tableSetting))]
    qsys = QueueSystem() # 生成一个排号机对象
    ttalTime = 4 * 60 # 模拟时间长度为4小时,最小单位分钟
    fr timeTick in range(ttalTime):
    # 1,以设定概率随机模拟来客
    dice = randm.chice(randmBx)
    if dice is nt Nne: # 有客人来
    guest = Guest(dice)
    qsys.assignTicket(guest, timeTick) # 顾客取号
    # 2,让餐桌用餐时间减1,查看餐桌是否有空闲
    fr table in tableList:
    table.tickRemain()
    if table.status == 'free':
    qsys.arrangeTable(table, timeTick) # 叫号入桌
    # 显示模拟统计信息
    qsys.shwResult(ttalTime)
    四、总结
    1.理解队列的概念及其特征。
    2.理解基数排序的基本过程。
    3.了解排队取号模拟系统的基本功能。
    作 业




    1.理解队列的概念及其特征。
    2.理解基数排序的基本过程。
    3.了解排队取号模拟系统的基本功能




    教案查阅签字
    相关教案

    高中信息技术沪教版(2019)必修2 信息系统与社会2.探究公交IC卡收费系统的组成要素优秀教案设计: 这是一份高中信息技术沪教版(2019)必修2 信息系统与社会2.探究公交IC卡收费系统的组成要素优秀教案设计,共3页。

    高中信息技术教科版 (2019)必修2 信息系统与社会第2单元 信息系统的集成2.1 计算机系统的组成教案及反思: 这是一份高中信息技术教科版 (2019)必修2 信息系统与社会第2单元 信息系统的集成2.1 计算机系统的组成教案及反思,共10页。教案主要包含了学科核心素养,学业要求,项目目标分析,项目内容分析,教学目标,教学重,教学策略,教学准备等内容,欢迎下载使用。

    高中信息技术浙教版 (2019)必修2 信息系统与社会4.1 搭建信息系统的前期准备教案: 这是一份高中信息技术浙教版 (2019)必修2 信息系统与社会4.1 搭建信息系统的前期准备教案,文件包含浙教版2019信息技术必修2411信息系统搭建需求分析教学课件pptx、浙教版2019信息技术必修2411信息系统搭建需求分析教学设计docx等2份教案配套教学资源,其中教案共4页, 欢迎下载使用。

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

    每充值一元即可获得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 张下载券

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

        如何免费获得下载券?

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

        返回
        顶部
        Baidu
        map