ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:118.92KB ,
资源ID:5126422      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5126422.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51面向对象程序设计地基本思想.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51面向对象程序设计地基本思想.docx

1、51面向对象程序设计地基本思想面向对象程序设计的基本思想一、教学目标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 * GB3 面向过程的程序设计语言 = 2 * GB3 面向对象的程序设计语言。高级语言的出现为计算机的应用开辟了广阔的前景。计算机能解决的问题从纯计算问题开始发展到现在能处理现实世界方方面面的问题。面向过程的程序设计方法以算法(即程序功能)为中心,把过程和数据作为互相对立的部分,即“程序=算法+数据结构”。因此当描述事物的数据结构发生了改变,所有与该数据结构相关的语句、过程和函数都要重新设计。要

5、使数据与程序始终保持相容,已成为程序员开发的一个沉重负担。还有面向过程程序设计方法存在着安全性差、代码可重用性差等缺陷,随着软件开发规模的不断扩大,结构化的方法已不能驾驭软件开发的过程。人们从编程解决问题的实践中逐渐总结出:以接近人们思维方式来编程解决问题的面向对象技术代表了程序设计发展的方向。因为它能做到高效率、易维护、安全性强、代码可重用率高。2、面向对象技术的思想面向对象程序设计(Object Oriented Programming,简称OOP),是基于一种很自然和朴素的思想。计算机软件开发的过程就是人们使用各种计算机语言将现实世界映射到计算机世界的过程。计算机系统通常是在一定对象上执

6、行一定行为的操作,要获得灵便和可重用的系统,最好的办法就是将软件结构建立在对象上,而不是行为之上,使计算机求解问题更加类似于人类的逻辑思维活动,让程序设计按照我们平时认识客观世界的方式进行。客观世界是由物质与意识构成的。现实生活中,“一个学生张三”表达的是具体的事物,而“学生”是一种意识。物质表达具体的事物,意识是对客观存在的事物的一种抽象概括。在面向对象系统的求解空间中,有对象和类,若把现实事物直接映射到面向对象的软件系统求解空间,那么物质对应于对象,而意识对应于类(Class)。客观世界中,学生是人们对所有具体的学生的抽象概括,在面向对象系统中可用学生类来表达,而学生张三是学生的一个具体的

7、实例。在面向对象系统中可表示为一个对象,这个对象就是学生类中的一个实例,如下图所示。面向对象更接近于计算机世界的物理实现;面向对象思想则符合人们的认识习惯。面向对象作为一种思想和编程语言,为程序从分析、设计到编码整个过程提供了一个完整的解决方案。(二)面向对象程序设计活动一:以下是处理学生成绩的两个程序,学生成绩1.vbp用面向过程的方法设计,学生成绩2.vbp用面向对象的方法编写,试比较它们。1、 开学生成绩1.vbp;阅读并运行该程序(见程序一)。程序一Private Sub Form_click()Dim i As Integer, n As Integer n为学生数Dim StNam

