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

上传人:平*** 文档编号:12421943 上传时间:2017-10-18 格式:DOC 页数:8 大小:110.29KB
返回 下载 相关 举报
面向对象程序设计的基本思想_第1页
第1页 / 共8页
面向对象程序设计的基本思想_第2页
第2页 / 共8页
面向对象程序设计的基本思想_第3页
第3页 / 共8页
面向对象程序设计的基本思想_第4页
第4页 / 共8页
面向对象程序设计的基本思想_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《面向对象程序设计的基本思想》由会员分享,可在线阅读,更多相关《面向对象程序设计的基本思想(8页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

5、n As Integer n 为学生数Dim StName 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 n现实问题空间物质:一个学生张三意识:学生面向对象系统求解空间具体事物;一个对象 学生的实例抽象概

6、念:学生类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) & vbTabIf (sc1 = 85

7、And sc2 = 85 And sc3 = 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.vbp。运行该程序后界面如下图所示:讨论:两个程序的执行过程有什么不同?3、观察“学生成绩 2.vbp”的程序(

8、见程序二)。程序二定义学生类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 StringDim StName As StringDim sc1 As IntegerDim sc2 As IntegerDim sc3 As IntegerStName = TxtName.Textsc1 = Val(TxtScore1.Text)sc

9、2 = 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) & vbTab & stu.GetScore(3)StuRec = StuRec & vbTab & stu.GetTotal() & vbTab & stu.Judge()List1.AddItem StuRecn =

10、 n + 1labN.Caption = n + 1文本框清零TxtName = TxtScore1 = 0: TxtScore2 = 0: TxtScore3 = 0TxtName.SetFocusEnd Sub马上行动:阅读本程序问答(1)找出程序中计算总分的语句。(2)找出程序中判断证书类型的语句。4、分别在程序一和程序二的计算总分和判断证书类型的语句之间添加语句“SC1=0”,再次运行两个程序,看结果有什么不同。小提示:由于中途改变了软硬件基础成绩数据,使得程序一的运行结果受到了影响,而程序二不会受任何影响。活动二 从 VB 的类模块中认识类、 对象和实体用红色标出的语句全部是 stu

11、 对象的方法调用。提 示1、 双击“学生成绩 2.vbp”程序的工程资源管理窗口中类模块下的“student”,打开类模块代码窗口,如下图所示2、 阅读其中的程序,如下图所示:定义存放学生姓名的变量和存放三门课成绩的数组Private m_name As StringPrivate m_score(3) As Integer实现获得学生姓名的方法Public Sub SetInf(name As String, s1 As Integer, s2 As Integer, s3 As Integer)m_name = namem_score(1) = s1m_score(2) = s2m_sco

12、re(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 GetTotal() As SingleGetTotal = m_score(1) * 0.2 + m_score(2) * 0.5 + m_score(3) * 0.3End Funct

13、ion实现判断证书类型的方法Public Function Judge() As StringIf m_score(1) = 85 And m_score(2) = 85 And m_score(3) = 85 ThenJudge = 优秀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 用于表

14、示 m_score(3)用于表示 (2)写出 Student 类中定义方法的部分。子过程 SetInf 的作用是获 取学生对象的姓名和三门课成绩;函数 GetScore 的作用是输 出学生对象的姓名和三门课成绩;函数 GetName 的作用是 函数 Judge 的作用是 如果要计算四门课的成绩,该如何修改程序一和程序二,两者的修改方法有什么不同?归纳总结:两种程序设计方法的异同1、运行机制不同程序一的运行过程完全由程序控制,什么时候输入数据,什么时候计算得出结果,都是由程序员预先设计好的,不能中途予以改变。若某用户在输入完第一个学生成绩的硬件基础成绩,开始输入文字出理技巧成绩时,发觉先前输入的

15、成绩错了,需要修改,这时只能结束程序,重新运行后再次输入,而无法回到上一步修改输入。程序二则不同,用户可随时根据自己的意愿与应用程序进行交互。2、安全性不同前面的活动一,在两个程序中仅仅添加了改变软硬件基础成绩数据这一语句,程序一的运行结果受到了影响,和用户预期的结果相差甚远,而程序二则没有受到任何影响。试想一下,如果在一个由数十人甚至数百人合作开发的大型软件系统中,万一需要修改某一数据,对于使用面向过程方法设计编写的程序来说,其后果是不可预计的。而对于使用面向对象的程序设计方法编写的程序则相对安全得多。另外,在程序二中不能使用变量赋值语句改变 Student 类模块中的变量值,如 m_name=”冯海” ,也就是说不能随意改变某一学生对象的姓名等数据。原因是类里的 m_name 等变量的定义语句使用了 Private 限定词,只允许在类里使用这些变量,而对于主程序,必须通过调用类中的方法(操作接口),如SetInf 为其赋值。这样安全性更强了。3、实现具体功能的方法相同两种方法设计的程序,也有其共同之处,如程序一中有实现“判断证书类型”的程序段,程序二的 Student 类模块中也有实现“判断证书类型”的功能程序段,两个程序都使用了结构化的方法来设计算法,即都采用了选择结构。也就是说,无论面向过程的程序,还是面向对象的程序,其实现具体功能的代码

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号