面向对象程序设计的基本思想9_第1页
面向对象程序设计的基本思想9_第2页
面向对象程序设计的基本思想9_第3页
面向对象程序设计的基本思想9_第4页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1 面向对象程序设计的基本思想(一)教案设计思想与理论依据:算法与程序设计模块的教案强调通过该模块的学习,学生应该体验客观世界的计算机对象化表征和算法思维,掌握几种基本算法;能运用面向对象的方法,设计解决简单问题的算法,并能初步使用一种面向对象的程序设计语言,编制程序实现算法解决该问题。(二)教案内容分析教材以广东教育出版社出版的信息技术(选修一)算法与程序设计第五章第一节内容为结构框架,本节主要介绍面向对象思想产生的必然性和面向对象思想的机制,以及通过对同一个问题采取面向过程和面向对象两种不同思想解决的区别,让学生感受到面向对象程序设计的优越性。(三)学生情况分析:学生已学完教材前四章内

2、容,基本掌握了传统的面向过程结构化程序设计方法,有一定的程序设计基础。(四)教案策略与模式:采用讲解、任务驱动、实践和学生自主学习相结合的教案方式(五)教案资源:硬件:多媒体电脑教室,投影仪,广播系统软件:学生机安装vb6.0(六)教案目标:知识与技能1. 了解面向对象程序设计的基本思想和面向对象思想的由来,并能够举例说明现实世界与面向对象系统之间的对应关系。2. 了解面向对象程序设计的优越性并初步理解其实现的机制。过程与方法经历分析、调试解决同一问题的两种不同实现思想的程序,初步理解面向对象程序设计的优势及面向过程程序设计的缺陷。情感态度和价值观(1)关注传统结构化程序设计存在的问题。(2)

3、产生学习面向对象程序设计技术的愿望。(3)关注面向对象技术是当前程序设计的重要发展方向。(七)重点难点教案重点( 1)传统结构化程序设计存在的问题( 2)面向对象程序设计所具有的优点。教案难点( 1)面向对象思想的产生。( 2)传统结构化程序设计与面向对象程序设计的基本点比较。( 3)实现面向对象程序设计的基本机制。教案过程:1 / 8引入:请同学们阅读本节课文最前面的引导文字段,一分钟后请同学发言。通过引导抛出结论:“结构化程序设计存在固有的缺陷:以功能为核心,数据和函数分开,使得后期维护难,安全性差等且不适合解决复杂问题。 ” 新课讲解:一 .面向对象思想的产生:1.教师讲解介绍面向对象技

4、术是程序设计发展的必然趋势2. 讲解面向对象技术的思想( 1)面向对象程序设计( Object Oriented Programming,简称 OOP),是基于一种很自然和朴素的思想。计算机软件开发的过程就是人们使用各种计算机语言将现实世界映射到计算机世界的过程。( 2)举例说明现实世界与面向对象系统之间的对应关系:现实问题空间面向对象系统求解空间物质:具体事物;一个学生张三一个对象学生的实例意识:抽象概念:学生学生类二 .面向对象程序设计:活动一: 以下是处理学生成绩的两个程序,学生成绩 1.vbp 用面向过程的方法设计,学生成绩 2.vbp 用面向对象的方法编写,试比较它们。1、打开学生成

5、绩 1.vbp。阅读并运行该程序(见程序一) 。'程序一Private Sub Form_click()Dim i As Integer, n As Integern为学生数Dim StName As StringDim sc1 As IntegerDim sc2 As IntegerDim sc3 As IntegerDim total As SingleDim prompt As Stringn = Val(InputBox(" 输入学生数 ")Print " 姓名 " & vbTab & " 成绩 1"

