教学目标:
能熟练运用CommandButton控件及TextBox控件进行VisualBasic(以下简称VB)程序的设计,能熟练运用条件语句编写代码
教学重点:运用开发VB程序一般过程的思路来开发“简易计算器”
教学难点:分析得出实现“简易计算器”各运算功能的算法。
教材分析:
当我刚开始进行程序设计的教学时,便感觉比较难教。这是因为程序设计本身枯燥、严谨,较难理解,而且学生大多数都是初学者,没有相应的知识基础。对于《程序设计实例》,我们选用的教材是广东教育出版社出版的《信息技术》第四册,该书采用的程序设计语言是VB,而学生是仅学过了一点点简单的QB编程之后就进入《程序设计实例》的学习的。
教材为我们总结了设计VB程序的一般步骤:创建用户界面;设置控件属性;编写事件程序代码;运行应用程序。我总结了一下,其实VB程序设计可分为设计用户界面及编写程序代码两个环节。
教学过程:
一、引入新课
任务:让学生按照书上提示完成一个非常简单的VB程序——“计算器”(仅包含开方、平方、求绝对值功能)的制作。
目的:加强对CommandButton控件及TextBox控件的掌握,复习对开方、求绝对值函数的使用。
引入本节课的学习任务:设计一个简易计算器,包含加、减、乘、除、开方、平方等运算。程序界面可参考下图。
具体功能为:在Text1中输入一个数值,然后单击代表运算符的按钮则运算结果会在text2中显示出来;比如在text1中输入一个2,然后按“+”按钮,再输入一个3按“-”按钮,再输入一个-4按“*”按钮,则实际为(2-3)*(-4);最后在text2中显示结果为4。
二、讲授新课
1.界面设计
因为VB是一种可视化的编程工具,其整个用户界面的设计都是基于“可视化操作”的,这对于有一定的Windows操作基础的高二学生来说并不是一件难事。界面设计在VB程序设计中占有重要地位,一个好的界面,不但要令人感觉良好,还要使程序方便易用。让学生熟练掌握VB界面的设计是进行VB程序设计的前提。VB界面的设计主要包括控件的绘制及各控件属性的设置两种工作。
您现在访问的是中国学科吧旗下教案网http://www.jsfw8.com/jafs/任务:让学生仿照上图设计“简易计算器”的主界面
目的:让学生熟练掌握VB界面设计的方法
上图所用到的8个命令按钮及2个文本框对应的属性如下表所示:
对象
属性
设置值
Command1
Caption
+
Command2
Caption
-
Command3
Caption
*
Command4
Caption
/
Command5
Caption
平方
Command6
Caption
开方
您现在访问的是中国学科吧旗下教案网http://www.jsfw8.com/jafs/Command7
Caption
清除
Command8
Caption
退出
Text1
Text
0
Text2
Text
空白
2.编写事件代码:
这是VB程序教学的重难点。我们应把程序代码的编写重点应放在算法(解决问题的方法和步骤)上面。为提高学生分析问题的能力,我为学生们总结出了一条VB编程的思路:根据题目要求,先分析需要几个控件(界面设计);接着分析要创建什么事件、在每个事件中涉及到哪些控件的属性的变化、还要考虑发生该事件前可能出现的情况(编写代码),那么通过分析,VB代码的编写问题就能迎刃而解了。
提高中学生分析问题的能力是在中学开展程序设计课程的重要原因之一。因此,让学生们按照某种可行的思路来分析、解决问题,无疑对提高他们分析问题的能力是大有帮助的
(1)“+”、“-”、“*”、“/”四个按钮的代码编写
“+”(command1)按钮中代码的编写:
A.编写代码前的分析(以提问题的方式让学生思考):
提问:根据题目的要求,很显然是要编写command1的单击(click)事件,那么这一事件涉及到什么控件的什么属性变化?
回答:涉及到text2控件的text属性变化;
提问:程序运行时,当我们在激发单击事件(即进行加法计算)之前,可能有什么情况发生?
您现在访问的是中国学科吧旗下教案网http://www.jsfw8.com/jafs/回答:两种情况。正常情况:在text1中输入了正确的值;出错情况:text1中没输入值或输入了错误的值(比如输入了a)。
总结:我们要创建command1的事件代码,里面涉及到了text1的text属性的变化,并应从text2的text属性中取得所输入的值,还应考虑两种情况即正常或出错时的情况,因此可用条件语句进行代码编写,而减、乘、除按钮中的代码编写方法与加法的非常相似,但是要注意在做除法时要多考虑一种情况:被除数不能为零。
B.编写代码:让学生根据前面分析的结果编写代码
任务:每四个学生一组,每位同学负责加、减、乘、除中任一个运算功能的代码编写,最后再合起来成为完整的一部分。
目的:培养学生自主完成任务的能力,初步培养学生分工合作完成一项任务的团队精神。
附:“+”按钮的参考代码:
PrivateSubCommand1_Click()
'当没有输入数值的时候发出警告,注:当输入字母时并不影响计算结果故不作考虑
IfText1.Text=""Then
MsgBox"请输入一个数值",0,"警告"
Else
'用text2.text来存放累加数值并显示结果
Text2.Text=Val(Text2.Text)+Val(Text1.Text)
'将text1.text置空,好接收下一个要计算的数值的输入。
Text1.Text=""
EndIf
EndSub
“/”按钮的参考代码:
PrivateSubCommand4_Click()
IfText1.Text=""OrVal(Text1.Text)=0Then
MsgBox"被除数不能能为0或者缺少除被数",0,"警告"
Else
Text2.Text=Val(Text2.Text)/Val(Text1.Text)
您现在访问的是中国学科吧旗下教案网http://www.jsfw8.com/jafs/Text1.Text=""
EndIf
EndSub
(2)“平方”、“开方”按钮的代码编写
A.编写代码前的分析:
提问:(先演示“简易计算器”的开方运算功能)大家思考一下当要进行开方计算前应考虑哪些情况发生。提示:演示程序后提醒他们开方计算只需对一个数值进行计算;
回答:出错情况:text1、text2都无数值;正常情况一:text1有数值;正常情况二:text1无数值而text2有数值;
总结:根据演示可知当text1、text2都无数值时出错,当两者都有数值时应优先考虑text1中的值,若text1无数值才考虑text2中的值。因为是多种情况的(二种以上)故可用条件块结构语句来实现,当进行开方运算时还要考虑值为非负的情况。
B.编写代码:
任务:每两位同学为一组,每位同学负责平方或开方运算的一个功能的代码编写,最后再合二为一。
目的:通过反复训练培养学生自主完成任务的能力及团结合作的精神。
“平方”按钮的参考代码:
PrivateSubCommand5_Click()
IfText1.Text<>""Then'在text1中输入了数值;
Text2.Text=Val(Text1.Text)*Val(Text1.Text)
Text1.Text=""
ElseIfText2.Text<>""Then'text1中无数值,而text2中有数值
Text2.Text=Val(Text2.Text)*Val(Text2.Text)
Else'即text1.text=""andtext2.text=""
MsgBox"请输入一个数值",0,"警告"
EndIf
EndSub
“开方”按钮的参考代码
您现在访问的是中国学科吧旗下教案网http://www.jsfw8.com/jafs/PrivateSubCommand6_Click()
IfText1.Text<>""AndVal(Text1.Text)>=0Then'在text1中输入了一个非负数;
Text2.Text=Sqr(Val(Text1.Text))
Text1.Text=""
ElseIfText2.Text<>""AndVal(Text2.Text)>=0Then'text1中无数值,而text2中有非负值;
Text2.Text=Sqr(Val(Text2.Text))
Else'除了上面两种情况外,此else包括了text1,text2无数值或要计算的值(text1或text2)为负数
MsgBox"请输入一个非负数值",0,"警告"
EndIf
EndSub
(3)其它按钮的代码编写
分析:清除按钮实际上是将程序恢复到初始化(刚开始时)的状态,故只需将text1及text2的text属性改为原来的状态即可。代码如下:
PrivateSubCommand7_Click()
Text1.Text=0
Text2.Text=""
EndSub
三、小结
对本节课所学内容进行简单小结,对学生上机时出现的问题进行归纳、点评。
您现在访问的是中国学科吧旗下教案网http://www.jsfw8.com/jafs/