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

上传人:h**** 文档编号:25826473 上传时间:2022-07-14 格式:DOCX 页数:12 大小:15.79KB
返回 下载 相关 举报
面向对象程序设计的基本思想.docx_第1页
第1页 / 共12页
面向对象程序设计的基本思想.docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《面向对象程序设计的基本思想.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计的基本思想.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

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

4、杂问题。” 新课讲解: 一.面向对象思想的产生: 1.教师讲解介绍面向对象技术是程序设计发展的必然趋势 2. 讲解面向对象技术的思想 (1)面向对象程序设计(Object Oriented Programming,简称OOP ),是基于一种很自然和朴素的思想。计算机软件开发的过程就是人们使用各种计算机语言将现实世界映射到计算机世界的过程。 (2)举例说明现实世界与面向对象系统之间的对应关系: 二.面向对象程序设计: 活动一:以下是处理学生成绩的两个程序,学生成绩1.vbp 用面向过程的方法设计,学生成绩2.vbp 用面向对象的方法编写,试比较它们。 1、 打开学生成绩1.vbp ;阅读并运行该

5、程序(见程序一)。 程序一 Private Sub Form_click() Dim i As Integer, n As Integer n 为学生数 Dim StName As String Dim sc1 As Integer Dim sc2 As Integer Dim sc3 As Integer Dim total As Single Dim prompt As String n = Val(InputBox(输入学生数) Print 姓名 & vbTab & 成绩1 & vbTab & 成绩2 & vbTab & 成绩3 & vbTab & 加权总分 & vbTab & 证书类型

6、 For i = 1 To n StName = InputBox(输入第 & i & 位同学的姓名) sc1 = Val(InputBox(输入该同学的软硬件基础成绩) sc2 = Val(InputBox(输入该同学的文字处理技巧成绩) 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) & v

7、bTab 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 Next i End Sub 马上行动:阅读本程序请问答(1)找出程序中计算总分的语句。 (2)找出程序中判断证书类型的语句。 2、打开学用面向对象方法生成的学生成绩2.vbp。 运行该程序后界面如下图所示: 讨论:两个程序的

8、执行过程有什么不同? 3、观察“学生成绩2.vbp”的程序(见程序二)。 程序二 定义学生类 Dim stu As New Student Dim n As Integer n为学生数 窗体启动 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 StNa

9、me = TxtName.Text sc1 = Val(TxtScore1.Text) sc2 = Val(TxtScore2.Text) sc3 = Val(TxtScore3.Text) 将学生的信息赋给对象 Call stu.SetInf(StName, sc1, sc2, sc3) 输出结果 StuRec = stu.GetName() & vbTab StuRec = StuRec & stu.GetScore(1) & vbTab & stu.GetScore(2) & vbTab & stu.GetScore(3) StuRec = StuRec & vbTab & stu.Ge

10、tTotal() & vbTab & stu.Judge() List1.AddItem StuRec n = n + 1 labN.Caption = n + 1 文本框清零 TxtName = TxtScore1 = 0: TxtScore2 = 0: TxtScore3 = 0 TxtName.SetFocus End Sub 马上行动:阅读本程序问答(1)找出程序中计算总分的语句。 (2)找出程序中判断证书类型的语句。 4、分别在程序一和程序二的计算总分和判断证书类型的语句之间添加语 句“SC1=0”,再次运行两个程序,看结果有什么不同。 小提示:由于中途改变了软硬件基础成绩数据,使得

11、程序一的运行结果受到了影响,而程序二不会受任何影响。 活动二从VB的类模块中认识类、对象和实体 1、双击“学生成绩2.vbp”程序的工程资源管理窗口中类模块下的“student”, 打开类模块代码窗口,如下图所示 2、阅读其中的程序,如下图所示: 定义存放学生姓名的变量和存放三门课成绩的数组 Private m_name As String Private m_score(3) As Integer 实现获得学生姓名的方法 Public Sub SetInf(name As String, s1 As Integer, s2 As Integer, s3 As Integer) m_name

12、= name m_score(1) = s1 m_score(2) = s2 m_score(3) = s3 End Sub 实现输出学生信息的方法 Public Function GetName() As String GetName = m_name End Function Public Function GetScore(index As Integer) As Integer GetScore = m_score(index) End Function 实现计算总分的方法 Public Function GetTotal() As Single GetTotal = m_score(

13、1) * 0.2 + m_score(2) * 0.5 + m_score(3) * 0.3 End Function 实现判断证书类型的方法 Public Function Judge() As String If 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 Judge = 合格 Else Judge = 无 End If

14、End Function 马上行动:阅读以上学生类定义程序段后 (1)写出Student类中定义学生属性的部分 m_name用于表示 m_score(3)用于表示 (2)写出Student类中定义方法的部分。 子过程SetInf的作用是获取学生对象的姓名和三门课成绩; 函数GetScore的作用是输出学生对象的姓名和三门课成绩; 函数GetName的作用是 函数Judge的作用是 如果要计算四门课的成绩,该如何修改程序一和程序二,两者的修改方法有什么不同? 归纳总结:两种程序设计方法的异同 1、运行机制不同 程序一的运行过程完全由程序控制,什么时候输入数据,什么时候计算得出结果,都是由程序员预

15、先设计好的,不能中途予以改变。若某用户在输入完第一个学生成绩的硬件基础成绩,开始输入文字出理技巧成绩时,发觉先前输入的成绩错了,需要修改,这时只能结束程序,重新运行后再次输入,而无法回到上一步修改输入。 程序二则不同,用户可随时根据自己的意愿与应用程序进行交互。 2、安全性不同 前面的活动一,在两个程序中仅仅添加了改变软硬件基础成绩数据这一语句,程序一的运行结果受到了影响,和用户预期的结果相差甚远,而程序二则没有受到任何影响。试想一下,如果在一个由数十人甚至数百人合作开发的大型软件系统中,万一需要修改某一数据,对于使用面向过程方法设计编写的程序来说,其后果是不可预计的。而对于使用面向对象的程序

16、设计方法编写的程序则相对安全得多。 另外,在程序二中不能使用变量赋值语句改变Student类模块中的变量值,如m_name=”冯海”,也就是说不能随意改变某一学生对象的姓名等数据。原因是类里的m_name等变量的定义语句使用了Private限定词,只允许在类里使用这些变量,而对于主程序,必须通过调用类中的方法(操作接口),如SetInf 为其赋值。这样安全性更强了。 3、实现具体功能的方法相同 两种方法设计的程序,也有其共同之处,如程序一中有实现“判断证书类型”的程序段,程序二的Student类模块中也有实现“判断证书类型”的功能程序段,两个程序都使用了结构化的方法来设计算法,即都采用了选择结构。也就是说,无论面向过程的程序,还是面向对象的程序,其实现具体功能的代码都采用了结构化程序设计方法来设计。 三.课外拓展 初步总结面向对象程序设计与面向过程程序设计的异同。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