6、& vbTab & " 成绩 2" & vbTab & " 成绩 3" & vbTab & " 加权总分 " & vbTab & " 证书类型 "For i = 1 To n2 / 8StName = InputBox(" 输入第 " & i & " 位同学的姓名 ")sc1 = Val(InputBox(" 输入该同学的软硬件基础成绩")sc2 = Val(InputBox(

7、" 输入该同学的文字处理技巧成绩")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 s

8、c3 >= 85) ThenPrint prompt & " 优秀 "ElseIf (total > 70 And sc1 >= 60 And sc2 >= 60 And sc3 >= 60) ThenPrint prompt & " 合格 "ElsePrint prompt & " 不合格 "End IfEnd IfNext iEnd Sub马上行动: 阅读本程序请问答( 1)找出程序中计算总分的语句。(2)找出程序中判断证书类型的语句。2、打开学用面向对象方法生成的学生成绩 2

9、.vbp。运行该程序后界面如下图所示:讨论:两个程序的执行过程有什么不同?3、观察“ 学生成绩 2.vbp ”的程序(见程序二)。'程序二'定义学生类Dim stu As New Student3 / 8Dim n As Integern为学生数'窗体启动Private Sub Form_Load()labN.Caption = 1学生序号标签显示1End Sub'单击“处理”按钮事件Private Sub Command1_Click()Dim StuRec As StringDim StName As StringDim sc1 As IntegerDim

10、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 & stu.GetScore (2)

11、& 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)找出程序中判断

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

13、ger'实现获得学生姓名的方法Public Sub SetInf(name As String, s1 As Integer, s2 As Integer, s3 As Integer)m_name = namem_score(1) = s1m_score(2) = s25 / 8m_score(3) = s3End Sub'实现输出学生信息的方法Public Function GetName() As StringGetName = m_nameEnd FunctionPublic Function GetScore(index As Integer) As IntegerG

14、etScore = m_score(index)End Function'实现计算总分的方法Public Function GetTotal() As SingleGetTotal = m_score(1) * 0.2 + m_score(2) * 0.5 + m_score(3) * 0.3 End Function'实现判断证书类型的方法Public Function Judge() As StringIf m_score(1) >= 85 And m_score(2) >= 85 And m_score(3) >= 85 Then Judge = &qu

15、ot; 优秀 "ElseIf GetTotal() > 70 And m_score(1) >= 60 And m_score(2) >= 60 And m_score(3) >= 60 ThenJudge = " 合格 "ElseJudge = " 无"End IfEnd Function马上行动 :阅读以上学生类定义程序段后(1) 写出 Student 类中定义学生属性的部分m_name 用于表示m_score(3) 用于表示(2)写出 Student 类中定义方法的部分。子过程 SetInf 的作用是获取学生对象的

16、姓名和三门课成绩;函数 GetScore 的作用是输出学生对象的姓名和三门课成绩;函数 GetName 的作用是6 / 8函数 Judge 的作用是如果要计算四门课的成绩,该如何修改程序一和程序二,两者的修改方法有什么不同?归纳总结:两种程序设计方法的异同1、运行机制不同程序一的运行过程完全由程序控制,什么时候输入数据,什么时候计算得出结果,都是由程序员预先设计好的,不能中途予以改变。若某用户在输入完第一个学生成绩的硬件基础成绩,开始输入文字出理技巧成绩时,发觉先前输入的成绩错了,需要修改,这时只能结束程序,重新运行后再次输入,而无法回到上一步修改输入。程序二则不同,用户可随时根据自己的意愿与

17、应用程序进行交互。2、安全性不同前面的活动一,在两个程序中仅仅添加了改变软硬件基础成绩数据这一语句,程序一的运行结果受到了影响,和用户预期的结果相差甚远,而程序二则没有受到任何影响。试想一下,如果在一个由数十人甚至数百人合作开发的大型软件系统中,万一需要修改某一数据,对于使用面向过程方法设计编写的程序来说,其后果是不可预计的。而对于使用面向对象的程序设计方法编写的程序则相对安全得多。另外,在程序二中不能使用变量赋值语句改变 Student 类模块中的变量值,如 m_name=” 冯海 ”,也就是说不能随意改变某一学生对象的姓名等数据。原因是类里的 m_name 等变量的定义语句使用了 Private 限定词,只允许在类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论