1、教学方法采用 采用讲解、 任务驱动、 实践和学生自主学习相 结合的学习方法。2、 预备知识学生已学完教材前四章内容 , 基本掌握了传统的面向过程结构 化程序设计方法 , 有一定的程序设计基础 , 课前建议学生预习课 文内容 , 初步了解本节教学内容与目标。3、 硬件要求建议本节课在多媒体电脑教室中完成 , 最好有广播教学系统或 投影仪 , 为拓展学习 , 学生机应允许上互联网。4、 所需软件 : 学生机要安装 VB6.0 或以上版本。5、 所需课时 : 1 个课时, 如无预习 , 课程将较为紧凑。四、 教学过程导入 : 1 、 简要介绍本节课的教学目标 : 认识面向对象思想的 由来及其基本思想
2、 , 经过阅读或调试用两种不同思想实现解决同 一问题的两段程序 , 认清面向对象程序设计的优点和结构化程序 设计的缺陷。2、问题导入。请同学们阅读本节课文最前面的引导文字 段, 一分钟后请同学发言。经过引导抛出结论 : ”结构化程序设计 存在固有的缺陷 : 以功能为核心 , 数据和函数分开 , 使得后期维 护难, 安全性差等且不适合解决复杂问题。”( 一) 面向对象思想的产生 1、面向对象技术是程序设计发展的必然趋势 经过前面的学习我们知道 , 程序设计语言发展到现在经历了机 器语言、汇编语言再到高级语言。高级语言可分为 = 1 * GB3 面向过程的程序设计语言 = 2 * GB3 面向对象
3、的程序设 计语言。高级语言的出现为计算机的应用开辟了广阔的前景。 计算机能解决的问题从纯计算问题开始发展到现在能处理现实 世界方方面面的问题。面向过程的程序设计方法以算法 ( 即程 序功能 ) 为中心 , 把过程和数据作为互相对立的部分 , 即”程 序=算法+数据结构”。因此当描述事物的数据结构发生了改变 , 所有与该数据结构相关的语句、 过程和函数都要重新设计。 要 使数据与程序始终保持相容 , 已成为程序员开发的一个沉重负 担。还有面向过程程序设计方法存在着安全性差、 代码可重用性差等缺陷 , 随着软件开发规模的不断扩大 , 结构化的方法已 不能驾驭软件开发的过程。人们从编程解决问题的实践
4、中逐渐 总结出 : 以接近人们思维方式来编程解决问题的面向对象技术 代表了程序设计发展的方向。因为它能做到高效率、 易维护、 安全性强、 代码可重用率高。2、 面向对象技术的思想 面向对象程序设计 ( Object Oriented Programming, 简称 OOP), 是基于一种很自然和朴素的思想。计算机软件开发的过程就是 人们使用各种计算机语言将现实世界映射到计算机世界的过 程。计算机系统一般是在一定对象上执行一定行为的操作 , 要 获得灵便和可重用的系统 , 最好的办法就是将软件结构建立在 对象上 , 而不是行为之上 , 使计算机求解问题更加类似于人类 的逻辑思维活动 , 让程序设
5、计按照我们平时认识客观世界的方 式进行。客观世界是由物质与意识构成的。现实生活中 , ”一个学生张 三”表示的是具体的事物 , 而”学生”是一种意识。物质表示 具体的事物 , 意识是对客观存在的事物的一种抽象概括。在面 向对象系统的求解空间中 , 有对象和类 , 若把现实事物直接映 射到面向对象的软件系统求解空间 , 那么物质对应于对象 , 而 意识对应于类 ( Class) 。客观世界中 , 学生是人们对所有具体的学生的抽象概括 , 在面向对象系统中可用学生类来表示,而学生张三是学生的一个具 体的实例。在面向对象系统中可表示为一个对象 ,这个对象就是学生类中的一个实例,如下图所示。 面向对象
6、系统 具体事物:一个对象 学生现实世界与面向对象系统之面向对象更接近于计算机世界的物理实现 ;面向对象思想则符合人们的认识习惯。面向对象作为一种思想和编程语言 ,为程序从分析、 设计到编码整个过程提供了一个完整的解决方案。(二) 面向对象程序设计活动一:以下是处理学生成绩的两个程序,学生成绩l.vbp用 面向过程的方法设计,学生成绩2.vbp用面向对象的方法编写, 试比较它们。1、 开学生成绩l.vbp ;阅读并运行该程序(见程序一)。 程序一Private Sub Form_click()Dim i As Integer, n As Integer n 为学生数Dim StName As S
7、tri ngDim sc1 As In tegerDim sc2 As In tegerDim sc3 As IntegerDim total As SingleDim prompt As Stringn = Val(InputBox( 输入学生数 )Print 姓名 & vbTab & 成绩 1成绩 2 vbTab&成绩 3 加权总分 证书类型 For i = 1 To nStName = InputBox(输入第 i & 位同学的姓名 )sc1 = Val(InputBox(输入该同学的软硬件基础成绩 sc2 = Val(InputBox(输入该同学的文字处理技巧成绩 sc3 = Val(
8、InputBox(输入该同学的网络技术应用成绩 total = sc1 * 0.2 + sc2 * 0.5 + sc3 * 0.3 输出表头prompt = StName & Str(sc1) & Str(sc2) Str(sc3) & Str(total) &If (sc1 = 85 And sc2 = 85 And sc3 = 85) ThenPrint prompt & 优秀 ElseIf (total 70 And sc1 = 60 And sc2 = 60 Andsc3 = 60) Then合格 ” 不合格”End IfNext iEnd Sub马上行动:阅读本程序请问答(1)找出程
9、序中计算总分的语句。(2) 找出程序中判断证书类型的语句。2、打开学用面向对象方法生成的学生 成绩2.vbp运行该程序后界面如下图所示讨论:两个程序的执行过程有什么不同3、观察”学生成绩2.vbp ”的程序(见程序二)程序二定义学生类Dim stu As New Stude nt变量stu所声明的数据类型不是Dim n As Integer n 为学生数 窗体启动Private Sub Form_Load()labN.Caption = 1 学生序号标签显示 1 单击”处理”按钮事件Private Sub Command1_Click()Dim StuRec As StringDim StNa
10、me As StringDim sc1 As IntegerDim sc2 As IntegerStName = TxtName.Textsc1 = Val(TxtScore1.Text)sc2 = Val(TxtScore2.Text)sc3 = Val(TxtScore3.Text) 将学生的信息赋给对象Call stu.SetInf (StName, sc1, sc2, sc3) 输出结果StuRec = stu.GetName() &StuRecStuRec & stu.GetScore (1) &stu.GetScore (2) & stu.GetScore (3)StuRec =
11、StuRec & stu.GetTotal () & stu.Judge ()提(示与前一个程程序一中实现计Listl.Addltem StuRec labN.Captio n = n + 1文本框清零TxtName =TxtScore1 = 0: TxtScore2 = 0:TxtName.SetFocus阅读本程序问答(1)找出程序中计算总分的语句。(2)找出程序中判断证书类型的语句。4、分别在程序一和程序二的计算总分和判断证书类型的语句之间添加语句” SC仁C” ,再次运行两个程序,看结果有什么不同。小提示:由于中途改变了软硬件基础成绩数据 ,使得程序一的运行结果受到了影响,而程序二不会
12、受任何影响。活动二 从VB的类模块中认识类、 对象和实体1、 双击”学生成绩2.vbp ”程序的工程资源管理窗口中类模块下的” student ” ,打开类模块代码窗口 ,如下图所示工程-工程ESQ二 妙 工程了 洋生匪陵2、 阅读其中的程序,如下图所示:定义存放学生姓名的变量和存放三门课成绩的数组Private m_n ame As Stri ngPrivate m_score(3) As Integer 实现获得学生姓名的方法Public Sub SetInf(name As String, s1 As Integer, s2 As Integer, s3 As Integer)m_name = name m_score(1) = s1 m_score(2) = s2 m_score(3) = s3 End Sub 实现输出学生信息的方法Public Function GetName() As StringGetName = m_nameEnd FunctionPublic Function GetScore(index As Integer) As IntegerGetScore = m_score(index) 实现计算总分的方法Public Function
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1