资源简介 VB教参第1单元 初级玛丽单元概述本单元是VB程序设计学习初始内容,教材从学生玩游戏的兴趣为着眼点,引入VB课程内容的学习。引导学生对以往游戏对象中动作的实现方法进行探索、研究和学习。从而提高学生学习的兴趣。本单元通过“绚丽舞台”、“昂首阔步”、“行走天涯”和“操控自如”四课内容,介绍了使游戏对象移动、坠落、跳跃等动作的实现方法。在介绍这些方法时教材力图在教学中使学生理解对游戏过程进行动作分解、合成的程序设计思路。学习目标了解VB界面的基本功能,掌握基本操作方法。了解控件、对象、属性、事件和事件过程的概念。学会用时钟控件控制对象的移动。学会常用控件属性的设置。学会调试程序。重点难点重点:学会VB程序设计的基本步骤。体会程序设计过程中分解、合成的程序设计思想。难点:对控件、对象、属性、事件和事件过程的理解。对程序调试能力的培养。学时安排第1课 绚丽舞台 1课时第2课 昂首阔步 1课时第3课 行走天涯 1课时第4课 操控自如 2课时第1课 绚丽舞台本课教学目标了解、熟悉Visual BASIC 6.0集成开发环境。学会游戏窗体界面背景和前景的设计。学会用时钟控件控制操作对象的移动。通过玛丽移动的程序设计,了解程序设计的基本过程。教材分析本课是程序设计的第一课,教材中通过本单元的单元页,使学生了解程序设计课程是信息技术课程学习的深入,是从应用角色到开发角色的转换,教材力图通过本单元游戏程序设计的学习建立学生学习程序设计的积极性,明确程序设计学习的必要性。教学设计与教学建议(含课前准备) 为了提高学生学习程序设计的兴趣,可以在本课教学中演示一些简单游戏程序和简单应用程序的运行效果,例如可以演示一下本教材提供的学习资源,即可使学生提高学习兴趣也可以是学生了解本课程学习后他们可能设计出程序,以此拓展学生学习过程中的创造性思维设计出更多、更好的应用程序。本课因为是程序设计的第一课,需要学生对VB的操作界面有所了解。由于本课教材涉及的基本知识较多,尽管难度都不大,但是占用的篇幅较大,因此本课没能涉及具体的编程任务。而要让学生了解界面上的功能,熟悉这些基本操作,就要让学生在本课中通过一个简单程序的设计全过程熟悉界面上的功能,体会用VB设计程序的一般步骤。为此建议将第2课中关于“玛丽自动行走”的任务提前到本课中来学习。教学资源(或称补充资料)上机资料:任务1:让操作对象玛丽自左向右自动移动。步骤1:设计窗体背景(游戏背景)步骤2:设计窗体前景Image1(玛丽图像)步骤3:在窗体上添加时钟对象Timer1步骤4:在Timer1的属性窗口设置Interval的属性值为100步骤5:在代码窗口设计以下关于Timer1的事件过程第2课 昂首阔步(一)本课教学目标学会用时钟控件控制对象的自动移动。学会设置时钟的时间间隔属性Interval。学会设置对象的位置属性Left、Top。学会对象属性的静态设置和动态设置。(二)教材分析本课是提出了本教材的第一个需要编写程序的任务,时钟控件也是学生学习的第一个控件,由时钟控件生成的对象需要设置时间间隔Interval属性,由图像控件生成的对象需要设置图像Image1的位置属性,窗体也需要设置其标识Caption属性。所以在了解控件概念的基础上,对象的属性设置是本节课的重点学习内容。(三)教学设计与教学建议(含课前准备)在属性窗口静态设置属性的方法和设置动态属性应该是本课学习的重点内容,在程序中做动态属性设置时要用到赋值的概念,应让学生知道赋值与相等的不同含义。建议本课简单介绍任务完成的过程,给学生多一些上机实践的时间,在上机过程中要锻炼学生独立调试程序的能力。(四)教学资源(或称补充资料)上机步骤:(要求学生按照步骤顺序完成上机任务)1.让雷电界面中的飞机向左自动移动。2.修改1让雷电界面中的飞机向右自动移动。3.修改1让雷电界面中的飞机向上自动移动。4.修改1让雷电界面中的飞机向左上自动移动5.将玛丽放到悬崖外侧,修改1使的玛丽向下移动,坠入悬崖。6.在窗体中再设置一个计时器和一个标签框(Label),并在标签框中显示(修改Caption属性)“欢迎来玩初级玛丽游戏”,如图所示,修改程序用添加的计时器控制移动标签框,显示动态文字信息。第3课 行走天涯(一)本课教学目标1.学会根据需要用条件判断语句编写程序。2.学会设置对象的大小属性。3.掌握游戏动作的分解、合成的设计、调试方法。(二)教材分析教材通过对玛丽游戏程序完善的需求,引入了条件语句的控制。教材针对玛丽移出窗体左边界时的位置状态,提出了对象大小属性的设置需求。教材用一个时钟对象控制玛丽的直行,用另一个时钟对象控制玛丽在悬崖的坠落,引入了玛丽直行到悬崖时坠落的两个动作合成的编程需求。(三)教学设计与教学建议(含课前准备)建议在本课的学习过程中,首先引导学生通过语言描述玛丽移出窗体左边界时的位置状态,然后引导学生描述玛丽处于移出窗体边界与否所要作出的动作,最后根据描述给出条件判断语句的程序代码。建议在编写玛丽悬崖坠落的程序代码时,首先通过属性窗口令控制直行的时钟的Enabled属性值处于可用状态,令控制坠落的时钟Enabled属性值处于不可用状态。待程序运行过程中判断出玛丽处于悬崖外侧时,改变两个时钟Enabled的属性值,从而实现直行动作到坠落动作的转变。(四)教学资源(或称补充资料)上机步骤:1.修改“左出右进”的程序,使玛丽按“右出左进” 的方式移动。参考程序:Private Sub Timer1_Timer() If Image1.Left > Form1.Width Then '如果对象到左边框的距离大于窗体的宽 Image1.Left = 0 '则让对象到左边框的距离为0 Else Image1.Left = Image1.Left + 100 '否则让对象到左边框的距离加100 End IfEnd Sub2.修改雷电程序,使小飞机按“上出下进”的方式移动。参考程序:Private Sub Timer1_Timer() If Image1.Top < -Image1.Height Then '如果对象到上边框的距离小于对象高的相反数 Image1.Top = Form1.Height '则让对象到上边框的距离为窗体的高 Else Image1.Top = Image1.Top – 100 '否则让对象到上边框的距离减100 End IfEnd Sub3.修改雷电程序,使小飞机在窗体边宽内左右移动(移到左边框时向右边框移动,移到右边框时向左边框移动)。 参考程序:Private Sub Timer1_Timer() '向左移动的时钟控制 If Image1.Left <= 0 Then '如果对象到左边框的距离小于等于0 Timer1.Enabled = False '则向左移动的时钟不可用,向右移动的时钟可用 Timer2.Enabled = True Else Image1.Left = Image1.Left - 100 '否则让对象到左边框的距离减100 End IfEnd SubPrivate Sub Timer2_Timer() '向右移动的时钟控制 If Image1.Left >= 3840 Then '如果对象到左边框的距离大于等于3840 Timer2.Enabled = False '则向右移动的时钟不可用,向左移动的时钟可用 Timer1.Enabled = True Else Image1.Left = Image1.Left + 100 '否则让对象到左边框的距离加100 End IfEnd Sub第4课 操控自如(一)本课教学目标1.学会用键盘控制对象的动作。2.体会具有多个时钟控制的应用程序的编写和调试过程。3.通过游戏程序多个动作的分解与合成提高调试程序的能力。(二)教材分析本课是在前3课的基础上来完善游戏程序的功能的,所以前面几课是本课学习的基础。本课中新的知识点主要体现在用键盘控制游戏对象的动作上,即键盘控制事件的应用上。本课要完成的玛丽越崖任务中还会用逻辑判断,以判断玛丽是否落入悬崖,所以在条件语句中使用逻辑式也是本课新的学习应用。(三)教学设计与教学建议(含课前准备)本课中会用到四个时钟和一个键盘事件来控制游戏动作,所以搞清楚它们之间的关系是完成整个任务的关键,所以对它们之间的关系流程的理解就显得非常重要。如果用语言描述它们的关系,可表达如下:左出右进的“行走”过程中如果遇到按下空格键则玛丽“跳起”到一定的高度后“落下”,如果“跳起”慢了或“落下”早了,即玛丽置身于两崖之间,玛丽都会坠入悬崖,否则玛丽会继续以左出右进的行走方式继续“行走”。根据以上描述可设置各时钟不同状态下的Enabled属性,正确实现几个动作之间的转换和衔接。教材中还通过对直行过程中玛丽行走动作的优化,让学生学习了对象的可见性属性Visible的设置,本单元学生实践了一个简单游戏程序的开发过程。对于提高学生编程、调试能力都有一定的好处,游戏带给学生快乐,游戏的开发带给学生成就感,会使学生进一步提高学习的兴趣。(四)教学资源(或称补充资料)上机练习参考答案:1. 修改玛丽行走的程序,使玛丽能“蹦跳行走”。上机练习参考答案:Dim aPrivate Sub Form_KeyPress(KeyAscii As Integer) '单击键盘的事件过程 Rem 按空格键起跳 If KeyAscii = 32 Then '是否按下空格键 Timer3.Enabled = True '跳起计时器可用 Timer1.Enabled = False '行走计时器不可用 Image1.Visible = True '迈步玛丽图像可见 Image2.Visible = False '直立玛丽图像不可见 Else Image1.Left = Image2.Left '直立玛丽和迈步玛丽重合 Image1.Visible = True '迈步玛丽图像可见 Image2.Visible = False '直立玛丽图像不可见 Timer1.Enabled = True '行走计时器可用 End IfEnd SubRem 玛丽行走Private Sub Timer1_Timer() '直行 a = Image1.Left '玛丽到左边框的距离 If a > 3960 And a < 4680 Then '玛丽处于悬崖范围的判断 Timer1.Enabled = False '行走计时器不可用 Timer2.Enabled = True '坠落计时器可用 Image2.Visible = True '直立玛丽图像可见 Image1.Visible = False '迈步玛丽图像不可见 Else If Image2.Visible = True Then '可见性判断 Image2.Visible = False '直立玛丽图像不可见 Image1.Visible = True '迈步玛丽图像可见 Else Image1.Visible = False '迈步玛丽图像不可见 Image2.Visible = True '直立玛丽图像可见 End If Image1.Left = Image1.Left – 200 '迈步玛丽左移 Image2.Left = Image2.Left – 200 '直立玛丽左移 End IfEnd SubRem 坠崖Private Sub Timer2_Timer() '坠落 Image2.Top = Image2.Top + 150 '直立玛丽坠落End SubRem 玛丽跳起Private Sub Timer3_Timer() If Image1.Top > 3200 Then Image1.Left = Image1.Left - 150 '向左移动 Image1.Top = Image1.Top - 100 '向上移动 Else Timer3.Enabled = False '跳起计时器不可用 Timer4.Enabled = True '落下计时器可用 End IfEnd SubRem 玛丽落下Private Sub Timer4_Timer() If Image1.Top <= 3550 Then Image1.Left = Image1.Left - 150 '向左移动 Image1.Top = Image1.Top + 80 '向下移动 Else a = Image1.Left '玛丽到左边框的距离 Image2.Left = Image1.Left '直立玛丽和迈步玛丽重合 Timer4.Enabled = False '落下计时器不可用 If a > 3960 And a < 4680 Then '玛丽处于悬崖范围的判断 Image2.Visible = True '直立玛丽图像可见 Image1.Visible = False '迈步玛丽图像不可见 Timer2.Enabled = True '坠落计时器可用 Else Timer1.Enabled = True '行走计时器可用 End If End IfEnd SubPrivate Sub Form_Click() '单击窗体恢复游戏初始运行状态 Image1.Left = 7800 '迈步玛丽到左边框的初始位置 Image2.Left = 7900 '直立玛丽到左边框的初始位置 Image1.Top = 3550 '迈步玛丽到上边框的初始位置 Image2.Top = 3550 '直立玛丽到上边框的初始位置 Timer1.Enabled = True '行走计时器可用 Timer2.Enabled = False '坠落计时器不可用 Timer3.Enabled = False '跳起计时器不可用Timer4.Enabled = False '落下计时器不可用 a = Image1.Left '玛丽到左边框的距离End Sub2. 编程,使分别按下小写a、d、w、s键时飞机分别向左、右、上、下移动,如图4.7所示。上机练习参考答案:Private Sub Form_KeyPress(KeyAscii As Integer) Rem 按a键左移 If KeyAscii = 97 Or KeyAscii = 65 Then Image2.Left = Image2.Left - Image2.Width End If Rem 按d键右移 If KeyAscii = 100 Or KeyAscii = 68 Then Image2.Left = Image2.Left + Image2.Width End If Rem 按w键上移 If KeyAscii = 119 Or KeyAscii = 87 Then Image2.Top = Image2.Top - Image2.Width End If Rem 按s键下移 If KeyAscii = 115 Or KeyAscii = 83 Then Image2.Top = Image2.Top + Image2.Height End IfEnd Sub上机参考资料:按下a键左移的部分程序Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 97 Then '按a键则 '左移 End IfEnd Sub 键盘字符ASCII码(部分) 按键 大写 小写 方向 A 65 97 左 D 68 100 右 W 87 119 上 S 83 115 下空格 32条件判断中的“或”判断KeyAscii = 97 or KeyAscii = 65左移至左边框Private Sub Form_KeyPress(KeyAscii As Integer) Rem 按a键左移直至左边框 If KeyAscii = 97 And Image1.Left > 0 ThenImage1.Left = Image1.Left - 100 End IfEnd Sub条件判断中的“与”判断 KeyAscii = 97 And Image1.Left > 0第2单元 初露锋芒单元概述本单元通过“图文并茂”、“百变文字”、“喜迎国庆”、“涂鸦王国”四课内容,介绍了“命令按钮”、“标签框”、“单选按钮”、“复选框”、“图片框”等控件的属性和使用方法,用“鼠标事件”编写啦鼠标控制的小应用程序。在本单元中,通过对程序代码的编写,学习、应用并体会了程序的循环结构和分支结构,学习了循环语句(For/Next语句)、多分支语句(Select Case语句)的用法;认识了VB中的方法,并实际体验了Circle、Line、Scale等方法的具体应用。学习目标学习命令按钮、单选按钮、图片框、复选框、框架等控件的使用方法。进一步理解对象的属性。了解用LoadPicture()函数载入图片的方法。了解变量的含义,掌握定义布尔变量的方法,了解静态变量的特点。了解VB程序中语句的书写规范。掌握创建控件数组的基本方法,了解控件数组的作用。了解Select Case语句的功能和应用,掌握循环语句For/Next的功能和应用。理解程序的分支结构和循环结构。理解用Scale方法改变VB中的坐标系的方法。掌握用Line方法画线、用Pset方法画点。学会RGB函数的功能和使用方法。学习鼠标的抬起和落下事件,并能够进行简单编程。了解窗体的Form_Load事件。重点难点重点:学习标签、命令按钮、单选按钮、图片框、复选框、框架等控件的使用方法。了解变量的含义,掌握定义布尔变量的方法,了解静态变量的特点。掌握创建控件数组的基本方法,了解控件数组的作用。了解Select Case语句的功能和应用,掌握循环语句For/Next的功能和应用。理解程序的分支结构和循环结构。掌握用Line方法画线、用Pset方法画点。学习鼠标的抬起和落下事件,并能够进行简单编程。 难点:了解用LoadPicture()函数载入图片的方法。学会RGB函数的功能和使用方法。了解变量的含义,掌握定义布尔变量的方法,了解静态变量的特点。掌握创建控件数组的基本方法,了解控件数组的作用。掌握循环语句For/Next的功能和应用。理解程序的分支结构和循环结构。理解用Scale方法改变VB中的坐标系的方法。了解随机函数及其使用方法。学时安排第5课 图文并茂 1课时第6课 百变文字 1课时第7课 喜迎国庆 1课时第8课 涂鸦王国 2课时第5课 图文并茂本课教学目标掌握命令按钮及其Click事件的用法。掌握标签的常用属性设置方法以及用法。理解对象的名称属性和Caption属性的异同,掌握程序中更改Caption属性的方法。了解用LoadPicture()函数载入图片的方法。了解变量的含义,掌握定义布尔变量的方法,了解静态变量的特点。了解VB程序中语句的书写规范。教材分析通过本节课的学习让学生在完成任务的过程中,加深对编写VB程序过程的了解。任务中使用到了标签、图像框、命令按钮和计时器控件。在学生使用这些控件的过程中,教师应帮助学生理解这些控件在VB程序中能起到什么作用,又是怎么起作用的。本课中涉及到了使用LoadPicture()函数载入图片的内容,教师一定要叮嘱学生正确书写图片路径,可使用绝对路径,也可以借助App.path使用相对路径。例题中涉及到的变量定义一定不能忽视,对于Static定义的静态变量特点,学生会难以理解,教师可借助教材中的DIY帮助学生理解。教学设计与教学建议(含课前准备) 建议教师在本课讲两个任务,第一是命令按钮控制字幕滚动,第二是命令按钮控制更换图片。 在任务一的讲解过程中,建议教师通过演示例题效果,帮助学生回忆前面所学的知识,让学生思考并说出可通过计时器控制标签的位置,从而完成任务。 任务二中图片素材的准备十分重要,要强调将 “天安门.jpg”和 “世博会.jpg”图片存放于文件夹“第2单元5 图文并茂”中。和学生一起先分析程序的功能,当鼠标单击“切换图片按钮”后,显示“天安门”图片,再次鼠标单击“切换图片按钮”后,显示“世博会”图片。可通过设置静态布尔类型变量,单击按钮改变变量真值,从而控制轮换显示图片。在设置图像框属性时,最好先设置Stretch,再设置Picture属性,以免图片过大,不便调整。在设置对象的名称属性和Caption属性时,学生会发现同一对象的这两个属性默认值是相同的,但属性设置表中却给它们分别赋予了不同的值,这样引入名称属性和Caption属性的异同。告诉学生载入图片的函数LoadPicture(),由此讲解LoadPicture()函数的用法,注意图片文件使用绝对路径”d:第二单元5图文并茂天安门.jpg”。编写代码时,教师应告诉学生养成好习惯,每行语句要缩进几格,尽量使用注释语句。使程序既便于自己检查又易于别人阅读。教学资源(或称补充资料)创作天地编程,用8个命令按钮分别控制标签框、图像框等操作对象,朝上、下、左、右、左上、左下、右上、右下八个方向移动。图5.1 命令按钮控制标签位置界面控件对象:在窗体上添加1个标签、9个命令按钮。属性设置表表5-1 属性设置表对象属性名属性值Form1(窗体1)Caption图文并茂Label1(标签框)Caption控制位置ForeColor黑色Font隶书、一号字Command1(命令按钮1)Caption上···Command9(命令按钮9)Caption退出程序代码 Private Sub Command1_Click() '上 Label1.Top = Label1.Top - 200End SubPrivate Sub Command2_Click() '下 Label1.Top = Label1.Top + 200End SubPrivate Sub Command3_Click() '左 Label1.Left = Label1.Left - 200End SubPrivate Sub Command4_Click() '右 Label1.Left = Label1.Left + 200End SubPrivate Sub Command5_Click() '左上 Label1.Top = Label1.Top - 200 Label1.Left = Label1.Left - 200End SubPrivate Sub Command6_Click() '左下 Label1.Top = Label1.Top + 200 Label1.Left = Label1.Left - 200End SubPrivate Sub Command7_Click() '右上 Label1.Top = Label1.Top - 200 Label1.Left = Label1.Left + 200End SubPrivate Sub Command8_Click() '右下 Label1.Top = Label1.Top + 200 Label1.Left = Label1.Left + 200End SubPrivate Sub Command9_Click() '退出 EndEnd Sub编程,通过命令按钮浏览搜集到的三张喜欢的图片。图5.2 浏览图片界面控件对象:在窗体上添加1个标签、1个图像框和2个命令按钮。属性设置表表5-2 属性设置表对象属性名属性值Form1(窗体1)Caption浏览图片Label1(标签框)Caption军训故事ForeColor黑色Font华文行楷、二号字Image1(图像框1)Picture1.jpgStretchTrueCommand1(命令按钮1)Caption下一张Command2(命令按钮2)Caption退出程序代码Private Sub Command1_Click()Static b As Integerb = b + 1If b = 1 Then Image1.Picture = LoadPicture(App.Path & "1.jpg")If b = 2 Then Image1.Picture = LoadPicture(App.Path & "2.jpg")If b = 3 Then Image1.Picture = LoadPicture(App.Path & "3.jpg"): b = 0End SubPrivate Sub Command2_Click() EndEnd Sub编程,将“电子字幕显示屏”与“图片显示屏”合为一个任务。控件对象:在窗体上添加1个图像框、1个标签框、3个命令按钮和1个计时器。属性设置表表5-3 属性设置表对象属性名属性值属性说明Form1(窗体1)Caption图文并茂窗体的标识Image1(图像框1)Picture天安门.jpg导入天安门图片StretchTrue图随框变Label1(标签框)Caption构建和谐社会 创造美好未来BackColor黑色ForeColor黄色Font隶书、一号字Command1(命令按钮1)Caption切换图片按钮命令按钮的标识Timer1(计时器)EnabledFalse计时器不可用Interval200计时间隔程序代码 Private Sub Command1_Click() Static b As Boolean b = Not (b) If b Then Image1.Picture = LoadPicture(App.Path & "天安门.jpg") Print App.Path Command1.Caption = "显示世博会图片" Else Image1.Picture = LoadPicture(App.Path & "世博会.jpg") Command1.Caption = "显示天安门图片" End IfEnd SubPrivate Sub Command2_Click() ‘标语移动按钮 Timer1.Enabled = TrueEnd SubPrivate Sub Command3_Click() ‘标语暂停移动按钮 Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer() If Label1.Left <= -Label1.Width Then Label1.Left = Form1.Width Else Label1.Left = Label1.Left - 200 End IfEnd Sub第6课 百变文字(一)本课教学目标熟悉单选按钮、复选框和框架控件的基本使用方法。了解调整控件格式的方法。掌握创建控件数组的基本方法,了解控件数组的作用。了解Select Case语句的功能和应用。学会RGB函数的功能和使用方法。能独立根据样例设计简单用户界面,能独立依据属性设置表设置对象的属性。(二)教材分析本课中重点难点内容如下:(1)框架的功能和使用方法是本课的重点。框架的功能是为控件分组。在框架中添加多个相同的控件就不能用直接在工具箱中双击的办法了,那样创建的控件都是在窗体上,而不是在框架中。我们可以按住Ctrl键同时单击控件按钮,可以在不重新选择控件的情况下,添加同一类型的多个控件。(2)复选框的功能和使用方法是本课的重点。一组复选框可以同时选择多个选项,有些书中也叫“选择框”或“检查框”。复选框的常用属性就是其Value属性,单选按钮的Value属性在第3课中已经讲过,复选框的Value属性与单选按钮的Value属性稍有不同,复选框是否被选中也可以从它的Value属性值看出,如其值为1,则其被选中,如其值为0,则没被选中,其值为2,复选框被置于不可选状态(变灰状态)。所以在程序中如果实现复选框未被选中、选中或置不可选状态(变灰状态),就可以为该控件的Value属性值赋值为0、1或2。(3)创建控件数组的方法是本课的重点。控件数组是由一组相同类型的控件组成的,创建控件数组可以通过修改控件的名称属性值来创建,也可以用复制粘贴的方式直接创建控件数组,一组控件数组的名称属性是相同的,创建控件数组的同时系统赋予每个元素一个索引号(Index)。(4)Select Case语句的功能及应用是本课的重点也是难点。If语句和Select Case语句选择结构的语句,要根据程序功能要求不同选择合适的语句编程。If语句可以有两个分支,如果用If语句实现多分支功能就要嵌套使用;Select Case语句直接可以实现多分支选择。(三)教学设计与教学建议(含课前准备)教师可以带着学生一起回忆,在以往使用的计算机应用软件中经常会遇到设置文字字体、字号、字形等问题,今天我们就用VB编写一个设置文字字体、字号、字形的小程序,给学生观看样例引入本课。为了学生能很快入手,告诉学生先来制作一个只具有设置字体功能的程序,根据教材图例让学生说出窗体上要添加的控件分别是什么、有多少个。学生可能会认为“百变文字”中显示文字的控件是标签,教师向学生解释这里的控件是文本框,这样引入文本框的功能及使用方法。让学生自己设计用户界面,根据教材中的属性设置表来设置对象属性,经过第一单元的学习,学生应该能够达到根据样例独立创建用户界面和根据属性设置表设置对象属性的能力。教师提出要增加“百变文字”的字号和字形功能,需要添加控件,为了便于分类,引入框架控件的功能和用法。让学生思考“字形”中的粗体和斜体是可以同时选中的,所以制作“粗体”和“斜体”选项不能再使用单选按钮了,引入复选框控件的功能和用法。程序中需要判断单选按钮或复选按钮是否被选中,所以需要具有分支结构的语句来实现。前面学习过If语句可以完成此题,本课再学习一个新的选择结构语句,引入Select Case语句的功能及应用。教师可以给出不使用控件数组的程序代码作对比,这样让学生体会使用控件数组会简化程序。(四)教学资源(或称补充资料)1. 编写如图6.1所示的课程表程序。图6.1 课程表的程序界面控件对象:在窗体上添加1个标签、包含17个单选按钮的控件数组和包含4个复选框的控件数组。属性设置表表6-1 属性设置表对象属性名属性值Form1(窗体1)Caption课表Label1(标签框)Caption空OptionBotton1(单选按钮1控件数组)Index 0…3Caption星期一···Frame1(框架1)Caption字体OptionBotton1(单选按钮1控件数组)Index 4…7Caption宋体···Frame2(框架2)Caption字号OptionBotton1(单选按钮1控件数组)Index 8…11Caption9···Frame3(框架3)Caption颜色OptionBotton1(单选按钮1控件数组)Index 12…15Caption红···Frame4(框架4)Caption字形CheckBox1(复选框1控件数组)Index 0…3Caption粗体···程序代码Private Sub Check1_Click(Index As Integer) Label1.FontBold = Check1(0).Value '粗体 Label1.FontItalic = Check1(1).Value '倾斜 Label1.FontUnderline = Check1(2).Value '下划线 Label1.FontStrikethru = Check1(3).Value '删除线End SubPrivate Sub Option1_Click(Index As Integer) Select Case Index Case 0: Label1.Caption = "语文 数学 体育 英语 化学 音乐" Case 1: Label1.Caption = "数学 语文 英语 物理 信息技术 班会" Case 2: Label1.Caption = "数学 英语 地理 体育 美术 物理" Case 3: Label1.Caption = "英语 语文 数学 化学 政治 历史" Case 4: Label1.Caption = "数学 英语 语文 化学 生物 物理" Case 5: Label1.Font = "宋体" Case 6: Label1.Font = "黑体" Case 7: Label1.Font = "幼圆" Case 8: Label1.Font = "隶书" Case 9: Label1.FontSize = 9 Case 10: Label1.FontSize = 14 Case 11: Label1.FontSize = 16 Case 12: Label1.FontSize = 20 Case 13: Label1.ForeColor = RGB(255, 0, 0) '红色 Case 14: Label1.ForeColor = RGB(0, 255, 0) '绿色 Case 15: Label1.ForeColor = RGB(0, 0, 255) '蓝色 Case 16: Label1.ForeColor = RGB(0, 0, 0) '黑色End SelectEnd Sub2.编写“百变时装”的程序,如图6.2所示,为男孩选择时装。提示:单击上衣按钮给男孩穿上衣,单击裤子按钮给男孩穿裤子。设置有7个单选按钮的控件数组和有7件衣裤的图像框控件数组。利用两个控件数组的下标对应关系,使用Select Case语句控制穿衣的功能。穿衣的语句,参见:Image3.Picture = Image1(0).Picture图6.2 百变时装的程序界面素材准备:将衣服、裤子素材图片复制到“第二单元6百变时装图片”中。控件对象:在窗体上添加2个框架、1个命令按钮,框架中分别添加单选按钮控件数组和图像框控件数组,在窗体上再添加3个图像框。属性设置表表6-2 属性设置表对象属性名属性值Form1(窗体1)Caption百变时装Frame1(框架1)Caption请选择衣服OptionBotton1(单选按钮1控件数组)Index 0…3名称Option1Caption空···Image1(图像框1控件数组)Index 0…3名称Image1Pictrue选择上衣···Frame2(框架1)Caption请选择裤子OptionBotton2(单选按钮1控件数组)Index 0…2Caption空···Image2(图像框1控件数组)Index 0…2名称Image2Pictrue选择裤子···Image5(图像框5)Pictrue选择图片Image3(图像框3)Pictrue空Image4(图像框4)Pictrue空Command1(命令按钮1)Caption换衣服程序代码Private Sub Command1_Click() Image3.Picture = Image1(Index).Picture '换上衣 Image4.Picture = Image5(Index).Picture '换裤子End Sub第7课 喜迎国庆(一)本课教学目标了解图片框的功能及用法。了解图片框与图像框的区别。理解用Scale方法改变VB中的坐标系的方法。掌握用Line方法画线。理解程序的循环结构。掌握循环语句For/Next。了解随机函数及其使用方法。(二)教材分析本课中重点难点内容如下:(1)图片框在本课中第一次出现,学生容易与图像框混淆。图片框可以显示位图、图标以及JPEG 或 GIF 文件的图形。如果控件不足以显示整幅图像,则裁剪图像以适应控件的大小。为了使图片框能够自动调整大小以显示整幅图形,可将它的 AutoSize 属性设置成 True。图片框和窗体一样是一个容器,其中可以再放置其它控件,也可以在其中输入文字,绘制点、直线、图形等,也可以改变它的坐标系,这一功能是图像框达不到的。(2)用Line方法画直线是本课的重点。画线的格式:Line(x1,y1)—(x2,y2)[,颜色]说明:以(x1,y1)为起点(x2,y2)为终点画直线。用Line方法还可以画矩形,格式:Line(x1,y1)—(x2,y2)[,颜色][,B][F]说明:如果加上参数B,表示以(x1,y1)和(x2,y2)为对顶点画空心矩形;如果同时再加上参数F,则表明画一个实心矩形。(3)用Scale方法改变坐标系是本课的难点,学生不容易理解。VB中的坐标系和我们在数学中用到坐标系有些不同,如果能让这个坐标系变化一下,与数学中的坐标系一样,那样会使我们在作图和看图时都会感到很方便。在讲授Scale方法时,建议教师可让学生在窗体激活事件(Activate事件)中或其它适宜事件中,画两条直线和一个点,代码如下:Private Sub Form_Activate() PicHua1.Line (-1500, 0)-(1500, 0), RGB(255, 0, 0) PicHua1.Line (0, 1500)-(0, -1500), RGB(255, 0, 0) PicHua1.DrawWidth = 10 PicHua1.PSet (0, 0), RGB(0, 255, 0)End Sub运行程序,学生们会发现两条线的交点上有个绿点,就是坐标原点(0,0),现在在此段程序前加一句话:PicHua1.Scale (-1500, 1500)-(1500, -1500)两条直线的位置就是新的坐标系的坐标轴,绿点就是坐标原点。在让学生修改Scale方法中的参数,改变新的坐标轴和坐标原点的位置,体会Scale方法的使用。(4)循环语句For/Next语句的使用是本课的重点也是难点。在使用循环时一定要先明确循环体,也就是哪一组操作需要重复执行;第二要查看是否有循环变量;第三要明确循环变量的初值和终值;第四要写好步长值,也就是循环变量每次增加或减少多少,如果不写步长值,则默认步长值为1;最后要查看For/Next语句书写格式有没有错误,哪里需要空格,哪里需要换行都不能有错。(5)随机函数Rnd的使用是本课的难点。Rnd 函数根据系统时钟随机返回一个小于1大于0的数值。200*Rnd将随机产生一个(0,200)之间的数,200*Rnd+100随机产生一个(100,300)之间的数。例:要产生(A,B)之间的一个随机数。不包括A和B,A和B是不相等的两个整数,且B大于A。(B-A)*Rnd+A(B-A)*Rnd+A就是一个(A,B)之间的一个随机数。在VB程序中如果没有Randomize函数,Rnd将使用第一次调用Rnd函数时的种子值产生的随机数。为了使系统每次都改变随机种子值,在调用Rnd函数前需要使用Randomize函数。(三)教学设计与教学建议(含课前准备)鉴于本课新知识比较多,教师可以直接给学生设计好用户界面和设置好对象属性的“半成品”给学生,这样可以为本课重点难点的学习赢得时间。图片框上的坐标系和窗体上的坐标系是一样的,学生比较熟悉数学中的平面直角坐标系,能不能将VB中的坐标系转换成我们熟悉的形式呢?提出问题,引入转换坐标系Scale方法。绘制第一条线,绘制第二条线……,如果绘制很多条线,可以向学生提问,怎样能简便步骤呢?学生可能会回答复制粘贴。那么复制粘贴出来的代码还是有很多行,篇幅很长又不易读,告诉学生重复多次相似语句或相同语句的程序代码我们可以用循环语句来写,引入循环结构和循环语句。一个礼花灯制作好了,根据自己的学生实际情况,可以给学生布置制作多个礼花灯,练习巩固刚才学习过的知识。(四)教学资源(或称补充资料)1. 编程,用命令按钮选择在图片框中画基本图形。控件对象:在窗体上添加6个命令按钮和1个图片框。属性设置表表7-1 属性设置表对象属性名属性值Form1(窗体1)Caption画基本图形PictureBox1(图片框1)BackColor白色Command(命令按钮1)Caption画圆Command2(命令按钮2)Caption同心圆Command3(命令按钮3)Caption直线Command4(命令按钮4)Caption三角形Command5(命令按钮5)Caption矩形Command6(命令按钮6)Caption实心矩形程序代码Private Sub Command1_Click() '画圆 Picture1.Cls Picture1.Circle (0, 0), 5End SubPrivate Sub Command2_Click() '画同心圆 Picture1.Cls For a = 3 To 7 Picture1.Circle (0, 0), a Next aEnd SubPrivate Sub Command3_Click() '画直线 Picture1.Cls Picture1.Line (-8, 0)-(8, 0)End SubPrivate Sub Command4_Click() '画三角形 Picture1.Cls Picture1.Line (0, 8)-(8, -5) Picture1.Line (8, -5)-(-8, -5) Picture1.Line (-8, -5)-(0, 8)End SubPrivate Sub Command5_Click() '画矩形 Picture1.Cls Picture1.Line (-6, 3)-(6, -3), , BEnd SubPrivate Sub Command6_Click() '画实心矩形 Picture1.Cls Picture1.Line (-6, 3)-(6, -3), , BFEnd SubPrivate Sub Form_Load() '修改坐标系 Picture1.Scale (-10, 10)-(10, -10)End Sub2.在图片框中画30个半径为100,位置在图片框中,颜色各异的圆。图7.1 绘制彩色圆界面控件对象:在窗体上添加1个图片框和2个命令按钮。属性设置表表7-2 属性设置表对象属性名属性值Form1(窗体1)Caption绘制彩色圆Command1(命令按钮1)Caption绘制三十个彩色圆Command2(命令按钮2)Caption退出程序代码Private Sub Command1_Click() Picture1.Scale (-100, 100)-(100, -100) For a = 1 To 30 r = 50 * Rnd x = (100 - r - (r - 100)) * Rnd + r - 100 y = (100 - r - (r - 100)) * Rnd + r - 100 c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Picture1.Circle (x, y), r, c Next aEnd SubPrivate Sub Command2_Click() EndEnd Sub3.编程,用For / Next循环语,在窗体上绘制5个颜色随机的同心圆。控件对象:在窗体上添加1个图片框和3个命令按钮。属性设置表表7-3 属性设置表对象属性名属性值Form1(窗体)Caption同心圆BackColor白色 &H80000009&PictureBox1(图片框1)BackColor白色Command1(命令按钮1)Caption同心圆Style1-GraghicalBackColor橙色 &H0080C0FF&Command2(命令按钮2)Caption取消Style1-GraghicalBackColor绿色 &H0000C000&Command3(命令按钮3)Caption退出Style1-GraghicalBackColor红色 &H008080FF&程序代码Private Sub Command1_Click() Picture1.Scale (-8, 8)-(8, -8) Picture1.DrawWidth = 2 For a = 2 To 6 c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Picture1.Circle (0, 0), a, c Next aEnd SubPrivate Sub Command2_Click() Picture1.ClsEnd SubPrivate Sub Command3_Click() EndEnd Sub第8课 涂鸦王国(一)本课教学目标学习鼠标的抬起和落下事件,并能够进行简单编程。了解Button、Shift参数值的意义,掌握利用X和Y参数值编写相应程序。掌握用Pset方法画点。了解对象名称属性的命名规则。了解窗体的Form_Load事件。(二)教材分析本课重点介绍了鼠标响应事件。(1)MouseDown事件MouseDown事件是3种鼠标事件中最常使用的事件,当按下鼠标按钮时即可触发此事件。MouseDown事件的语法格式如下:private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) Button:返回一个整数,该整数用于标识按下的鼠标键是哪一个(左键、右键或中间键)。Shift:返回一个整数,在Button参数指定的键被按下或被释放的情况下,该整数对应于Shift、Ctrl和Alt键的状态。X,Y:返回一个鼠标指针的当前位置。(2)MouseUp事件MouseUp事件当用户在窗体或控件上释放鼠标按键时发生。MouseUp事件的语法格式如下:private Sub Form_MouseUp(Button As Integer.Shift As Integer,X As Single,Y As Single) (三)教学设计与教学建议(含课前准备)本课中画点、画线、画矩形以及画圆形的程序较相似,可以在教师讲解其中一例的基础上,根据学生情况,让学生练习,同时也复习了上节课中在窗体或图片框中画图的知识。例题“涂鸦王国”很有趣,但由于窗体中需添加多个命令按钮控件数组,要提醒学生耐心加细心,认真完成题目。(四)教学资源(或称补充资料)1. 试编写鼠标移动的MouseMove事件过程,使操作对象(如:玛丽、小飞机图片)随鼠标的移动而移动。准备:将图片素材存储到指定位置。控件对象:在窗体上添加1个图像框。属性设置表表8-1 属性设置表对象属性名属性值Form1(窗体1)Caption图随鼠标移Image1(图像框1)StretchTruePicture图片程序代码Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.Left = X Image1.Top = YEnd Sub2. 编程,以鼠标落下的位置为圆心,画半径为50的颜色各异的“随意位置的圆”。程序代码Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Circle (X, Y), 50, RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)End Sub3. 试编写“同心圆随意画”的程序,要求以按下鼠标键为圆心到抬起鼠标键的点的距离为最大半径,画同心圆。程序代码Dim x1 As Single, x2 As Single, y1 As Single, y2 As SinglePrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) x1 = X y1 = YEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) x2 = X y2 = Y d = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2) For a = 0 To d Step 100 Circle (x1, y1), a, RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Next aEnd Sub第3单元 再接再厉单元概述本单元通过“系统集成”的任务,学习了VB菜单的编辑使用方法。通过“美图浏览”、“时光如梭”、“星期查询”和“感动中国”等主题活动介绍了数组、变量的程序设计知识,介绍了组合框、列表框和滚动条控件的使用。根据活动的需要介绍了时间、日期函数和输出函数的使用方法,Print的使用方法,“分离数字”、“星期早知道”算法,文件操作等知识内容。学习目标学会菜单编辑器的使用,在菜单单击事件的程序调用窗体文件等相关操作。学会从其它窗体文件返回菜单窗体文件,明确工程文件与窗体文件存储的路径关系。学会文本框、滚动条、列表框、组合框等控件的属性设置和使用方法。掌握字符串的连接方法。学会用一维数组存储信息。学会使用VB的部分时间、日期函数,会用使用数据输入、输出函数。会设置窗体的大小状态属性,会设置控件的可用性Enabled属性。体会分离数字的算法,学会常用字符处理函数的使用。了解在VB中对文件的相关操作方法。重点难点重点:学会菜单编辑器的使用,在菜单单击事件的程序调用窗体文件等相关操作。学会文本框、滚动条、列表框、组合框等控件的属性设置和使用方法。学会用一维数组存储信息。了解在VB中对文件的相关操作方法。难点:学会从其它窗体文件返回菜单窗体文件,明确工程文件与窗体文件存储的路径关系。掌握字符串的连接方法。学会用一维数组存储信息。体会分离数字的算法,学会常用字符处理函数的使用。了解在VB中对文件的相关操作方法。学时安排第9课 系统集成 1课时第10课 美图浏览 2课时第11课 时光如梭 1课时第12课 星期查询 1课时第9课 系统集成(一)本课教学目标学会菜单编辑器的使用。掌握文本框的使用方法。学会在菜单单击事件的程序调用窗体文件。学会从其它窗体文件返回菜单窗体文件。明确工程文件与窗体文件存储的路径关系。体会文件管理的意义。(二)教材分析 ⑴ 本课是结合菜单设计来完成系统集成任务的,内容有:相关文件的存储管理;菜单项单击事件的程序设计;为工程添加相关程序的窗体文件;窗体文件的调用和卸载;图片存储路径的修改;主窗体图片的浏览;组合框中浏览内容的调用和卸载。以上涉及的内容大多数都是前面学习过的知识或相关的知识,在教学中建议引导学生回顾以往学习的内容,注意举一反三和知识迁移的作用。⑵ 在本课的学习过程中要注意以下几点:理解集成前菜单与以往资料的关系是工程和工程之间的关系,集成后的关系是工程与窗体的关系,所以在多个窗体文件被添加到菜单工程中时,要注意多个窗体不能重名。在以往资料中的退出按钮或关闭按钮的功能一般都是结束工程的执行,而集成后要退出或关闭的是本窗体,所以要将被集成的窗体程序进行修改。修改1:将End方法修改为Unload Me修改2:在代码中添加以下事件过程 Rem “关闭”按钮的过程代码Private Sub Form_Unload(Cancle as Integer) Frmsys.Show '显示主窗体End Sub 可以用工程菜单―――添加文件―――选中窗体文件将相应窗体添加到菜单工程中,注意被添加的窗体要存盘。 (3)文本框的功能和使用方法是本课的重点也是难点。文本框和标签都可以显示文本信息,但文本框还可以通过键盘接受用户输入的信息,而标签则不可以;文本框的Text属性值就是其显示的文本内容,而标签的Caption属性值是它的显示内容。文本框的FontBold(粗体字)属性、FontItalic(斜体字)属性、FontStrikethru(删除线字)属性、FontUnderline(下划线字)属性有两个值,其值为True(也就是1)表示字体有该效果,其值为False(也就是0)表示字体没有该效果。在编写程序代码时,如想实现文本框中字体的粗体、斜体、删除线和下划线效果,可以为文本框的FontBold(粗体字)属性、FontItalic(斜体字)属性、FontStrikethru(删除线字)属性、FontUnderline(下划线字)属性赋相应的值。文本框的Multiline属性也是初次接触,值为True时,可以在文本框中输入多行文本,值为False时,用户不能在文本框中输入多行信息。ScrollBar属性设置是否加上滚动条,值为0(None)时,不加滚动条;值为1(Horizontal)时,只加水平滚动条;值为2(Vertical)时,只加垂直滚动条;值为3(Both)时,既加水平滚动条又加垂直滚动条。文本框的常用事件有Change事件,当文本框的Text属性值改变时,就会触发文本框的Change事件。KeyPress事件,当用户从键盘上敲入一个字符时,就会触发文本框的KeyPress事件。 建议教师在平时的教学中就强调文件的管理,这样到本课的学习时就可以起到“水到渠成”的效果。(三)教学设计与教学建议(含课前准备)建议利用本教材的学习内容制作一个“VB学习系统”,在系统设计的过程中,归纳学习的内容,综合运用学习的内容,学习系统结构设计的方法,体会用计算机处理问题的全过程。作为系统集成本课采用菜单的方式将学习内容组织在一个工程中,在集成的过程中,要求学生体会资料获取,管理、存储、输出的作用和基本方法,学习资料分类、加工的方法。体会从系统的角度,从工程设计的角度,从软件开发者的角度看待自己的学习成果。建议本课的引入可从演示本课设计的“VB学习系统”入手,引发学生的设计需求,教师要引导学生分析系统的结构,结合系统对照以往学习内容,引导学生综合运用所学知识,完成系统的集成。由于时间关系可以引导学生完成系统集成的部分内容,例如:完成菜单中几课程序的集成,完成一、两课程序界面的展示,完成一、两课的VB自我测试。(四)教学资源(或称补充资料) 创作天地答案参考“学习系统”程序代码。第10课 美图浏览(一)本课教学目标掌握字符串的连接方法。学会设置滚动条控件的属性并通过滚动条浏览图片。学会设置列表框控件的常用属性。学会用Print方法在图片框上输出文字信息。学会用一维数组存储信息。(二)教材分析建议在教学中注意三个活动之间的衔接,(1)学习滚动条控件的使用,建立滚动条中滚动块位置与图片名称之间的关系。(2)通过学习列表框的使用,建立列表框选项与在图片框中用Print方法输出内容的对应关系。(3)通过学习一维数组的使用,建立数组下表变量存储数据与列表框选项内容之间的关系,建立数组下表变量存储数据与滚动条中滚动块位置对应的场馆图片的关系。对于以下代码应该引导学生注意功能和含义:滚动条中滚动块的当前位置值: HScroll1.Value与滚动条当前值对应的奥运场馆文件名:CStr(HScroll1.Value) & ".jpg"列表框List1中选中项的序号: List1.ListIndex列表框List1中选中项的内容:List1.List(List1.ListIndex)(三)教学设计与教学建议(含课前准备)通过网上搜集奥运场馆信息获取奥运场馆图片,引入编制奥运场馆问答程序的需求,为了分散难点将整个程序分为通过滚动条查看场馆、通过列表框选择场馆和显示相应场馆信息三个部分学习,逐步完善其功能。 (四)教学资源(或称补充资料)1. 编程,用滚动条控制在图片框中绘制基本图形(如:圆、直线、椭圆等)控件对象:在窗体上添加1个图片框和1个滚动条。属性设置表表10-1 属性设置表对象属性名属性值Form1(窗体1)Caption选择图形HscrollBar1(水平滚动条)Max5Min1LargeChange1程序代码Private Sub HScroll1_Change()Picture1.Scale (-10, 10)-(10, -10)Picture1.ClsSelect Case HScroll1.Value Case 1: Picture1.Circle (0, 0), 8 Case 2: Picture1.Line (-9, 0)-(9, 0) Case 3: Picture1.Circle (0, 0), 8, RGB(0, 255, 0), , , 0.5End SelectEnd Sub2.编程,在列表框中选择同学的姓名,在图片框中显示该同学各科期中考试的成绩。控件对象:在窗体上添加1个图片框和2个命令按钮。属性设置表表10-2 属性设置表对象属性名属性值Form1(窗体1)Caption绘制彩色圆Command1(命令按钮1)Caption绘制三十个彩色圆Command2(命令按钮2)Caption退出程序代码Dim a(30) As Integer, b(30) As Integer, c(30) As IntegerPrivate Sub Form_Load() a(1) = 98 b(1) = 93 c(1) = 90 a(2) = 85 b(2) = 87 c(2) = 86 a(3) = 98 b(3) = 90 c(3) = 85 a(4) = 72 b(4) = 93 c(4) = 79 a(5) = 85 b(5) = 95 c(5) = 96 a(0) = 60 b(0) = 69 c(0) = 85End SubPrivate Sub List1_Click() n = List1.ListIndex Picture1.Cls Picture1.Print Picture1.Print List1.List(n); "的期中成绩:" Picture1.Print "语文"; a(n) Picture1.Print "数学"; b(n) Picture1.Print "英语"; c(n)End Sub3.编程,完成“看吉祥物猜奥运举办地”的图片浏览程序。 答案参考“学习系统”程序代码。4.分组完成“看图片猜奥运场馆”、“看吉祥物猜奥运举办地”、“看奥运金牌猜奥运是第几届”、“看奥运会徽猜奥运举办国家”的程序,然后自己试着将四个程序合成在一个“猜猜看”的工程中。 答案参考“学习系统”程序代码。第11课 时光如梭(一)本课教学目标学会使用VB的部分时间、日期函数。会设置窗体的大小状态属性。会用数据输出函数输出简单的数据。会设置控件的可用性Enabled属性。体会分离数字的算法。(二)教材分析在电子时钟的程序设计中,建议分析时钟的显示需求,即窗体显示和窗体标题栏的显示,从而引出对窗体状态判断的需求。在计时秒表的程序设计中,建议分析计时控制不同时刻按钮的状态需求和计时需求,从而引出对命令按钮及计时器控件可用性属性设置的需要。另外通过分析停止时间减去开始时间等于计时时间的算法,引入Timer函数的使用,也为后面的程序设计做一些知识铺垫。在今日倒计时的程序设计中,建议利用计时秒表算法分析出用全天时间减去当前时间为今天剩余时间的算法,然后提出将剩余时间的秒数分离为小时、分和秒的数字后显示需要。利用今日倒计时的设计引出奥运倒计时的需求和计算两日期天数的函数,根据学生情况引导学生相对独立地完成奥运倒计时的程序设计。(三)教学设计与教学建议(含课前准备)通过与奥运相关的计时装置的程序设计需求引入本课的活动内容,本课由“电子时钟”、“计时秒表”、“今日倒计时”和“奥运倒计时”4个活动循序渐进地完成学习任务的,在教学过程中要注重各活动任务之间的衔接和转换。对每个程序的设计之前建议对算法进行分析,使学生在设计程序的时候能够做到目的性清楚,心中有数。本课的活动都用到了计时器控件,可以让学生更深入地感受计时器控件在动态效果控制的作用。(四)教学资源(或称补充资料) 创作天地答案参考“学习系统”程序代码。第12课 星期查询(一)本课教学目标进一步体会数组在处理有序数据中的作用。学会常用字符处理函数的使用。体会程序设计中表格的输出方法。掌握使用InputBox函数输入数据的方法。在编写程序的过程中体会程序的基本结构。学会用字符串函数分离数字的方法。学会组合框的常用属性设置和使用方法。 (二)教材分析“星期早知道”程序设计的关键是对算法的历届和表达,即:t = (a(m) + d) Mod 7 '计算星期其中数组a存放的是一年的月代码,数组中下表为m的下标变量a(m)存放的是m月的月代码,数组Week存放的是一周每天的中文表达字符,例如Week(0)存放的是字符“日”,Week(5)存放的是字符“五”。“求2013年12个月的月代码”的程序设计,默认已知去年最后一天是星期几,即知道今年1月的月代码,还知道1月到11月的天数,所以可以用星期早知道的算法求出2月的月代码、3月的月代码……12月的月代码。程序中的语句a(k) = (a(m) + n) Mod 7 '计算并保存k月的月代码其中a(k)是求出的k月的月代码,a(m)是上个月(即k-1月)的月代码,n是k-1月的天数。(三)教学设计与教学建议(含课前准备)建议做个游戏,教师记住本年各月的月代码,由学生提出今年的某月某日,教师按算法口算回答这一天是星期几,使学生引起兴趣。然后教师介绍解决问题的方法,提出用此方法计算2013年某一天是星期几的要求,从而引入本课的第一个活动任务“星期早知道”。活动的需求和算法分析。本课通过“星期早知道”、“求2013年12个月的月代码” 、“2013月历浏览”和“体育达标人数统计”几个任务来完成本课的教学内容的。这其中除“体育达标人数统计”的程序外的三个程序的设计都具有一定的联系,前面的程序起到为后面程序的铺垫作用。“星期早知道”的程序设计要求,为学生提供了一个求某一年某月某天是星期几的算法,本算法的已知前提是知道本年12个月的月代码,这往往可以从电脑或年历上查到。如果只知道前一年的最后一天是星期几(即一月份的月代码)利用此算法也可以求出本年各月的月代码,这就引出了“求2013年12个月的月代码”的程序设计要求。又由于输出月历的程序需要确定1号 的输出位置所以就要知道1号是星期几。这也可以通过求星期几的算法求得,所以一年各月的月历也就不难求出了。在教学中注意了这些联系也就处理好了教学的难点问题。(四)教学资源(或称补充资料)1.输入百以内的整数,输出这个百以内整数的汉语拼音。控件对象:在窗体上添加1个标签、1个文本框、1个图片框和1个命令按钮。属性设置表表11-1 属性设置表对象属性名属性值Form1(窗体1)Caption汉语拼音读数字Label1(标签框)Caption空Font2号字Text1(文本框)Text空Font2号字Command1(命令按钮1)Caption汉语拼音读数字程序代码Dim a(10) As StringPrivate Sub Command1_Click() x = Text1.Text n = Fix(x / 10) m = x Mod 10 If n = 0 Then Picture1.Print a(m) Else If m = 0 Then Picture1.Print a(n); " shi" Else Picture1.Print a(n); " shi "; a(m) End If End IfEnd SubPrivate Sub Form_Load() a(0) = "ling" a(1) = "yi" a(2) = "er" a(3) = "san" a(4) = "si" a(5) = "wu" a(6) = "liu" a(7) = "qi" a(8) = "ba" a(9) = "jiu"End Sub 展开更多...... 收起↑ 资源预览