
“抽奖”程序设计-课件.ppt
20页抽奖抽奖””程序设计程序设计山东省实验中学山东省实验中学 吴昊吴昊普通高中课程标准实验教科书(选修)普通高中课程标准实验教科书(选修) 《《算法与程序设计算法与程序设计》》山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下学习目标学习目标1 1、理解、理解Do WhileDo While…………LoopLoop循环结构语句的执行过程;循环结构语句的执行过程;2 2、能灵活运用、能灵活运用RNDRND函数生成任意区间的随机数;函数生成任意区间的随机数;3 3、掌握循环结构程序设计的思路,能综合运用所学知、掌握循环结构程序设计的思路,能综合运用所学知识开发应用实例识开发应用实例 山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下nDo WhileDo While…………LoopLoop循环语句的执行过程;循环语句的执行过程;nVBVB数学函数的应用;数学函数的应用;nDoEventsDoEvents函数教学重点、难点教学重点、难点山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下程序界面程序界面山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n名单滚动显示如何做到公平性?n重复出现重复出现随机的名字,直到直到点击暂停,可以用程序设计的何种结构实现?随机随机循环循环抽奖环节抽奖环节山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n“开始”按钮n“暂停”按钮循环随机显示人名结束循环设计主线设计主线山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n显示显示人名n显示Excel文件Sheet1表中第i行,第j列单元格的名字标签标签= Sheet1.Cells((i,j))Cells函数函数探究探究1 1——显示人名显示人名山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n随机随机显示人名n小组讨论:如何随机显示名字?n产生名字所在行的随机数,例如名字存储在Excel文件第1列的第2行——第53行,那么i就是产生[2,53]范围的随机整数n小组讨论:如何生成[a,b]范围内的随机整数?nInt(Rnd*(b-a+1)+a)Rnd函数函数标签标签= Sheet1.Cells((i,1))i=Int(Rnd*52+2)探究探究2—2—随机随机山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n循环循环随机显示人名n小组讨论:能否用For……Next循环结构?n小组讨论:循环条件如何设置?Do While……Loop标签标签= Sheet1.Cells((i,1))i=Int(Rnd*52+2)Do While 条件条件Loop探究探究3 3——循环循环山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n循环循环随机显示人名n循环条件(“开始”循环,“暂停”结束循环)Do While……Loop当点击当点击““暂停暂停””后,后,““暂停暂停””按钮不可用,当点击按钮不可用,当点击““开开始始””后,后,““暂停暂停””恢复可用恢复可用在在““暂停暂停””ClickClick事件里:事件里:““暂停暂停””.Enabled=false.Enabled=false表示点击了表示点击了““暂停暂停””探究探究3 3——循环循环山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n循环循环随机显示人名n循环条件Do While……Loop“开始开始”Click事件里:事件里:“暂停暂停”.Enabled=True循环条件:循环条件:“暂停暂停”.Enabled探究探究3 3——循环循环山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n“开始”click事件“暂停暂停”. .Enabled =TrueDo while “暂停暂停”. .Enabled i=Int(Rnd*52+2) 标签标签= =Sheet1.Cells(i,1) Loopn“暂停暂停”clickclick事件事件“暂停暂停”. .Enabled=false探究探究4—4—算法描述算法描述山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n学生参照学案独立完成“抽奖”excel编程n界面设计(可自由发挥)n编写代码n调试运行实践实践山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n问题:出现电脑卡住现象,暂停按钮没有响应,必须需启动任务管理器来终止。
n原因: 程序一直执行do While循环没有退出VB是单线程的,当循环条件为True时,CPU一直在执行do while循环虽然按下暂停按钮会使循环条件为假,但由于是单线程,程序会一直执行应当前的do while,不会响应其他按事件的代码,所以点击“暂停”按钮不起作用n解决:do while 循环里加入doEvents函数 doEvents函数的功能是程序在执行循环的同时,还会查看有否有其他事情要做调试运行调试运行山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n统计每位同学的中奖次数,如下图所示:程序完善程序完善1 1山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n抽奖名单分布在多行多列,如何随机找到,如图所示:程序完善程序完善2 2山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下n添加获奖名单和朗读名单:课后请参考微课程自主探究课后请参考微课程自主探究程序完善程序完善3 3山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下nDo While……Loop循环结构的应用nRND、Cells函数的应用n编写循环结构程序的一般设计思路课堂小节课堂小节山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下随机随机+循环算法循环算法拓展延伸拓展延伸山东省实验中学山东省实验中学山东省实验中学山东省实验中学博学日新博学日新 德行天下德行天下谢谢!谢谢!。
