1、Visual Basic 面向对象程序设计 用计算机模拟老鼠繁殖试验 一、活动背景: 程序设计是当今信息技术产业高速发展的基础和源动力, 已经高度渗透与融 合到国民经济和社会发展的每个领域, 其技术水平和发展规模已成为衡量一个国 家产业竞争力和综合国力的重要标志之一。程序设计可以培养学生严谨数理思 维, 挖掘潜力。 优质生和特长生通过程序设计提高了思维能力和解决问题的能力, 参加程序设计竞赛。程序设计也是计算机科学核心,现有信息技术课程,以多媒 体应用、图形化为主,不能体现计算机科学核心。信息技术拥有有自己的学科体 系,课程不能以“工具”为中心,要回归其本质“计算科学” ,程序设计直接体 现“
2、计算科学” ,中小学信息技术课开设程序是重要的一环。现代学生的信息接 触面已经越来越广阔,适当的了解程序设计,学习基本的程序开发,不仅有助于 学生帮助了解社会的发展,提升对人类文明的认识。更是培养其对高新科技浓厚 兴趣的有效途径之一。 双流中学实验学校实施“以课程改革为核心的素质教育” ,其核心是促进学 生个性化学习,培养学生综合实践能力, Visual Basic 程序设计课程的开发 与实施,应运而生。Visual Basic 是微软公司推出的面向对象编程工具,它也 是基于 Windows 操作系统可视化编程环境。Visual Basic 是极具特色和功能强 大的程序设计软件。主要表现在:所
3、见所得的界面设计,基于对象的设计方法, 把程序和数据封装起来作为一个对象,每个对象都是可视的,同时,具有较易维 护的代码。是程序设计教学的良好载体。 经过了一学期的 Visual Basic 程序设计学习,学生学习了 VB 集成开发环境 和 VB 语言的简单语法基础;会使用 VB 的窗体、VB 标签、文本框、命令按钮、 以及单选框等控件,同时掌握了这些控件的基本属性设置及访问方法;学习了 VB 常见变量类型及定义方式、数学运算、布尔运算、赋值语句、分支语句、循 环语句等基础语句及其流程;能够编写和调试简单的 Visual Basic 程序。 二、 活动目标: 通过 Visual Basic(以
4、下简称 VB)程序设计汇报活动,让学生探究 VB 语言 的编程算法规则,体验 VB 程序设计语言的设计过程。培养学生初步用 VB 语言设 计短小应用程序的能力。 通过该课程的学习, 使学生了解算法和程序设计在解决实际问题中的地位和 作用。培养学生的算法思维能力,使学生能利用学过的算法和 VBVB 语言解决生活 和学习中碰到的一些简单问题。随着学习深入,能够设计出有一定实用价值的程 序,让计算“听”自己的话,按自己的意图运行。 让学生感悟程序设计思想,体验程序设计过程,发现计算机运行的原理和规 律, 激发学生进一步继续学习的热情。让学生体验程序中严谨的态度并养成良好 的习惯。 引导学生发现程序设
5、计中的美如: 程序实现效果的美、 算法代码规律美、 数学模型的结构美。让学生的个性特长得到充分的展现和发展。 三、活动流程: (一)导入新课 程序设计“大佬”介绍:比尔-盖茨 13 岁开始学习编程,后创建微软,成为 世界首富。马克-扎克伯格 10 岁开始学编程后来他创立了著名网站 Facebook 成 了最年轻的亿万富翁。百度创始人李彦宏、腾迅创始人马化腾、新浪创始人王志 东、网易创始人丁磊、360 创始人周鸿祎,小米创始人雷军.他们都有共同 一个共同的起点程序设计。 巨人是学习榜样,是我们的目标,让我们也一同走进 Visual Basic 程序设 计。 经过大半学期的 Visual Basi
6、c(VB)程序设计学习,我们学习了: 1、 了解了程序基本知识及常用程序设计语言; 2、 VB 集成开发环境和 VB 语言的简单语法基础; 3、 会使用 VB 的窗体、VB 标签、文本框、命令按钮、以及单选框等控件, 同时掌握了这些控件的基本属性设置及访问方法; 4、 学习了 VB 常见变量类型及定义方式、数学运算、布尔运算、赋值语句、 分支语句、循环语句等基础语句及其流程; 5、 能够编写和调试简单的 Visual Basic 程序。 同学们在学习过程中有什么想法或困惑, 我们就请一些同学来展示他们的学 习的过程,编程实例及相关经验介绍。 (二)小组汇报 1、利用循环程序实现老鼠繁殖数量模拟
7、。 小组成员:刁俊熙(7.3) 、徐伊雯(7.3) 、付敏(7.6) (1)需求分析 老鼠作为“四害”之一 ,十分猖獗。其根本原因老鼠的繁殖能力十分惊人。 老鼠的繁殖能力极强,如果让雌、雄老鼠交配,母鼠 21 天就可以产下幼鼠。雄 性幼鼠 30 天后就进入成年;雌性幼鼠 40 天以后就可以繁殖下一代。这些年轻的 老鼠又会接连不断地生下幼鼠,生下幼鼠后,在 6-10 小时内又可进行交配,怀 下另一胎。这样父母和子女同步生产,就像繁殖机器,使老鼠数量急剧增加。 一对成年老鼠若干月后究竟能繁殖多少后代呢?如果用实验的方法来探究 这个问题, 那么, 不管是时间成本、 经济成本还是环境成本代价都是巨大的
8、。 所以我们不可能用真实的实验来呈现老鼠的繁殖的规模! 计算机模拟实验无疑是 这个问题是最佳解决方案。 (2)系统设计 界面及接口设计:通过输入 初始老鼠数量、繁殖时间等参数 后计算机自动运行模拟计算出老 鼠繁殖的总量。 模型设计:为了简化数学模 型我们先做以下假设:a)、一对 老鼠每月繁殖一胎、平均 6 只。 即:初生幼鼠数量=成年鼠/2 *6, (也可以简化为: 初生幼鼠数量= 成年鼠*3) 。 b)、初生幼鼠经历 三个月后长成年老鼠。c)、老鼠总量=幼鼠+成年鼠。 (3)程序编码 a)变量的使用 对于不同月龄的老鼠数量用不同的变量表示。其中,初生幼 鼠数量用变量 n0、一月鼠 n1、成年
9、鼠 m。其中幼鼠变量的类型都为整形: Integer, 成年鼠的数量有可能会非常庞大所以采用长整型: Long。 b)赋值语句 老 鼠的繁殖过程可以用赋值语句 Let n0 = m / 2 * 6 来实现;而老鼠的生长过程 实现起来则要繁琐一些需要几条赋值语句同时使用: Let m = n3 + m Let n3 = n2 Let n2 = n1 Let n1 = n0 而且赋值顺序必须严格按照以上语句顺序进行, 否则就会由于赋值混乱造成数据 覆盖的严重后果!c)循环结构的使用 由于可以根据繁殖时间精确得出循环执行 的次数所以我们采用 FOR 循环语句来模拟实现老鼠的繁殖和生长情况, 具体语句
10、 如下: For i = 1 To month Step 1 m = m + n3 n3 = n2 n2 = n1 n1 = n0 n0 = m * 3 Next i 最终老鼠的总量计算则由代码 LET m = m + n3 + n2 + n1 + n0 实现。 (4)程序调试 为了验证程序的执行效果,我们特意编排了一系列数据输入进行测试: a) 在程序中输入下列数据:1、5、10、 30、0、99999、-5 ; b)在程序中输入下列数据:a、B、Hello、 “米老鼠” 、 “唐老鸭”。 经测试, 程序对预期正常输入数据能作出正确输出, 但对非法输入会报类型错误; 超大数据则会溢出。 针对
11、这种情况,我们对程序进行了以下完善:a、利用 Val 、IsNumeric 函 数确保输入的合法性;b、利用 if 语句和 Msgbox 提示用户输入有效数据;c、对 界面进行了进一步的规范和美化。 (5)汇报答辩 由学生观众和汇报成员互动答疑(略) (6)教师点评 老鼠繁殖数量模拟程序属于计算机模拟实验的范畴。 所谓计算机模拟实验是 指: 利用计算机模拟某种自然现象或实验现象。 很多实验由于各种局限无法实施, 如辐射因素、时间跨度、场地限制、危险系数这时我们可以进行计算机模拟 实验。 通过一系列观察和推理过程建立它的数学模型;给定的模型条件下不断调 整其参数并进行模型修正。 这种计算机模拟实
12、验也称作 “干式实验” 原子能实验、 生物遗传实验、经济调控、气象灾害预报等领域有着广泛的运用。 2、等差数列计算程序 小组成员:吴佳轩(7.20) 、刘源炳(7.20) (1)需求分析 高斯是德国著名的大科学家,高斯最著名的故事莫过于小学时计算 1+2+3+.+100 的值。 当时高斯上小学, 老师在班上出了这样一道题, 叫大家算。 那个老师以为至少要 20 分钟以后才会有答案,正想休息一下,谁知刚坐下高斯 就说算出来了。老师很惊讶,问他怎么算的,他就说先算 1+100=101, 2+99=101, 。 。 。这样一共有 50 个 101,因此 1231005050 从 1 一直加到 100
13、 其实就是一个经典的等差数列求和的计算。 回忆起小学计算等 差数列的情形无疑是很多同学的梦魇 (2)系统设计 可以用 VB 程序求出任何等差数列的和,先用 VB 计算 1 到 100 的和 (3)程序编码 Dim a, s, d, f, g As Integer Let d = Text1.Text Let f = Text2.Text Let g = Text3.Text For s = d To f Step g a = a + s Next s Let Text4.Text = a (4)程序调试 Private Sub Command2_Click() Dim tuichu As In
14、teger tuichu = MsgBox(“确定要退出吗?“, 1, “退出“) If tuichu = 1 Then End End Sub 这样就行了 (5)汇报答辩 由学生观众和汇报成员互动答疑(略) (6)教师点评:在数学物理化学都有很多类似的数列的问题,虽然可以用数学 的方法可以得出相应的计算方法,但是,如果要统计计算出相应的结果的话,则 十分繁琐。 而计算机通过编程则可以高效快速的计算出结果, 因此, 在物理化学, 军事等高科技很多领域,采用计算机编程来计算结果已经必不可少。 3、简易口算训练程序 王智翔、龙威伍、罗博文(7.10) (1)需求分析 口算训练是大家从小学一直到中学
15、数学学习的必修课。 我们每一个人都不厌 其烦地做了无数道的口算练习、数学老师也孜孜不倦的批改了更多的口算,为了 提高计算能力, 大家可以说在这方面不断重复花费了太多太多的精力能否利 用计算机来辅助我们提高自己的计算能力呢?答案是肯定的。 首先,我们需要随机生成一道口算加减法算式。用户回答后计算机判断正误 并作出相应提示,用户单击“继续”后自动生成新的算式。 (2)系统设计 为了优化系统界面,我们运用了 Label 标签进行提示并判断计算的正误。同 时运用了一些激励性话语进行评价。TextBox 作为口算答案的输入框,但是 TextBox 的内容为文本类型,因此在判断答案正误时需要结合 Val
16、函数的使用才 能比较。 命令按钮 CommandButton 则是分别作为调用新算式生成过程以及判断正 误过程的触发按钮。 (3)程序编码 a) Rnd 函数和 Int 函数的使用。 使用 Rnd 函数可以产生 01 之间的随机数。 所以乘以 100 就变成了 1100 之间的随机数。 Int 函数则可以把随机数的小数位 裁掉,即取整函数。 Let a1= Int (Rnd*100) b) 计算结果的判断 If k = Val(Text1.Text) Then Label5.Caption = “正确,你真行!单击“继续”做下一题。“ Else Label5.Caption = “错了,要计算
17、仔细哦!“ Text1.Text = “ End If c) Randomize 函数的使用。同一台计算机使用 Rnd 函数每次生成的随机数 是一个相同的序列。Randomize 语句可以改变这一情况,使随机函数每次生成的 随机数都不同,从而让口算算式题目更为随机。 d) 如何实现加减法的随机出现。为了让算式中加减法随机交替出现,我们 又一次巧妙的运用了 Rnd 函数。具体代码如下: Let d = Rnd If d 0.5 Then Label2.Caption = “+“ Let k = a + b Else Label2.Caption = “-“ Let k = a - b End I
18、f (4)程序调试 由于 Val 函数的使用,所以程序运行中没有出现数据类型不匹配的问题。在 减法算式中偶尔会出现结果为负数的情况, 如果小学生用到这个程序就可能无法 解答的问题。为了解决这个小 Bug 又加入了以下代码: If a b Then Let c = b Let b = a Let a = c End If 这样就再也不会出现结果为负数的情况了。 (5)汇报答辩 由学生观众和汇报成员互动答疑(略) (6)教师点评:计算机辅助教学(Computer Aided Instruction 简称 CAI)是 计算机运用中的一个重要领域。学生计算能力的培养是数学教学中的基石。这个 口算训练程
19、序有着广泛的运用前景,可以让学生书包中的口算练习本全部“退 休” !同时,也可以让辛苦的数学老师从批改口算本的繁重工作中解放出来,是 一个非常不错的 CAI 程序。这个程序还可以进一步完善和优化:可以设定难度控 制标志用于改变口算的难易程度,以覆盖更为广泛的学生群体。同时可以进一步 加入乘数法的运算,让程序的功能更加完善。 (三)教师总结 Visual Basic 面向对象程序设计选修课已经成功的开设了一学期了,同学们 在课堂中取得了丰硕的成果。 但我们开设这门选修课的目标不是为了把大家培养 成为一名将来的程序员。 1、感悟程序设计思想 抽象:从具体案例和实际问题中抽象出内在的数学模型。如:案
20、例中老鼠 的生长过程繁殖过程抽象为循环的过程; 加减运算符号的随机转换为随机数大小 的判断 算法:同一现象可能会演变为不同的程序模型,程序的算法实现也将衍生 出不同的版本。我们需要对比不同算法的实现难度、简繁程度、执行效率等作出 选择。 角色转变:程序设计要求我们学会从计算机的角度思考问题。例如:从一 系列数据中找出最大数, 从人类的角度出发, 这个问题十分简单。 人运用了眼睛、 大脑结合比较,具体思维过程一闪而过。而计算机就不同了它面对这些数据就像 盲人摸象所以这就要求程序设计者能够从截然不同的角度分析问题解决问 题。 2、体验程序设计过程 现实需求建立模型算法语言实现调试完善求精 这是一个
21、完整的程序设计需要经历的过程, 同时这也完全符合我们完成某项 工作任务的具体流程。而且这个过程更为规范、严谨、完善。 3、感受跨学科的学习环境 在 Visual Basic 程序设计中全英文的编程环境、数学思维与模型的构建、 物理学科知识的支撑为大家构建了一个自然的跨学科学习环境。 4、态度与习惯的形成 严谨的态度包括:模型建立严谨、算法严谨、语法严谨、良好的习惯是 程序设计的基本要求:变量声明的习惯、赋值的习惯、调试的习惯 5、发现程序设计中的美 程序设计中的美包括:程序实现效果的美、算法代码规律美、数学模型的结 构美 课后反思: Visual Basic 程序设计选修课程是信息技术教研组在
22、新课程建设中的一次 大胆的尝试。目前,我们还没有了解到同类学校学校在初中阶段有开设面向对象 程序设计课程的案例。所以,在课程的实施中可能会遇到一些未曾预计的困难和 问题, 面对这些我们没有任何成熟的经验可以借鉴,只能自己在以后的教学尝试 中不断的探索和积累。 经过了一学期的 Visual Basic 程序设计学习,学生学习了 VB 集成开发环境 和 VB 语言的简单语法基础;会使用 VB 的窗体、VB 标签、文本框、命令按钮、 以及单选框等控件,同时掌握了这些控件的基本属性设置及访问方法;学习了 VB 常见变量类型及定义方式、数学运算、布尔运算、赋值语句、分支语句、循 环语句等基础语句及其流程
23、;能够编写和调试简单的 Visual Basic 程序。 在这次汇报中,三组学生以不同的程序案例演示了程序开发的完整过程:现 实需求建立模型算法语言实现调试完善求精。 在案例中充分展现了学生 对于程序设计中的数学模型的构建,例如:老鼠的生长过程繁殖过程抽象为循环 的过程;加减运算符号的随机转换为随机数大小的判断。在汇报中体现了学生对 程序设计过程的深度体验,对计算机运行的原理和规律探究与发现,进一步激发 了学生进一步继续学习的热情。同时,体验到了程序中严谨的态度并养成良好的 习惯。能够发现程序设计中的美:程序实现效果的美、算法代码规律美、数学模 型的结构美。学生的个性特长得到充分的展现和发展。
24、 但同时,我们也要认识到 Visual Basic 程序设计选修课的开设初衷,我们 的目标不是为了把学生培养成为一名将来的程序员。而是重在感悟程序设计思 想。 学会转变角色思考, 程序设计要求我们学会从计算机的角度思考问题。 例如: 从一系列数据中找出最大数,从人类的角度出发,这个问题十分简单。人运用了 眼睛、大脑结合比较,具体思维过程一闪而过。而计算机就不同了它面对这些数 据就像盲人摸象所以这就要求程序设计者能够从截然不同的角度分析问题 解决问题。 随着课程的开展与深入,越来越多的问题逐渐暴露出来。我们将会根据 课程实施中的所遇到的实际问题作出进一步的修改和调整, 让我们的选修课更加 符合学生的发展需求。