张忠和
案例教学是提高基础知识运用能力的一个非常好的手段,也是激发学生创作积极性的有效方法。特别是以学生感兴趣的案例为切入点能起到事半功倍的效果。本文利用网络上流行的游戏“开心农场”、“阳光牧场”作为切入点,开发一个程序实现定时提醒收割或定时提醒偷窃,成功地解决了网友在等待中白白地浪费时间或错过收割时机。
一、知识点准备
1.控件数组
见表1
表1说明如下:
(1)选用控件数组是为了方便编写源程序代码,充分利用该案例界面中每行任务的同质性。
(2)“选择网站”和“选择场地”控件数组选用组合框控件而不选择列表框控件。这是由于很多个网站有开心农场游戏,在制作界面时无法穷尽,当用户使用该程序时既可在给定的下拉列表中选择给定文本也可直接填入未给定文本。
(3)“间隔分钟”、“剩余时间“、“序号姓名”三个控件数组皆选用文本框,利用文本框控件的“Chang”事件编写“间隔分钟”控件数组的过程代码,从而实现用户在“间隔分钟”所在列的文本框中输入作物收割所需的分钟数,之后在程序代码的控制下,用“剩余时间”“提醒位置”和“蜂鸣器”三种方法提醒用户收割时间已到。“剩余时间”和“序号姓名”两列控件数组无事件代码,只起到提示时间和记录的作用。
(4)“提醒位置”控件数组选用图片框控件,便于用显著的图片来起到提醒的作用,本控件数组也无需编写事件代码,在制作界面时将图片加载,并在窗体的Load事件过程中令该控件数组的Visible = False使其程序运行时隐藏,再利用定时器控件(Timer)控制其何时显示。
(5)“循环利用”控件数组选用Command控件数组,其事件过程目的是在提醒任务完成后用该控件清空本行继续实现另一个提醒目的。
2.定时器控件
设计两个核心定时器控件,一个控制调用“提醒位置”显示图片的子过程,另一个负责声控提醒。再安排16个定时器控件分别控制各自行的“剩余时间”。
3.基础知识
(1)数组:本案例源程序声明了四个数组,实现源程序中时间运算、时间控制以及累加器等任务。
(2)循环结构:选用For循环,实现控件数组的赋值和数组的赋值。
(3)选择结构:主要使用Select Case语句。
二、主要过程代码
1.“间隔分钟数”一列文本框控件数组的代码
Private Sub Text1_Change(Index As Integer)
Select Case Index
Case 0
b(0)=0‘累加器变量
If Text1(0).Text=""Then Exit Sub‘不输入时间则不启动计时程序段
m(0)=Val(Text1(0).Text)‘间隔分钟数变量
t(0)=CDate(Format(m(0)60,0)&":"&Format(m(0)Mod60, 0)&":"&"00")+Time‘转换为未来时刻
Timer3.Enabled=True‘启动定时器控件3
2.“清空”一列的代码
Private Sub Command1_Click(Index As Integer)‘恢复到初始状态
Select Case Index
Case 0
Combo1(0).Text ="":Combo2(0).Text="":Text1(0).Text ="":Text2(0).Text="":Picture1(0).Visible=False:Timer3.Enabled=False
t(0)=#11:59:59PM#
y(0)=16
Text3(0)=""
…… ……
通过本程序的学习,使学生探索性地学习了开发一个实用程序,学生的编程水平上了一个新台阶。巩固并充实了《Vasaul Basic程序设计》课程中的许多知识点。为学生编程水平的进一步提高打下了坚实的基础。
(作者单位:山东省泰安市高级技工学校)