第一篇:《面向对象程序设计技术》课程设计要求及进度安排和成绩评定方法
《面向对象程序设计技术》课程设计要求及进度安排和成绩评定方法
一、设计要求
1、设计的题目要求达到一定工作量,并具有一定的深度和难度,程序代码不得少于200行。
2、按面向对象的程序设计思想对问题进行抽象,并有相应文档产生。
3、要求设计的软件能够正确运行,达到题目要求。
4、编写出课程设计说明书(并附程序源代码),以电子文档方式上交教师批阅。设计说明书主要包括以下内容:
(1)对所设计的问题进行详细描述。
(2)系统所完成的功能描述。
(3)论述所设计的问题抽象方法及设计方法。
(4)所设计软件的测试方法、测试数据及测试结果。
(5)对所设计的软件进行自我评价,如创新点、未解决的问题等情况说明。
(6)附程序源代码。
二、进度安排
正确理解所设计的题目并进行问题抽象,确定设计方案2天
编代码3天
调试和测试3天
编写设计说明书1天
系统验收及成绩评定1天
三、设计成绩评定
评定依据:
1.问题的理解及抽象能力。
2.设计过程中独立工作能力。
2.设计说明书﹑程序清单﹑开发的程序质量与工作量。
4.设计题目的先进性和实用价值。
5.创新能力。
评定等级:
百分制
四、设计成绩评定办法
90及以上:按时完成设计题目的全部内容,程序结构设计合理,功能完善,有一定的创造性,表现了较强的独立工作能力。说明书文字通顺准确,层次清楚。
80~89:按时完成设计题目的全部内容,程序结构设计合理,功能较完善,有一定能力。说明书基本正确,文字通顺。
70~79:按时完成设计题目的全部内容,程序结构设计基本合理,在解决实际问题上有一定的工作能力。说明书内容基本正确,文字通顺。
60~69:基本完成设计题目的全部内容,程序结构设计基本合理,功能不太完善,依靠指导人的帮助。独立工作能力较差,设计中有明显的缺点或错误,说明书基本齐全,但质量较差。
60以下:有下列情况之一者成绩为不及格:
(1)独立工作能力很差;没有完成设计的基本要求的内容;程序结构不合理。
(2)在设计中有严重的违反纪律或抄袭他人设计和成果。
(3)无故不提交设计。
(4)设计期间有三分之一以上时间缺席者。
重庆工商大学派斯学院计算机系
2010年5月
第二篇:教学目标了解面向对象程序设计方法的基本原理及主要特点——抽解析
呼伦贝尔学院—— 计算机科学与技术学院
教学目标:了解面向对象程序设计方法的基本原理及主要特点——抽象性、封装性、继承性、多态性。掌握类和对象的概念以及如何用类来解决具体问题并在类的基础上如何派生出新类,以及重载的概念和作用。
教学类型:在多媒体教室直观讲授,引导学生进行类的操作。教学内容:
复习上次课
5.5类的继承
Visual Basic.NET支持类的继承,允许用户定义一个类,作为其他类继承的依据,继承类能够继承,扩充基本类的属性和方法,继承类也可以重载基本类的一些方法。
例如,把窗体看成一个类,在Vissal Basic.NET中用户可以根据现有的窗体继承出一个新的窗体。其中已有类叫做基类(父类),继承的新类叫做派生类(子类)。
1、实现基本的继承
下面通过例子进一步说明为什么要使用继承。
要描述人和雇员,对于每一个人来说都有姓名、年龄、性别等信息,对于公司雇员有以上内容以外还有雇员的工作部门及薪水等信息。当分开来实现这两个类的时候,就会发现其实它们有许多相同之处。如果分开编写这两个类的代码,不仅编写效率低,而且程序代码也难以维护,所以最好的方法就是让它们使用一些相同的代码,此时继承就可以发挥作用了。使用继承,可以创建一个Person类(基类),它包含了name(姓名)、age(年龄)、sex(性别)等属性所有的共享代码。然后再创建employee派生类,这个类是由person类继承而来的,这样它们就可以自动地获得所有的公用代码了。
【例5.3】建立person类及它的派生类employee类。Public Class person
Public sname, Iage, ssex
Public Property name()As String
Get
Return sname
End Get
Set(ByVal value As String)
sname = value
End Set
End Property
Public Property age()As Integer
Get
Return Iage
End Get
Set(ByVal value As Integer)
Iage = value
End Set
呼伦贝尔学院—— 计算机科学与技术学院
End Property
Public Property sex()As String
Get
Return ssex
End Get
Set(ByVal value As String)
ssex = value
End Set
End Property End Class Public Class employee
Inherits person
Dim Ssalary As Single
Public Property salary()As Single
Get
Return Ssalary
End Get
Set(ByVal value As Single)
Ssalary = value
End Set
End Property
Sub Displayemployee()
Debug.WriteLine(“雇员的姓名:” & name)
Debug.WriteLine(“雇员的性别:” & sex)
Debug.WriteLine(“雇员的年龄:” & age)
Debug.WriteLine(“雇员的薪水:” & salary)
End Sub End Class Module Module1
Sub Main()
Dim aemployee As New employee()
aemployee.name = “王强”
aemployee.sex = “男”
aemployee.age = 25
aemployee.salary = 3600.0
aemployee.Displayemployee()
End Sub End Module
2、禁止继承
在默认状态下,创建的任何类都是可以用作基类,可由这个基类创建其他的类。但有时需要创建一个不被继承的类,这时可以在类的声明中使用NotInheritable关键字。
Public NotInheritable Class Class_name …… End Class
呼伦贝尔学院—— 计算机科学与技术学院
使用这个关键字后,其他代码都不能使用Inherits关键字来创建一个由这个基类继承二来的子类。
3、基类成员在派生类中的作用域
通过继承性创建子类时,新类将从父类获得所有Public 和 Friend方法、属性及变量。但在父类中声明的Private的任何内容都不能直接应用于新子类的代码中。
例如:可以在上例的person类中重写age方法,代码如下: Private Property age()As Integer
Get
Return Iage
End Get
Set(ByVal value As Integer)
Iage = value
End Set
End Property Age方法声明为private,所以employee类和其他代码都不能使用它。当然也有一个列外,就是New方法,构造函数方法必须在每一个子类中重新定义。
有时public和private并不够用,需要创建一个可以用于子类而不能用于客户代码的方法,此时就可以使用protected作用域。当某些内容声明为protected时,该元素就不能应用于类以外的代码,但可以应用于通过继承派生出的子类。
例如:若将person类当中的name、age、sex属性都声明为 Protected Property name()As String Protected Property age()As Integer Protected Property sex()As string 那么测试程序中的下列代码将不再有效: aemployee.name = “王强” aemployee.sex = “男” aemployee.age = 25 但示例中的name、age、sex属性可以应用于employee中的所有代码,因为它继承了父类。为设置属性,可以在employee中增加一个方法setperson():
Public Class employee
Inherits person
Dim Ssalary As Single Public Property salary()As Single
Get
Return Ssalary
End Get
Set(ByVal value As Single)
Ssalary = value
End Set End Property Sub setperson(ByVal n As String, ByVal a As Integer, ByVal s As String, ByVal c As Single)
name = n
age = a
sex = s
呼伦贝尔学院—— 计算机科学与技术学院
salary = c End Sub
Sub Displayemployee()
Debug.WriteLine(“雇员的姓名:” & name)
Debug.WriteLine(“雇员的性别:” & sex)
Debug.WriteLine(“雇员的年龄:” & age)
Debug.WriteLine(“雇员的薪水:” & salary)
End Sub End Class Module Module1
Sub Main()
Dim aemployee As New employee()
aemployee.setperson(“王强”, 25, “男”, 3600.0)
aemployee.Displayemployee()
End Sub End Module 5.6重载方法
VB.NET具有重载方法的功能,可以利用重载来实现多态性。重载是可以在一个类中可多次声明相同名称的一种方法,只要每个声明都有不同的参数列表即可。其中参数列表不同指的是参数的数据类型不同或参数的个数不同。例如:Public Sub show(ByVal x As Integer, ByVal y As Integer)。
上面show方法的参数列表的参数的类型为(Integer, Integer)。为了重载这个方法,必须使用不同的参数列表,例如(Double,Integer)或(Integer,Double)都可以。重载不能只是通过改变函数的返回值来实现,而是要求实际参数的数据类型不同。
Public Class sum
Public Function add(ByVal a As Integer, ByVal b As Integer)As Integer
Return a + b
End Function
Public Function add(ByVal a As Double, ByVal b As Double)As Double
Return a + b
End Function End Class Module Module1
Sub main()
Dim NO1, NO2 As New sum
Debug.WriteLine(NO1.add(5, 6))
Debug.WriteLine(NO2.add(2.5, 3.6))
End Sub End Module
学生练习:声明一个Shape(形状)基类,在此基础上派生出Rectangle和Circle类,(1)根据给出的矩形的左上角和右下角的坐标计算该矩形的面积;(2)根据给出的圆心坐标计算出圆的面积。
呼伦贝尔学院—— 计算机科学与技术学院