当前位置:文档之家› 面向对象程序设计的基本思想

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

新课讲解:
一.面向对象思想的产生:
1.教师讲解介绍面向对象技术是程序设计发展的必然趋势
2.讲解面向对象技术的思想
(1)面向对象程序设计(Object Oriented Programming,简称OOP),是基于一种很自然和朴素的思想。计算机软件开发的过程就是人们使用各种计算机语言将现实世界映射到计算机世界的过程。
马上行动:阅读本程序请问答(1)找出程序中计算总分的语句。
(2)找出程序中判断证书类型的语句。
2、打开学用面向对象方法生成的学生成绩2.vbp。
运行该程序后界面如下图所示:
讨论:两个程序的执行过程有什么不同?
3、观察“学生成绩2.vbp”的程序(见程序二)。
'程序二
'定义学生类
Dim stu As New Student
程序二则不同,用户可随时根据自己的意愿与应用程序进行交互。
2、安全性不同
前面的活动一,在两个程序中仅仅添加了改变软硬件基础成绩数据这一语句,程序一的运行结果受到了影响,和用户预期的结果相差甚远,而程序二则没有受到任何影响。试想一下,如果在一个由数十人甚至数百人合作开发的大型软件系统中,万一需要修改某一数据,对于使用面向过程方法设计编写的程序来说,其后果是不可预计的。而对于使用面向对象的程序设计方法编写的程序则相对安全得多。
Judge = "合格"
Else
Judge = "无"
End If
End Function
马上行动:阅读以上学生类定义程序段后
(1)写出Student类中定义学生属性的部分
m_name用于表示
m_score(3)用于表示
(2)写出Student类中定义方法的部三门课成绩;
'将学生的信息赋给对象
Callstu.SetInf(StName, sc1, sc2, sc3)
'输出结果
StuRec =stu.GetName() & vbTab
StuRec = StuRec &stu.GetScore(1) & vbTab &stu.GetScore(2) & vbTab &stu.GetScore(3)
'输出表头
prompt = StName & vbTab & Str(sc1) & vbTab & Str(sc2) & vbTab & Str(sc3) & vbTab & Str(total) & 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
Next i
End Sub
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
End Function
'实现计算总分的方法
Public Function GetTotal() As Single
GetTotal = m_score(1) * 0.2 + m_score(2) * 0.5 + m_score(3) * 0.3
End Function
'实现判断证书类型的方法
Public Function Judge() As String
3、实现具体功能的方法相同
两种方法设计的程序,也有其共同之处,如程序一中有实现“判断证书类型”的程序段,程序二的Student类模块中也有实现“判断证书类型”的功能程序段,两个程序都使用了结构化的方法来设计算法,即都采用了选择结构。也就是说,无论面向过程的程序,还是面向对象的程序,其实现具体功能的代码都采用了结构化程序设计方法来设计。
过程与方法
经历分析、调试解决同一问题的两种不同实现思想的程序,初步理解面向对象程序设计的优势及面向过程程序设计的缺陷。
情感态度和价值观
(1)关注传统结构化程序设计存在的问题。
(2)产生学习面向对象程序设计技术的愿望。
(3)关注面向对象技术是当前程序设计的重要发展方向。
(七)重点难点
教学重点
(1)传统结构化程序设计存在的问题
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
(四)教学策略与模式:
采用讲解、任务驱动、实践和学生自主学习相结合的教学方式
(五)教学资源:
硬件:多媒体电脑教室,投影仪,广播系统
软件:学生机安装vb6.0
(六)教学目标:
知识与技能
1.了解面向对象程序设计的基本思想和面向对象思想的由来,并能够举例说明现实世界与面向对象系统之间的对应关系。
2.了解面向对象程序设计的优越性并初步理解其实现的机制。
三.课外拓展
初步总结面向对象程序设计与面向过程程序设计的异同。
课外练习:初步总结面向对象程序设计与面向过程程序设计的异同。
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
StuRec = StuRec & vbTab &stu.GetTotal() & vbTab &stu.Judge()
List1.AddItem StuRec
n = n + 1
labN.Caption = n + 1
'文本框清零
TxtName = ""
TxtScore1 = 0: TxtScore2 = 0: TxtScore3 = 0
Dim sc1 As Integer
Dim sc2 As Integer
Dim sc3 As Integer
StName = TxtName.Text
sc1 = Val(TxtScore1.Text)
sc2 = Val(TxtScore2.Text)
sc3 = Val(TxtScore3.Text)
TxtName.SetFocus
End Sub
马上行动:阅读本程序问答(1)找出程序中计算总分的语句。
(2)找出程序中判断证书类型的语句。
4、分别在程序一和程序二的计算总分和判断证书类型的语句之间添加语
句“SC1=0”,再次运行两个程序,看结果有什么不同。
小提示:由于中途改变了软硬件基础成绩数据,使得程序一的运行结果受到了影响,而程序二不会受任何影响。
函数GetScore的作用是输出学生对象的姓名和三门课成绩;
函数GetName的作用是
函数Judge的作用是
如果要计算四门课的成绩,该如何修改程序一和程序二,两者的修改方法有什么不同?
归纳总结:两种程序设计方法的异同
1、运行机制不同
程序一的运行过程完全由程序控制,什么时候输入数据,什么时候计算得出结果,都是由程序员预先设计好的,不能中途予以改变。若某用户在输入完第一个学生成绩的硬件基础成绩,开始输入文字出理技巧成绩时,发觉先前输入的成绩错了,需要修改,这时只能结束程序,重新运行后再次输入,而无法回到上一步修改输入。
n = Val(InputBox("输入学生数"))
Print "姓名" & vbTab & "成绩1" & vbTab & "成绩2" & vbTab & "成绩3" & vbTab & "加权总分" & vbTab & "证书类型"
For i = 1 To n
StName = InputBox("输入第" & i & "位同学的姓名")
'实现获得学生姓名的方法
Public Sub SetInf(name As String, s1 As Integer, s2 As Integer, s3 As Integer)
相关主题