资源简介 (共35张PPT)第十三课控件数组与Timer控件“开心水果机”问题与任务:小明在网上玩过一个“开水果机”的游戏,于是,他想用VB编一个类似的程序。游戏规则:点击“开始”,从指定的水果图片中随机抽取3张水果图片(可重复)并放入3个图片框中,直至按下“停止”按钮,如果3张图片都相同则表示中奖。运行效果如“图13-1‘开心水果机’效果图”所示。一、“开心水果机”原理分析通过观察“开心水果机”程序界面(图13-2)并结合游戏规则,小明发现水果机的秘密:每次点击开始”按钮后,水果机会自动从指定的水果图片中任意抽取3张可重复的水果图片,并放入3个图片框中,直至按下“停止”按钮为止。中奖的判断依据是3个图片框中的图片是同一图片。小明从该程序的流程图(图13-3)发现,要编写本程序,除了前面所学到的VB知识外,还必须要知道怎样多次、随机抽取图片。二、Rnd和Fix函数要实现随机抽取图片,就必须要生成随机数。那么,如何生成一个随机数呢?试一试(1)新建工程。请依照图13-4(a)新建一个工程,添加Text控件和两个Command控件,依照图13-4(b)所示输入代码,并注意更改控件的name等属性。(2)运行程序。单击“例1”按钮6次,将控件Text的数按要求填写在表13-1的第二列中。关闭后重新运行程序,再次单击“例1”按钮6次,将产生数按要求填写在表13-1的第三列中,观察两列数的变化规律。记录次数第一次产生数据第二次产生数据(关闭后重新运行)第三次产生数据(加入Randomize后)123456表13-1随机函数(3)添加代码。按图13-5所示在程序中添加代码,将程序执行后的结果记录在第四列中,并观察数的变化规律。图13-5加载Randomize函数通过观察我们发现,随机函数Rnd的作用是返回一个大于或等于0,但小于1的随机小数。其语法格式为Rnd而Randomize函数的作用是初始化随机生成器,保证每次运行程序得到的随机数序列不同。其语法格式为Randomize一般情况下,对象的编号都是整数。为了将小数变为整数,我们还需要用到取整函数Fix,它的作用是返回给定数的整数部分。其语法格式为Fix(number)例如,Fix(3.8)和Fix(3.1)的返回值都是3?想一想如何利用Rnd和Fix函数产生一个0~3的随机整数?三、控件数组试一试结合图13-2的程序界面设计图,说说下列代码的作用是什么。PrivateSubCommandstrtClick()x=Fix(Rnd3)Ifx=0ThenImagelstPicture=Image1PictureIfx=1ThenImagelstPicture=Image2PictureIfx=2ThenImagelstPictureImage3PictureIfx=3ThenImagelstPictureImage4PictureEndSub在编写程序时,我们常常需要使用一批同一类型的控件对象,如本例中的4张图片。如果采用新建的方法一个个产生这些控件对象,就会产生如Image1、Image2、Image3、Image4这样一些零散对象。对这些对象编写代码非常烦琐且不方便,无法批量使用。1.创建控件数组控件数组的建立可以通过复制、粘贴的方式,具体操作步骤如下(图13-6)(1)在窗体上添加一个Image控件,并命名为“ImageBak"。(2)选择该控件,通过“复制”“粘贴”创建控件数组Imagebak。最初新建的那个控件名称为“ImageBak(0)”,粘贴得到的控件名称为“ImageBak(1)”。(3)重复步骤(2),得到下一个控件数组元素。2.控件数组控件数组就是一组控件对象,如ImageBak(0)、ImageBak(1)、ImageBak(2)、ImageBak(3),其中每个对象均被称为控件数组的一个元素。控件数组有以下特点。(1)控件数组中的元素具有相同的对象名,如上面的4个控件对象都叫ImageBak。(2)控件数组中的元素以索引号(Index属性)来区别,就像对同一类产品进行编号一样。(3)控件数组中的元素的索引号默认从0开始。(4)控件数组中的元素共享事件过程,即可以在同一事件过程中方便地对控件数组中所有的元素进行统一处理。?想一想如何通过随机数和素引号从控件数组中选择一个对应编号的图片?讨论结合本节例子,说说在什么情况下适合使用控件数组。四、Timer控件Timer控件的作用是有规律地以一定的时间间隔激发Timer事件,从而每隔一段时间执行一次Tmer事件下的代码。Timer控件有两个重要的属性:Interval和Enabled。Interval属性表示两次Ttimer事件的时间间隔,以毫秒为单位。如希望每秒执行一次imer事件,则将Intervall属性值设为1000。Interval属性值越小,表示时间间隔越短,变化的频率越快,但当Interval属性值为0时,表示Timer控件无效。Enabled属性只有两个值:True和False,用来决定Timer控件是否有效。试一试在刚オ的窗体中添加一个Timer控件,将Interval属性值设为500,再将前面随机抽取的图片代码移动到Timer事件中,观察执行程序后的效果有什么变化。五、“开心水果机”的程序设计结合游戏规则和流程图,我们可以将游戏的关键“自动抽取图片功能”交给Timer控件,游戏的开始即Timer控件的激活由“开始”按钮来控制“停止”按钮不仅用于停止游戏,还用于游戏结果的判断。程序代码如图13-7所示。?想一想1.程序中的变量a,b,c都是通过表达式Fix(Rnd4)产生的,它们的值是否一样呢?我们可通过调试功能中的“变量监视”,观察它们的值,验证自己的答案。2.“三个数相等”,在数学中可用表达式“a-b=c”来表示,那么在VB中又是如何表达的呢?思考与练习根据提示,将“下落的小方块”(“图13-8下落的小方块”)程序补充完整。程序要求:每按下键盘一次,屏幕中的黑色格子将向下移动一格,直到最后一行。DimiAsIntegeri代表行数PrivateSubForm_Load()I=1EndSubPrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)Ifi<=_________ThenShape1(________10+4).Fillstyle=1Shapel(i10+4).Fillstyle=__________________I=___________EndIfEndSub提示1.屏幕上的格子使用控件数组Shape,其中第一行Shape(0)~Shape(9),第二行Shape(10)~Shape(19)……2.当前格子所在位置是第一行第5个,即Shape(4),下移一次就到了第二行第5个,即Shape(14)……3.格子的移动实际上是改变Shape控件的Fillstyle属性:当Fillstyle属性值为0时,Shape控件用实线填满;当Fillstyle属性值为1时,Shape控件透明。4.按下键盘触发的是KeyDown事件。课堂小结这节课,我们了解了“开心水果机”原理和Timer控件的意义,知道了Rnd、Fix函数的格式和作用,掌握了控件数组及其创建方法。探究、体验了设计“开心水果机”的程序。板书设计“开心水果机”原理分析Rnd和Fix函数控件数组Timer控件“开心水果机”的程序设计控件数组与Timer控件“开心水果机”第十三课控件数组与Timer控件“开心水果机”教学目标(一)知识与技能1Rnd、Fix函数的格式和作用。2控件数组及其创建方法。3Timer:控件的意义。过程与方法能根据程序设计的规则和规范,初步学习简单程序与算法的分析、设计,并使用VB完成简单编程;在自主、合作编程的过程中,提高学生的逻辑思维能力、自学能力和实际操作能力。(三)情感态度价值观1.发展学生学习计算机程序设计的兴趣,体验程序设计与编写过程的艰辛和喜悦。2.有将算法与程序设计知识应用于生产生活实践的意识,能够对与程序设计有关的实际生活问题做出合理的分析。3.善于与人合作,具有团队精神。教学重难点1Rnd、Fix函数的格式和作用。2控件数组及其创建方法。教学过程问题与任务导入:小明在网上玩过一个“开水果机”的游戏,于是,他想用VB编一个类似的程序。游戏规则:点击“开始”,从指定的水果图片中随机抽取3张水果图片(可重复)并放入3个图片框中,直至按下“停止”按钮,如果3张图片都相同则表示中奖。运行效果如图13-1所示。图13-1“开心水果机”效果图一、“开心水果机”原理分析通过观察“开心水果机”程序界面(图13-2)并结合游戏规则,小明发现水果机的秘密:每次点击开始”按钮后,水果机会自动从指定的水果图片中任意抽取3张可重复的水果图片,并放入3个图片框中,直至按下“停止”按钮为止。中奖的判断依据是3个图片框中的图片是同一图片。图13-2“开心水果机”程序界面图图13-3“开心水果机”程序的流程图小明从该程序的流程图(图13-3)发现,要编写本程序,除了前面所学到的VB知识外,还必须要知道怎样多次、随机抽取图片。二、Rnd和Fix函数要实现随机抽取图片,就必须要生成随机数。那么,如何生成一个随机数呢?试一试(1)新建工程。请依照图13-4(a)新建一个工程,添加Text控件和两个Command控件,依照图13-4(b)所示输入代码,并注意更改控件的name等属性。(a)随机函数界面设计图(b)随机函数代码窗口(2)运行程序。单击“例1”按钮6次,将控件Text的数按要求填写在表13-1的第二列中。关闭后重新运行程序,再次单击“例1”按钮6次,将产生数按要求填写在表13-1的第三列中,观察两列数的变化规律。表13-1随机函数记录次数第一次产生数据第二次产生数据(关闭后重新运行)第三次产生数据(加入Randomize后)123456(3)添加代码。按图13-5所示在程序中添加代码,将程序执行后的结果记录在第四列中,并观察数的变化规律。图13-5加载Randomize函数通过观察我们发现,随机函数Rnd的作用是返回一个大于或等于0,但小于1的随机小数。其语法格式为Rnd而Randomize函数的作用是初始化随机生成器,保证每次运行程序得到的随机数序列不同。其语法格式为Randomize一般情况下,对象的编号都是整数。为了将小数变为整数,我们还需要用到取整函数Fix,它的作用是返回给定数的整数部分。其语法格式为Fix(number)例如,Fix(3.8)和Fix(3.1)的返回值都是3?想一想如何利用Rnd和Fix函数产生一个0~3的随机整数?三、控件数组试一试结合图13-2的程序界面设计图,说说下列代码的作用是什么。PrivateSubCommandstrtClick()x=Fix(Rnd3)Ifx=0ThenImagelstPicture=Image1PictureIfx=1ThenImagelstPicture=Image2PictureIfx=2ThenImagelstPictureImage3PictureIfx=3ThenImagelstPictureImage4PictureEndSub在编写程序时,我们常常需要使用一批同一类型的控件对象,如本例中的4张图片。如果采用新建的方法一个个产生这些控件对象,就会产生如Image1、Image2、Image3、Image4这样一些零散对象。对这些对象编写代码非常烦琐且不方便,无法批量使用。1.创建控件数组控件数组的建立可以通过复制、粘贴的方式,具体操作步骤如下(图13-6)(1)在窗体上添加一个Image控件,并命名为“ImageBak"。(2)选择该控件,通过“复制”“粘贴”创建控件数组Imagebak。最初新建的那个控件名称为“ImageBak(0)”,粘贴得到的控件名称为“ImageBak(1)”。(3)重复步骤(2),得到下一个控件数组元素。图13-6创建控件数组2.控件数组控件数组就是一组控件对象,如ImageBak(0)、ImageBak(1)、ImageBak(2)、ImageBak(3),其中每个对象均被称为控件数组的一个元素。控件数组有以下特点。(1)控件数组中的元素具有相同的对象名,如上面的4个控件对象都叫ImageBak。(2)控件数组中的元素以索引号(Index属性)来区别,就像对同一类产品进行编号一样。(3)控件数组中的元素的索引号默认从0开始。(4)控件数组中的元素共享事件过程,即可以在同一事件过程中方便地对控件数组中所有的元素进行统一处理。?想一想如何通过随机数和素引号从控件数组中选择一个对应编号的图片?讨论结合本节例子,说说在什么情况下适合使用控件数组。四、Timer控件Timer控件的作用是有规律地以一定的时间间隔激发Timer事件,从而每隔一段时间执行一次Tmer事件下的代码。Timer控件有两个重要的属性:Interval和Enabled。Interval属性表示两次Ttimer事件的时间间隔,以毫秒为单位。如希望每秒执行一次imer事件,则将Intervall属性值设为1000。Interval属性值越小,表示时间间隔越短,变化的频率越快,但当Interval属性值为0时,表示Timer控件无效。Enabled属性只有两个值:True和False,用来决定Timer控件是否有效。试一试在刚オ的窗体中添加一个Timer控件,将Interval属性值设为500,再将前面随机抽取的图片代码移动到Timer事件中,观察执行程序后的效果有什么变化。五、“开心水果机”的程序设计结合游戏规则和流程图,我们可以将游戏的关键“自动抽取图片功能”交给Timer控件,游戏的开始即Timer控件的激活由“开始”按钮来控制“停止”按钮不仅用于停止游戏,还用于游戏结果的判断。程序代码如图13-7所示。图13-7“开心水果机”程序代码?想一想1.程序中的变量a,b,c都是通过表达式Fix(Rnd4)产生的,它们的值是否一样呢?我们可通过调试功能中的“变量监视”,观察它们的值,验证自己的答案。2.“三个数相等”,在数学中可用表达式“a-b=c”来表示,那么在VB中又是如何表达的呢?思考与练习根据提示,将“下落的小方块”(“图13-8下落的小方块”)程序补充完整。程序要求:每按下键盘一次,屏幕中的黑色格子将向下移动一格,直到最后一行。DimiAsIntegeri代表行数PrivateSubForm_Load()I=1EndSubPrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)Ifi<=___________ThenShape1(________10+4).Fillstyle=1Shapel(i10+4).Fillstyle=__________________I=___________EndIfEndSub提示1.屏幕上的格子使用控件数组Shape,其中第一行Shape(0)~Shape(9),第二行Shape(10)~Shape(19)……2.当前格子所在位置是第一行第5个,即Shape(4),下移一次就到了第二行第5个,即Shape(14)……3.格子的移动实际上是改变Shape控件的Fillstyle属性:当Fillstyle属性值为0时,Shape控件用实线填满;当Fillstyle属性值为1时,Shape控件透明。4.按下键盘触发的是KeyDown事件。课堂小结这节课,我们了解了“开心水果机”原理和Timer控件的意义,知道了Rnd、Fix函数的格式和作用,掌握了控件数组及其创建方法。探究、体验了设计“开心水果机”的程序。板书设计“开心水果机”原理分析Rnd和Fix函数控件数组与Timer控件“开心水果机”控件数组Timer控件“开心水果机”的程序设计课后反思 展开更多...... 收起↑ 资源列表 第13课 Timer控件(二)_高清.mp4 第十三课控件数组与 liner控件“开心水果机”.docx 第十三课控件数组与 liner控件“开心水果机”.pptx