《2022年面向对象程序设计的基本思想.docx》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计的基本思想.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 一、教案目标1、学问与技能(1)熟悉面对对象程序设计的基本思想和面对对象思想的由来,并能够举例说明现实世界与面对对象系统之间的对应关系;(2)熟悉面对对象程序设计的优越性并初步懂得其实现的机制;2、 过程与方法经受分析、调试解决同一问题的两种不同实现思想的程序,初步懂得面对对象程序设计的优势及面对过程程序设计的缺陷;3、情感态度和价值观(1)关注传统结构化程序设计存在的问题;(2)产生学习面对对象程序设计技术的愿望;(3)关注到面对对象技术是当前程序设计的重要进展方向;二、重点难点1、教案重点(1)传统结构化程序设计存在的问题(2)面对对象程序
2、设计所具有的优点;2、教案难点(1)面对对象思想的产生;(2)传统结构化程序设计与面对对象程序设计的基本点比较;(3)实现面对对象程序设计的基本机制;三、教案环境1、教材处理教材以广东训练出版社出版的信息技术(选修一)算法与程序设计第五章第一节内容为结构框架,部分实例选取上海科教版的一般高中信息技术课程试验教材算法与程序设计,力争做到说理透彻,易于懂得并供应较多的理论和实践操练以巩固所学内容;教案方法采纳 采纳讲解、任务驱动、实践和同学自主学习相结合的学习方法;2、预备学问同学已学完教材前四章内容,基本把握了传统的面对过程结构化程序设计方法,有一定的程序设计基础,课前建议同学预习课文内容,初步
3、明白本节教案内容与目标;3、硬件要求建议本节课在多媒体电脑教室中完成,最好有广播教案系统或投影仪,为拓展学习,同学气应答应上互联网;4、所需软件:同学气要安装VB6.0 或以上版本;5、 所需课时: 1 个课时,如无预习,课程将较为紧凑;四、教案过程导入: 1、简要介绍本节课的教案目标:熟悉面对对象思想的由来及其基本思想,通过阅读或调试用两种不同思想实现解决同一问题的两段程序,认清面对对象程序设计的优点和结构化程序设计的缺陷;2、问题导入;请同学们阅读本节课文最前面的引导文字段,一分钟后请同学发言;通过引导抛出结论: “ 结构化程序设计存在固有的缺陷:以功能为核心,数据和函数分开,使得后期保护
4、难,安全性差等且不适合解决复杂问题;” (一)面对对象思想的产生1、面对对象技术是程序设计进展的必定趋势1 / 7 名师归纳总结 - - - - - - -第 1 页,共 7 页精选学习资料 - - - - - - - - - 通过前面的学习我们知道,程序设计语言进展到现在经受了机器语言、汇编语言再到高级语言;高 级语言可分为 = 1 * GB3 面对过程的程序设计语言 = 2 * GB3 面对对象的程序设计语言;高级 语言的显现为运算机的应用开创了宽阔的前景;运算机能解决的问题从纯运算问题开头进展到现在 能处理现实世界方方面面的问题;面对过程的程序设计方法以算法(即程序功能)为中心,把过程
5、和数据作为相互对立的部分,即“程序 =算法 +数据结构 ” ;因此当描述事物的数据结构发生了转变,全部与该数据结构相关的语句、过程和函数都要重新设计;要使数据与程序始终保持相容,已成为 程序员开发的一个繁重负担;仍有面对过程程序设计方法存在着安全性差、代码可重用性差等缺 陷,随着软件开发规模的不断扩大,结构化的方法已不能驾驭软件开发的过程;人们从编程解决问 题的实践中逐步总结出:以接近人们思维方式来编程解决问题的面对对象技术代表了程序设计进展 的方向;由于它能做到高效率、易保护、安全性强、代码可重用率高;2、面对对象技术的思想面对对象程序设计(Object Oriented Programmi
6、ng,简称OOP),是基于一种很自然和朴实的思想;运算机软件开发的过程就是人们使用各种运算机语言将现实世界映射到运算机世界的过程;运算机 系统通常是在肯定对象上执行肯定行为的操作,要获得灵活和可重用的系统,最好的方法就是将软 件结构建立在对象上,而不是行为之上,使运算机求解问题更加类似于人类的规律思维活动,让程 序设计依据我们平常熟悉客观世界的方式进行;客观世界是由物质与意识构成的;现实生活中,“一个同学张三 ” 表达的是详细的事物,而“同学 ” 是一种意识;物质表达详细的事物,意识是对客观存在的事物的一种抽象概括;在面对对象系统的求 解空间中,有对象和类,如把现实事物直接映射到面对对象的软件
7、系统求解空间,那么物质对应于 对象,而意识对应于类(Class);客观世界中,同学是人们对全部详细的同学的抽象概括,在面对对象系统中可用同学类来表达,而 同学张三是同学的一个详细的实例;在面对对象系统中可表示为一个对象,这个对象就是同学类中的一个实例,如下图所示;现实问题空间面对对象系统求解空间物质:详细事物:一个同学张三一个对象同学的实例意识:抽象概念:同学同学类现实世界与面对对象系统之间的关系面对对象更接近于运算机世界的物理实现;面对对象思想就符合人们的熟悉习惯;面对对象作为一 种思想和编程语言,为程序从分析、设计到编码整个过程供应了一个完整的解决方案;(二)面对对象程序设计活动一: 以下
8、是处理同学成果的两个程序,同学成果 同学成果 2.vbp 用面对对象的方法编写,试比较它们;1.vbp 用面对过程的方法设计,1、开 同学 成果 1.vbp;阅读并运行该程序(见程序一) ;程序一 Private Sub Form_clickDim i As Integer, n As Integer n为同学数Dim StName As String Dim sc1 As Integer2 / 7 名师归纳总结 - - - - - - -第 2 页,共 7 页精选学习资料 - - - - - - - - - Dim sc2 As Integer Dim sc3 As Integer Dim
9、total As Single Dim prompt As String n = ValInputBox 输入同学数 Print 姓名 & vbTab & 成果 1 & vbTab & 成果 2 & vbTab & 成果 3 & vbTab & 加权总分 & vbTab & 证书类型 For i = 1 To nStName = InputBox输入第 & i & 位同学的姓名 sc1 = ValInputBox输入该同学的软硬件基础成果sc2 = ValInputBox输入该同学的文字处理技巧成果sc3 = ValInputBox输入该同学的网络技术应用成果 total = sc1 * 0.
10、2 + sc2 * 0.5 + sc3 * 0.3输出表头prompt = StName & vbTab & Strsc1 & vbTab & Strsc2 & vbTab & Strsc3 & vbTab & Strtotal & vbTab If sc1 = 85 And sc2 = 85 And sc3 = 85 Then Print prompt & 优秀 Else If total 70 And sc1 = 60 And sc2 = 60 And sc3 = 60 Then Print prompt & 合格 Else Print prompt & 不合格 End If End If
11、 Next i End Sub立刻行动: 阅读本程序请问答(1)找出程序中运算总分的语句;( 2)找出程序中判定证书类型的语句;2、打开 学用面对对象方法生成的同学成果 2.vbp;下图所示:运行该程序后界面如3 / 7 名师归纳总结 - - - - - - -第 3 页,共 7 页精选学习资料 - - - - - - - - - 争论 :两个程序的执行过程有什么不同?3、观看“同学成果 2.vbp” 的程序(见程序二);程序二 提 示 定义同学类 变量 stu 所声明的数据 Dim stu As New StudentDim n As Integer n为同学数 类型不是系统供应的 数据类型
12、,而是一个 窗体启动 由用户创建的自定义 类 型 , 称 为 student Private Sub Form_Load labN.Caption = 1 同学序号标签显示 1 类;End Sub 单击“ 处理” 按钮大事 Private Sub Command1_Click Dim StuRec As String Dim StName As String Dim sc1 As Integer Dim sc2 As Integer Dim sc3 As Integer StName = TxtName.Text sc1 = ValTxtScore1.Text sc2 = ValTxtScor
13、e2.Text sc3 = ValTxtScore3.Text 将同学的信息赋给对象 Call stu.SetInf StName, sc1, sc2, sc3 输出结果 StuRec = stu.GetName & vbTab StuRec = StuRec & stu.GetScore 1 & vbTab & stu.GetScore 2 & vbTab & stu.GetScore 3StuRec = StuRec & vbTab & List1.AddItem StuRec n = n + 1 labN.Caption = n + 1 文本框清零 TxtName = stu.GetTo
14、tal & vbTab & stu.Judge 提 示与前一个程序相比 可以发觉程序一中实现 运算总分的表达式和判 断证书类型等功能的选 择结构语句在程序二的TxtScore1 = 0: TxtScore2 = 0: TxtScore3 = 0 代码窗口中已经找不到TxtName.SetFocus 了,取而代之的是对象End Sub 方法的调用语句 . 立刻行动: 阅读本程序问答(1)找出程序中运算总分的语句;(2)找出程序中判定证书类型的语句;4、分别在程序一和程序二的运算总分和判定证书类型的语句之间添加语 句“SC1=0” ,再次运行两个程序,看结果有什么不同;小提示:由于中途转变了软硬件
15、基础成果数据,使得程序一的运行结果受到了影响,4 / 7 名师归纳总结 - - - - - - -第 4 页,共 7 页精选学习资料 - - - - - - - - - 而程序二不会受任何影响;活动二从 VB 的类模块中熟悉类、对象和实体student” ,1、双击“同学成果2.vbp” 程序的工程资源治理窗口中类模块下的“打开类模块代码窗口,如下图所示2、阅读其中的程序,如下图所示:定义存放同学姓名的变量和存放三门课成果的数组 Private m_name As String Private m_score3 As Integer 实现获得同学姓名的方法 Public Sub SetInfn
16、ame As String, s1 As Integer, s2 As Integer, s3 As Integer m_name = name m_score1 = s1 m_score2 = s2 m_score3 = s3 End Sub 实现输出同学信息的方法 Public Function GetName As String GetName = m_name End Function Public Function GetScoreindex As Integer As Integer GetScore = m_scoreindex End Function5 / 7 名师归纳总结
17、- - - - - - -第 5 页,共 7 页精选学习资料 - - - - - - - - - 实现运算总分的方法 Public Function GetTotal As Single GetTotal = m_score1 * 0.2 + m_score2 * 0.5 + m_score3 * 0.3 End Function 实现判定证书类型的方法 Public Function Judge As String If m_score1 = 85 And m_score2 = 85 And m_score3 = 85 Then Judge = 优秀 = 60 And ElseIf GetT
18、otal 70 And m_score1 = 60 And m_score2 m_score3 = 60 Then Judge = 合格 提示 Else这段代码定义了一个“ 同学类” ;类定义 Judge = 无 中包含了同类对象共同的属性,这个“ 同学End If类” 的属性有姓名和三门课成果,以及“ 行为End Function(方法)” ,如运算总分方法、判定证书类型 方法等; VB 中,上述属性和方法都是封装在类立刻行动 :阅读以上同学类定义程序段后 模块中的;(1)写出 Student 类中定义同学属性的部分m_name 用于表示 m_score3 用于表示(2)写出 Student
19、 类中定义方法的部分;子过程 SetInf 的作用是猎取同学对象的姓名和三门课成果;函数 GetScore 的作用是输出同学对象的姓名和三门课成果;函数 GetName 的作用是函数 Judge 的作用是讨 论 : 在 程 序 二 中 的 语 句 “ Call stu.SetInfStName, sc1, sc2, sc3 ” 后 , 添 加 语 句“m_name= 冯海 ”,调试运行程序 ,看结果有何影响 .缘由是什么 .假如要运算四门课的成果 ,该如何修改程序一和程序二 ,两者的修改方法有什么不同?归纳总结:两种程序设计方法的异同1、运行机制不同程序一的运行过程完全由程序掌握,什么时候输入
20、数据,什么时候运算得出结果,都是由程序员预先设计好的,不能中途予以转变;如某用户在输入完第一个同学成果的硬件基础成果,开头输入文字出理技巧成果时,发觉从前输入的成果错了,需要修改,这时只6 / 7 名师归纳总结 - - - - - - -第 6 页,共 7 页精选学习资料 - - - - - - - - - 能终止程序,重新运行后再次输入,而无法回到上一步修改输入;程序二就不同,用户可随时依据自己的意愿与应用程序进行交互;2、安全性不同 前面的活动一,在两个程序中仅仅添加了转变软硬件基础成果数据这一语句,程序一 的运行结果受到了影响,和用户预期的结果相差甚远,而程序二就没有受到任何影响;试 想
21、一下,假如在一个由数十人甚至数百人合作开发的大型软件系统中,万一需要修改某一 数据,对于使用面对过程方法设计编写的程序来说,其后果是不行估计的;而对于使用面 向对象的程序设计方法编写的程序就相对安全得多;另外,在程序二中不能使用变量赋值语句转变 Student 类模块中的变量值,如 m_name=”冯海 ” ,也就是说不能随便转变某一同学对象的姓名等数据;缘由是类里的 限定词,只答应在类里使用这些变量,而对于 m_name 等变量的定义语句使用了 Private 主程序,必需通过调用类中的方法(操作接口),如 SetInf 为其赋值;这样安全性更强 了;3、实现详细功能的方法相同 两种方法设计
22、的程序,也有其共同之处,如程序一中有实现“ 判定证书类型” 的程序段,程序二的Student类模块中也有实现“ 判定证书类型” 的功能程序段,两个程序都使用了结构化的方法来设运算法,即都采纳了挑选结构;也就是说,无论面对过程的程序,仍是面对对象的程序,其实现详细功能的代码都采纳了结构化程序设计方法来设计;(注:本节部分内容引自上海科教出版社出版的一般高中信息技术课程试验教材算 法与程序设计)五、课外拓展课外练习 :初步总结面对对象程序设计与面对过程程序设计的异同;参考资料 :算法与程序设计 主编 应吉康 上海科技训练出版社算法与程序设计 主编 张义兵 训练科学出版社Visual Basic 6.0 程序设计教程 宁正元主编 清华高校出版社 北京交通高校出版社OOD 启思录 美 Arthur J.Riel 著 鲍志云 译Visual Basic 6.0 程序设计 刘新民 蔡琼 白康生 编著 清华高校出版社拓展材料 : 5-1 面对对象与面对过程 .doc 5-1 面对对象的动因 .doc7 / 7 名师归纳总结 - - - - - - -第 7 页,共 7 页