8、e As StringDim sc1 As IntegerDim sc2 As IntegerDim sc3 As IntegerDim total As SingleDim prompt As Stringn = Val(InputBox(输入学生数)Print 姓名 & vbTab & 成绩1 & vbTab & 成绩2 & vbTab & 成绩3 & vbTab & 加权总分 & vbTab & 证书类型For i = 1 To nStName = InputBox(输入第 & i & 位同学的姓名)sc1 = Val(InputBox(输入该同学的软硬件基础成绩)sc2 = Val(I

9、nputBox(输入该同学的文字处理技巧成绩)sc3 = Val(InputBox(输入该同学的网络技术应用成绩)total = sc1 * 0.2 + sc2 * 0.5 + sc3 * 0.3输出表头prompt = StName & vbTab & Str(sc1) & vbTab & Str(sc2) & vbTab & Str(sc3) & vbTab & Str(total) & vbTabIf (sc1 = 85 And sc2 = 85 And sc3 = 85) Then Print prompt & 优秀Else If (total 70 And sc1 = 60 And

10、sc2 = 60 And sc3 = 60) Then Print prompt & 合格 Else Print prompt & 不合格 End IfEnd IfNext iEnd Sub马上行动:阅读本程序请问答(1)找出程序中计算总分的语句。(2)找出程序中判断证书类型的语句。2、打开学用面向对象方法生成的学生成绩2.vbp。运行该程序后界面如下图所示:讨论:两个程序的执行过程有什么不同?3、观察“学生成绩2.vbp”的程序(见程序二)。示提这段代码定义了一个“学生类”。类定义中包含了同类对象共同的属性,这个“学生类”的属性有姓名和三门课成绩,以及“行为(方法)”,如计算总分方法、判断证

11、书类型方法等。VB中,上述属性和方法都是封装在类模块中的。示提与前一个程序相比可以发现程序一中实现计算总分的表达式和判断证书类型等功能的选择结构语句在程序二的代码窗口中已经找不到了,取而代之的是对象方法的调用语句.示提 用红色标出的语句全部是stu对象的方法调用。程序二定义学生类Dim stu As New StudentDim n As Integer n为学生数窗体启动Private Sub Form_Load()labN.Caption = 1 学生序号标签显示1End Sub单击“处理”按钮事件Private Sub Command1_Click()Dim StuRec As Stri

12、ngDim StName As StringDim sc1 As IntegerDim sc2 As IntegerDim sc3 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() & vbTabStuRec = StuRec & stu.GetScore(1) & vbTab & st

13、u.GetScore(2) & vbTab & stu.GetScore(3)StuRec = StuRec & vbTab & stu.GetTotal() & vbTab & stu.Judge()List1.AddItem StuRecn = n + 1labN.Caption = n + 1文本框清零TxtName = TxtScore1 = 0: TxtScore2 = 0: TxtScore3 = 0TxtName.SetFocusEnd Sub马上行动:阅读本程序问答(1)找出程序中计算总分的语句。 (2)找出程序中判断证书类型的语句。4、分别在程序一和程序二的计算总分和判断证书

14、类型的语句之间添加语句“SC1=0”,再次运行两个程序,看结果有什么不同。小提示:由于中途改变了软硬件基础成绩数据,使得程序一的运行结果受到了影响,而程序二不会受任何影响。活动二 从VB的类模块中认识类、对象和实体1、 双击“学生成绩2.vbp”程序的工程资源管理窗口中类模块下的“student”,打开类模块代码窗口,如下图所示2、 阅读其中的程序,如下图所示:定义存放学生姓名的变量和存放三门课成绩的数组Private m_name As StringPrivate m_score(3) As Integer实现获得学生姓名的方法Public Sub SetInf(name As String

15、, s1 As Integer, s2 As Integer, s3 As Integer)m_name = namem_score(1) = s1m_score(2) = s2m_score(3) = s3End Sub实现输出学生信息的方法Public Function GetName() As StringGetName = m_nameEnd FunctionPublic Function GetScore(index As Integer) As IntegerGetScore = m_score(index)End Function实现计算总分的方法Public Function

16、GetTotal() As SingleGetTotal = m_score(1) * 0.2 + m_score(2) * 0.5 + m_score(3) * 0.3End Function实现判断证书类型的方法Public Function Judge() As StringIf m_score(1) = 85 And m_score(2) = 85 And m_score(3) = 85 Then Judge = 优秀ElseIf GetTotal() 70 And m_score(1) = 60 And m_score(2) = 60 And m_score(3) = 60 Then

17、 Judge = 合格 Else Judge = 无End IfEnd Function马上行动:阅读以上学生类定义程序段后(1)写出Student类中定义学生属性的部分m_name用于表示 m_score(3)用于表示 (2)写出Student类中定义方法的部分。子过程SetInf的作用是获取学生对象的姓名和三门课成绩;函数GetScore的作用是输出学生对象的姓名和三门课成绩;函数GetName的作用是 函数Judge的作用是 讨论:在程序二中的语句“Call stu.SetInf(StName, sc1, sc2, sc3)”后,添加语句“m_name=冯海”,调试运行程序,看结果有何影

18、响.原因是什么?如果要计算四门课的成绩,该如何修改程序一和程序二,两者的修改方法有什么不同?归纳总结:两种程序设计方法的异同1、运行机制不同程序一的运行过程完全由程序控制,什么时候输入数据,什么时候计算得出结果,都是由程序员预先设计好的,不能中途予以改变。若某用户在输入完第一个学生成绩的硬件基础成绩,开始输入文字出理技巧成绩时,发觉先前输入的成绩错了,需要修改,这时只能结束程序,重新运行后再次输入,而无法回到上一步修改输入。程序二则不同,用户可随时根据自己的意愿与应用程序进行交互。2、安全性不同前面的活动一,在两个程序中仅仅添加了改变软硬件基础成绩数据这一语句,程序一的运行结果受到了影响,和用

19、户预期的结果相差甚远,而程序二则没有受到任何影响。试想一下,如果在一个由数十人甚至数百人合作开发的大型软件系统中,万一需要修改某一数据,对于使用面向过程方法设计编写的程序来说,其后果是不可预计的。而对于使用面向对象的程序设计方法编写的程序则相对安全得多。另外,在程序二中不能使用变量赋值语句改变Student类模块中的变量值,如m_name=”冯海”,也就是说不能随意改变某一学生对象的姓名等数据。原因是类里的m_name等变量的定义语句使用了Private限定词,只允许在类里使用这些变量,而对于主程序,必须通过调用类中的方法(操作接口),如SetInf为其赋值。这样安全性更强了。3、实现具体功能的方法相同两种方法设计的程序,也有其共同之处,如程序一中有实现“判断证书类型”的程序段,程序二的Student类模块中也有实现“判断证书类型”的功能程序段,两个程序都使用了结构化的方法来设计算法,即都采用了选择结构。也就是说,无论面向过程的程序,还是面向对象的程序,其实现具体功能的代码都采用了结构化程序设计方法来设计。(注:本节部分内容引自上海科教出版社出版的普通高中信息技术课程实验教材算法与程序设计)五、课外拓展课外练习:初步总结面向对象程序设计与面向过程程序设计的异同。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1